From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: XSA-36 / howto fix broken IVRS ACPI table Date: Tue, 12 Mar 2013 15:41:23 -0400 Message-ID: <513F84E3.9000701@oracle.com> References: <123945469.jCKz4Rdygs@sheik-lin> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4714587141457108056==" Return-path: In-Reply-To: <123945469.jCKz4Rdygs@sheik-lin> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Hans Mueller Cc: "Suthikulpanit, Suravee" , xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --===============4714587141457108056== Content-Type: multipart/alternative; boundary="------------030401030801020907070009" This is a multi-part message in MIME format. --------------030401030801020907070009 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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@lists.xen.org > http://lists.xen.org/xen-devel --------------030401030801020907070009 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit
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@lists.xen.org
http://lists.xen.org/xen-devel

--------------030401030801020907070009-- --===============4714587141457108056== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============4714587141457108056==--