WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: Re[2]: [Xen-devel] No VT-d with Xen 3.3/3.4rc3 on Intel-Board DQ45CB

To: Tim Kaufmann <tk@xxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: Re[2]: [Xen-devel] No VT-d with Xen 3.3/3.4rc3 on Intel-Board DQ45CB
From: "Cui, Dexuan" <dexuan.cui@xxxxxxxxx>
Date: Fri, 22 May 2009 10:45:48 +0800
Accept-language: zh-CN, en-US
Acceptlanguage: zh-CN, en-US
Cc: Anthony Bosio <anthony@xxxxxxxxxx>, "Matthias P. Würfl" <mpw@xxxxxxxxxx>, Eikelenboom <linux@xxxxxxxxxxxxxx>, Sander
Delivery-date: Thu, 21 May 2009 19:47:16 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <9D991F49-687E-4E59-A466-BA48A436D433@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <28109258-1B1E-48F9-936B-9AFC04866C11@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB540D2@xxxxxxxxxxxxxxxxxxxxxxxxx> <F126C20F-9063-4FCC-BF8F-FE4CCDBCF1E5@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB540E5@xxxxxxxxxxxxxxxxxxxxxxxxx> <21F81074-ADE6-4913-A77E-4615F84E5CB9@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB540F1@xxxxxxxxxxxxxxxxxxxxxxxxx> <4343D05F-0C26-4319-BA8A-0EC9C65DA77A@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB5412D@xxxxxxxxxxxxxxxxxxxxxxxxx> <4844FE6B-C07D-4D02-A342-65A70D4B36EA@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB54140@xxxxxxxxxxxxxxxxxxxxxxxxx> <20090427190142.GE24960@xxxxxxxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB54152@xxxxxxxxxxxxxxxxxxxxxxxxx> <1AF7E29D-3632-49FE-B745-9B6A57305C44@xxxxxxxxxx> <831D55AF5A11D64C9B4B43F59EEBF72035FCB5422C@xxxxxxxxxxxxxxxxxxxxxxxxx> <194F09BB-B979-4077-BD9C-C459F5D42B04@xxxxxxxxxx> <EADF0A36011179459010BDF5142A4575154E086C@xxxxxxxxxxxxxxxxxxxxxxxxxxxx> <E2AEE83C-DD90-4A8 8-BB73-4386E8ED7957@xxxxxxxxxx> <D8B18776-214E-4DEE-8D9A-BE0B022DD52A@xxxxxxxxxx> <772008534.20090520213814@xxxxxxxxxxxxxx> <9D991F49-687E-4E59-A466-BA48A436D433@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcnZkq6BH8CIBGZ8QW6xrcEqdh5ekwA86aIA
Thread-topic: Re[2]: [Xen-devel] No VT-d with Xen 3.3/3.4rc3 on Intel-Board DQ45CB
Tim Kaufmann wrote:
> Am 20.05.2009 um 21:38 schrieb Sander Eikelenboom:
> 
>> Are you problems with VT-D and the Intel-Board DQ45CB fixed ?
> 
> Almost.
> 
> In fact, the hang occurs with RAM > 2 GB and is caused by a BIOS
> error. As one of the Intel guys on this list told me after several
> tests:
Actually the VT-d support of the motherboard is good.
The issue is caused by a small mistake in RMRR reporting in BIOS.

> 
>> Please let me offer more technical details about the hang you suffer
>> from: Due to the very very big and bad rmrr->end_address
>> 0xffffffffbfffffff, in setup_dom0_rmrr() ->
>> iommu_prepare_rmrr_dev(),  intel_iommu_map_page() is invoked too too
>> many times and you see the hang...
> 
> I already received a patch for Xen 3.4RC4 which I can properly enable
> VT-d with. But there'll be a BIOS-Update soon, they promised.

Yes, I think a BIOS update should come out soon.
For now, we can use the following small patch as a workaround. :-)

diff -r f80cf52a4fb6 xen/drivers/passthrough/vtd/iommu.c
--- a/xen/drivers/passthrough/vtd/iommu.c       Thu Apr 30 14:34:15 2009 +0100
+++ b/xen/drivers/passthrough/vtd/iommu.c       Mon May 18 16:12:14 2009 +0800
@@ -1541,6 +1541,8 @@ static int iommu_prepare_rmrr_dev(struct
     ASSERT(spin_is_locked(&pcidevs_lock));
     ASSERT(rmrr->base_address < rmrr->end_address);
     
+    if ( (rmrr->end_address >> 32) & 0x80000000 )
+        rmrr->end_address &= 0xFFFFFFFF;
     base = rmrr->base_address & PAGE_MASK_4K;
     base_pfn = base >> PAGE_SHIFT_4K;
     end = PAGE_ALIGN_4K(rmrr->end_address);


Thanks,
-- Dexuan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel