]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: fix interrupt routing in the DSDT, bump revision number
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 13 Aug 2012 15:41:18 +0000 (15:41 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 13 Aug 2012 15:41:18 +0000 (15:41 +0000)
Rotate links over devices and pins so that they match qemu.

PIIX4 function 3 (Power Management Module) unconditionally uses the INTA
interrupt pin. SCI from this module requires IRQ9.

Keep other assignments off IRQ9. Only IRQ5, IRQ10, IRQ11 remain for PCI
devices.

Bump OEMRevision in the DSDT.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13625 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/AcpiTables/Dsdt.asl

index 93e84bcfa7f7d0acc0289ad55768f9752d4be471..bd57a731e33f2d170fb73a9e3c07af17998baec4 100644 (file)
@@ -12,7 +12,7 @@
 \r
 **/\r
 \r
-DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {\r
+DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 4) {\r
   //\r
   // System Sleep States\r
   //\r
@@ -194,19 +194,90 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
         Return (\r
           Package () {\r
             //\r
-            // Bus 0, Device 1\r
+            // Bus 0; Devices 0 to 15\r
+            //\r
+            Package () {0x0000FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0000FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0000FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0000FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},\r
+\r
+            Package () {0x0001FFFF, 0x00, 0x00, 0x09},\r
+            //\r
+            // list of IRQs occupied thus far: 9\r
             //\r
-            Package () {0x0001FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},\r
             Package () {0x0001FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},\r
             Package () {0x0001FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},\r
             Package () {0x0001FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},\r
-            //\r
-            // Bus 0, Device 3\r
-            //\r
-            Package () {0x0003FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},\r
-            Package () {0x0003FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},\r
-            Package () {0x0003FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},\r
-            Package () {0x0003FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},\r
+\r
+            Package () {0x0002FFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0002FFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0002FFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0002FFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},\r
+\r
+            Package () {0x0003FFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0003FFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0003FFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0003FFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},\r
+\r
+            Package () {0x0004FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0004FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0004FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0004FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},\r
+\r
+            Package () {0x0005FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0005FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0005FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0005FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},\r
+\r
+            Package () {0x0006FFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0006FFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0006FFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0006FFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},\r
+\r
+            Package () {0x0007FFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0007FFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0007FFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0007FFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},\r
+\r
+            Package () {0x0008FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x0008FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0008FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0008FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},\r
+\r
+            Package () {0x0009FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x0009FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x0009FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x0009FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},\r
+\r
+            Package () {0x000AFFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x000AFFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x000AFFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x000AFFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},\r
+\r
+            Package () {0x000BFFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x000BFFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x000BFFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x000BFFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},\r
+\r
+            Package () {0x000CFFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x000CFFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x000CFFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x000CFFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},\r
+\r
+            Package () {0x000DFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x000DFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x000DFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x000DFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},\r
+\r
+            Package () {0x000EFFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},\r
+            Package () {0x000EFFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x000EFFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x000EFFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},\r
+\r
+            Package () {0x000FFFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},\r
+            Package () {0x000FFFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},\r
+            Package () {0x000FFFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},\r
+            Package () {0x000FFFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00}\r
           }\r
         )\r
       }\r
@@ -275,9 +346,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
         // _PRS resource for LNKA, LNKB, LNKC, LNKD\r
         //\r
         Name (PPRS, ResourceTemplate () {\r
-          Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) {\r
-            3, 4, 5, 7, 9, 10, 11, 12, 14, 15\r
-          }\r
+          Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) {5, 10, 11}\r
+          //\r
+          // list of IRQs occupied thus far: 9, 5, 10, 11\r
+          //\r
         })\r
 \r
         //\r
@@ -366,6 +438,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
             IO (Decode16, 0x0A0, 0x0A0, 0x00, 0x02)\r
             IO (Decode16, 0x4D0, 0x4D0, 0x00, 0x02)\r
             IRQNoFlags () {2}\r
+            //\r
+            // list of IRQs occupied thus far: 9, 5, 10, 11, 2\r
+            //\r
           })\r
         }\r
 \r
@@ -393,6 +468,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name(_CRS, ResourceTemplate () {\r
             IO (Decode16, 0x40, 0x40, 0x00, 0x04)\r
             IRQNoFlags () {0}\r
+            //\r
+            // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0\r
+            //\r
           })\r
         }\r
 \r
@@ -404,6 +482,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name (_CRS, ResourceTemplate () {\r
             IO (Decode16, 0x70, 0x70, 0x00, 0x02)\r
             IRQNoFlags () {8}\r
+            //\r
+            // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8\r
+            //\r
           })\r
         }\r
 \r
@@ -425,6 +506,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name (_CRS, ResourceTemplate () {\r
             IO (Decode16, 0xF0, 0xF0, 0x00, 0x10)\r
             IRQNoFlags () {13}\r
+            //\r
+            // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8, 13\r
+            //\r
           })\r
         }\r
 \r
@@ -474,6 +558,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
             IO (Decode16, 0x60, 0x60, 0x00, 0x01)\r
             IO (Decode16, 0x64, 0x64, 0x00, 0x01)\r
             IRQNoFlags () {1}\r
+            //\r
+            // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8, 13, 1\r
+            //\r
           })\r
         }\r
 \r
@@ -485,6 +572,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name (_CID, EISAID ("PNP0F13"))\r
           Name (_CRS, ResourceTemplate() {\r
             IRQNoFlags () {12}\r
+            //\r
+            // list of IRQs occupied thus far:\r
+            // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12\r
+            //\r
           })\r
         }\r
 \r
@@ -498,6 +589,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name(_CRS,ResourceTemplate() {\r
             IO (Decode16, 0x3F8, 0x3F8, 0x01, 0x08)\r
             IRQ (Edge, ActiveHigh, Exclusive, ) {4}\r
+            //\r
+            // list of IRQs occupied thus far:\r
+            // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4\r
+            //\r
           })\r
         }\r
 \r
@@ -511,6 +606,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name(_CRS,ResourceTemplate() {\r
             IO (Decode16, 0x2F8, 0x2F8, 0x01, 0x08)\r
             IRQ (Edge, ActiveHigh, Exclusive, ) {3}\r
+            //\r
+            // list of IRQs occupied thus far:\r
+            // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3\r
+            //\r
           })\r
         }\r
 \r
@@ -523,6 +622,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
             IO (Decode16, 0x3F0, 0x3F0, 0x01, 0x06)\r
             IO (Decode16, 0x3F7, 0x3F7, 0x01, 0x01)\r
             IRQNoFlags () {6}\r
+            //\r
+            // list of IRQs occupied thus far:\r
+            // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3, 6\r
+            //\r
             DMA (Compatibility, NotBusMaster, Transfer8) {2}\r
           })\r
         }\r
@@ -537,6 +640,12 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 3) {
           Name(_CRS, ResourceTemplate() {\r
             IO (Decode16, 0x0378, 0x0378, 0x00, 0x08)\r
             IRQNoFlags () {7}\r
+            //\r
+            // list of IRQs occupied thus far:\r
+            // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3, 6, 7\r
+            // in order:\r
+            // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13\r
+            //\r
           })\r
         }\r
       }\r