summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/AcpiTables
diff options
context:
space:
mode:
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2012-08-13 15:41:18 +0000
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>2012-08-13 15:41:18 +0000
commit9388fd3d3a51578e68d34d5cfde4f1662ef86da8 (patch)
tree87d48b948790df3a3e3ffadef0ac5c302fe70d2a /OvmfPkg/AcpiTables
parentcc2f2c41c8b27060824b54a17b4c254dc9f3aeba (diff)
downloaddevice_linaro_bootloader_edk2-9388fd3d3a51578e68d34d5cfde4f1662ef86da8.tar.gz
device_linaro_bootloader_edk2-9388fd3d3a51578e68d34d5cfde4f1662ef86da8.tar.bz2
device_linaro_bootloader_edk2-9388fd3d3a51578e68d34d5cfde4f1662ef86da8.zip
OvmfPkg: fix interrupt routing in the DSDT, bump revision number
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
Diffstat (limited to 'OvmfPkg/AcpiTables')
-rw-r--r--OvmfPkg/AcpiTables/Dsdt.asl135
1 files changed, 122 insertions, 13 deletions
diff --git a/OvmfPkg/AcpiTables/Dsdt.asl b/OvmfPkg/AcpiTables/Dsdt.asl
index 93e84bcfa..bd57a731e 100644
--- a/OvmfPkg/AcpiTables/Dsdt.asl
+++ b/OvmfPkg/AcpiTables/Dsdt.asl
@@ -12,7 +12,7 @@
**/
-DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
+DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 4) {
//
// System Sleep States
//
@@ -194,19 +194,90 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Return (
Package () {
//
- // Bus 0, Device 1
+ // Bus 0; Devices 0 to 15
+ //
+ Package () {0x0000FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0000FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0000FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0000FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},
+
+ Package () {0x0001FFFF, 0x00, 0x00, 0x09},
+ //
+ // list of IRQs occupied thus far: 9
//
- Package () {0x0001FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
Package () {0x0001FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
Package () {0x0001FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
Package () {0x0001FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
- //
- // Bus 0, Device 3
- //
- Package () {0x0003FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
- Package () {0x0003FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
- Package () {0x0003FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
- Package () {0x0003FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
+
+ Package () {0x0002FFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0002FFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0002FFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0002FFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},
+
+ Package () {0x0003FFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0003FFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0003FFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0003FFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},
+
+ Package () {0x0004FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0004FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0004FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0004FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},
+
+ Package () {0x0005FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0005FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0005FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0005FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
+
+ Package () {0x0006FFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0006FFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0006FFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0006FFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},
+
+ Package () {0x0007FFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0007FFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0007FFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0007FFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},
+
+ Package () {0x0008FFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x0008FFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0008FFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0008FFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},
+
+ Package () {0x0009FFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x0009FFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x0009FFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x0009FFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
+
+ Package () {0x000AFFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x000AFFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x000AFFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x000AFFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},
+
+ Package () {0x000BFFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x000BFFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x000BFFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x000BFFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00},
+
+ Package () {0x000CFFFF, 0x00, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x000CFFFF, 0x01, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x000CFFFF, 0x02, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x000CFFFF, 0x03, \_SB.PCI0.LPC.LNKC, 0x00},
+
+ Package () {0x000DFFFF, 0x00, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x000DFFFF, 0x01, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x000DFFFF, 0x02, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x000DFFFF, 0x03, \_SB.PCI0.LPC.LNKD, 0x00},
+
+ Package () {0x000EFFFF, 0x00, \_SB.PCI0.LPC.LNKB, 0x00},
+ Package () {0x000EFFFF, 0x01, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x000EFFFF, 0x02, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x000EFFFF, 0x03, \_SB.PCI0.LPC.LNKA, 0x00},
+
+ Package () {0x000FFFFF, 0x00, \_SB.PCI0.LPC.LNKC, 0x00},
+ Package () {0x000FFFFF, 0x01, \_SB.PCI0.LPC.LNKD, 0x00},
+ Package () {0x000FFFFF, 0x02, \_SB.PCI0.LPC.LNKA, 0x00},
+ Package () {0x000FFFFF, 0x03, \_SB.PCI0.LPC.LNKB, 0x00}
}
)
}
@@ -275,9 +346,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
// _PRS resource for LNKA, LNKB, LNKC, LNKD
//
Name (PPRS, ResourceTemplate () {
- Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) {
- 3, 4, 5, 7, 9, 10, 11, 12, 14, 15
- }
+ Interrupt (ResourceConsumer, Level, ActiveHigh, Shared) {5, 10, 11}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11
+ //
})
//
@@ -366,6 +438,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
IO (Decode16, 0x0A0, 0x0A0, 0x00, 0x02)
IO (Decode16, 0x4D0, 0x4D0, 0x00, 0x02)
IRQNoFlags () {2}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11, 2
+ //
})
}
@@ -393,6 +468,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name(_CRS, ResourceTemplate () {
IO (Decode16, 0x40, 0x40, 0x00, 0x04)
IRQNoFlags () {0}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0
+ //
})
}
@@ -404,6 +482,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name (_CRS, ResourceTemplate () {
IO (Decode16, 0x70, 0x70, 0x00, 0x02)
IRQNoFlags () {8}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8
+ //
})
}
@@ -425,6 +506,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name (_CRS, ResourceTemplate () {
IO (Decode16, 0xF0, 0xF0, 0x00, 0x10)
IRQNoFlags () {13}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8, 13
+ //
})
}
@@ -474,6 +558,9 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
IO (Decode16, 0x60, 0x60, 0x00, 0x01)
IO (Decode16, 0x64, 0x64, 0x00, 0x01)
IRQNoFlags () {1}
+ //
+ // list of IRQs occupied thus far: 9, 5, 10, 11, 2, 0, 8, 13, 1
+ //
})
}
@@ -485,6 +572,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name (_CID, EISAID ("PNP0F13"))
Name (_CRS, ResourceTemplate() {
IRQNoFlags () {12}
+ //
+ // list of IRQs occupied thus far:
+ // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12
+ //
})
}
@@ -498,6 +589,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name(_CRS,ResourceTemplate() {
IO (Decode16, 0x3F8, 0x3F8, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive, ) {4}
+ //
+ // list of IRQs occupied thus far:
+ // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4
+ //
})
}
@@ -511,6 +606,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name(_CRS,ResourceTemplate() {
IO (Decode16, 0x2F8, 0x2F8, 0x01, 0x08)
IRQ (Edge, ActiveHigh, Exclusive, ) {3}
+ //
+ // list of IRQs occupied thus far:
+ // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3
+ //
})
}
@@ -523,6 +622,10 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
IO (Decode16, 0x3F0, 0x3F0, 0x01, 0x06)
IO (Decode16, 0x3F7, 0x3F7, 0x01, 0x01)
IRQNoFlags () {6}
+ //
+ // list of IRQs occupied thus far:
+ // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3, 6
+ //
DMA (Compatibility, NotBusMaster, Transfer8) {2}
})
}
@@ -537,6 +640,12 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF ", 3) {
Name(_CRS, ResourceTemplate() {
IO (Decode16, 0x0378, 0x0378, 0x00, 0x08)
IRQNoFlags () {7}
+ //
+ // list of IRQs occupied thus far:
+ // 9, 5, 10, 11, 2, 0, 8, 13, 1, 12, 4, 3, 6, 7
+ // in order:
+ // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
+ //
})
}
}