[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] XSA-36 / howto fix broken IVRS ACPI table



On 03/12/2013 03:04 PM, Hans Mueller wrote:
Hello,

since applying the patches related to XSA-36 Xen recognizes a broken IVRS ACPI 
table and disables I/O virtualisation.

I contacted the manufacturer of the mainboard/BIOS and they want to help me by 
providing a patched BIOS - so far so good.

However, they need details about what to fix, which I don't know either.

Could you pls. give me some hints which I can forward to the manufacturer 
support?

They should look at AMD IOMMU spec. For example, 
support.amd.com/us/Processor_TechDocs/48882.pdf. Tables 77 and 79.

More specifically, the problem is these two entries:

(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
..
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8

which tell IOMMU driver that there are two IOAPICs, both with APICID 8.

I believe the second one is wrong.

-boris


Thanks a lot & best regards
Hans



PS: Hardware is a Gigabyte GA-970A-UD3(rev. 1.0), BIOS F7 (tested F8a, too).

PPS: I know about 'no-amd-iommu-perdev-intremap' - this does not really help 
as e.g. heavy i/o on a usb device in one domain causes other domains to 
disable the related irq etc. ...



>From the support mail:
"Our hardware team replied:

Please inform us what settings or specific detail he needs to modify on IVRS 
ACPI Table.
They will try to patch it in a special BIOS and ask customer to check. 
Or maybe you can ask Xen for a proper IVRS ACPI Table form/example and send to 
us.
We can study on this and provide a special BIOS."



>From 'xl dmesg':
(XEN) AMD-Vi: Found MSI capability block at 0x54
(XEN) AMD-Vi: ACPI Table:
(XEN) AMD-Vi:  Signature IVRS
(XEN) AMD-Vi:  Length 0xd0
(XEN) AMD-Vi:  Revision 0x1
(XEN) AMD-Vi:  CheckSum 0x9b
(XEN) AMD-Vi:  OEM_Id AMD  
(XEN) AMD-Vi:  OEM_Table_Id RD890S
(XEN) AMD-Vi:  OEM_Revision 0x202031
(XEN) AMD-Vi:  Creator_Id AMD 
(XEN) AMD-Vi:  Creator_Revision 0x0
(XEN) AMD-Vi: IVRS Block: type 0x10 flags 0x3e len 0xa0 id 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x0 -> 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x10 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x100 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x100 -> 0x101
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x38 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x200 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x48 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x300 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x88 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x90 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x90 -> 0x92
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x98 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x98 -> 0x9a
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa0 flags 0xd7
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa3 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa4 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x43 id 0x400 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x400 -> 0x4ff alias 0xa4
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa5 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa8 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x500 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x500 -> 0x5ff
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0xb0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0xb0 -> 0xb2
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x2 handle 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8
(XEN) IVHD Error: Conflicting IO-APIC 0x8 entries
(XEN) AMD-Vi: Error initialization
(XEN) I/O virtualisation disabled


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.