[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [patch] HVM: Expand the number of PCI interrupts from 16 to 32
I'm not sure what the reason for this, but the tables relating to PCI interrupts seem to be truncated to 15 entries. I am guessing that they are just incomplete and that this has never been an issue. This patch extends these tables to the full 32 entries. Tested by giving an ioemu rtl8139 device pci device 24, which is unable to communicate with the network without this change. Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> Index: xen-unstable.hg/tools/firmware/hvmloader/acpi/dsdt.asl =================================================================== --- xen-unstable.hg.orig/tools/firmware/hvmloader/acpi/dsdt.asl 2009-03-09 09:31:33.000000000 +1100 +++ xen-unstable.hg/tools/firmware/hvmloader/acpi/dsdt.asl 2009-03-09 09:47:33.000000000 +1100 @@ -470,6 +470,102 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, Package(){0x000fffff, 1, \_SB.PCI0.LNKA, 0}, Package(){0x000fffff, 2, \_SB.PCI0.LNKB, 0}, Package(){0x000fffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 16, INTA - INTD */ + Package(){0x0010ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0010ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0010ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0010ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 17, INTA - INTD */ + Package(){0x0011ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0011ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0011ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0011ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 18, INTA - INTD */ + Package(){0x0012ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0012ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0012ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0012ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 19, INTA - INTD */ + Package(){0x0013ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0013ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0013ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0013ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 20, INTA - INTD */ + Package(){0x0014ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0014ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0014ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0014ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 21, INTA - INTD */ + Package(){0x0015ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0015ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0015ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0015ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 22, INTA - INTD */ + Package(){0x0016ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0016ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0016ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0016ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 23, INTA - INTD */ + Package(){0x0017ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0017ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0017ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0017ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 24, INTA - INTD */ + Package(){0x0018ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0018ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0018ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0018ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 25, INTA - INTD */ + Package(){0x0019ffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x0019ffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x0019ffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x0019ffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 26, INTA - INTD */ + Package(){0x001affff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001affff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001affff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001affff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 27, INTA - INTD */ + Package(){0x001bffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001bffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001bffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001bffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 28, INTA - INTD */ + Package(){0x001cffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001cffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001cffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001cffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 29, INTA - INTD */ + Package(){0x001dffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001dffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001dffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001dffff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 30, INTA - INTD */ + Package(){0x001effff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001effff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001effff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001effff, 3, \_SB.PCI0.LNKC, 0}, + + /* Device 31, INTA - INTD */ + Package(){0x001fffff, 0, \_SB.PCI0.LNKD, 0}, + Package(){0x001fffff, 1, \_SB.PCI0.LNKA, 0}, + Package(){0x001fffff, 2, \_SB.PCI0.LNKB, 0}, + Package(){0x001fffff, 3, \_SB.PCI0.LNKC, 0}, }) Name(PRTA, Package() { @@ -562,6 +658,102 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, Package(){0x000fffff, 1, 0, 46}, Package(){0x000fffff, 2, 0, 47}, Package(){0x000fffff, 3, 0, 16}, + + /* Device 16, INTA - INTD */ + Package(){0x0010ffff, 0, 0, 18}, + Package(){0x0010ffff, 1, 0, 19}, + Package(){0x0010ffff, 2, 0, 20}, + Package(){0x0010ffff, 3, 0, 21}, + + /* Device 17, INTA - INTD */ + Package(){0x0011ffff, 0, 0, 22}, + Package(){0x0011ffff, 1, 0, 23}, + Package(){0x0011ffff, 2, 0, 24}, + Package(){0x0011ffff, 3, 0, 25}, + + /* Device 18, INTA - INTD */ + Package(){0x0012ffff, 0, 0, 26}, + Package(){0x0012ffff, 1, 0, 27}, + Package(){0x0012ffff, 2, 0, 28}, + Package(){0x0012ffff, 3, 0, 29}, + + /* Device 19, INTA - INTD */ + Package(){0x0013ffff, 0, 0, 30}, + Package(){0x0013ffff, 1, 0, 31}, + Package(){0x0013ffff, 2, 0, 32}, + Package(){0x0013ffff, 3, 0, 33}, + + /* Device 20, INTA - INTD */ + Package(){0x0014ffff, 0, 0, 34}, + Package(){0x0014ffff, 1, 0, 35}, + Package(){0x0014ffff, 2, 0, 36}, + Package(){0x0014ffff, 3, 0, 37}, + + /* Device 21, INTA - INTD */ + Package(){0x0015ffff, 0, 0, 38}, + Package(){0x0015ffff, 1, 0, 39}, + Package(){0x0015ffff, 2, 0, 40}, + Package(){0x0015ffff, 3, 0, 41}, + + /* Device 22, INTA - INTD */ + Package(){0x0016ffff, 0, 0, 42}, + Package(){0x0016ffff, 1, 0, 43}, + Package(){0x0016ffff, 2, 0, 44}, + Package(){0x0016ffff, 3, 0, 45}, + + /* Device 23, INTA - INTD */ + Package(){0x0017ffff, 0, 0, 46}, + Package(){0x0017ffff, 1, 0, 47}, + Package(){0x0017ffff, 2, 0, 17}, + Package(){0x0017ffff, 3, 0, 18}, + + /* Device 24, INTA - INTD */ + Package(){0x0018ffff, 0, 0, 19}, + Package(){0x0018ffff, 1, 0, 20}, + Package(){0x0018ffff, 2, 0, 21}, + Package(){0x0018ffff, 3, 0, 22}, + + /* Device 25, INTA - INTD */ + Package(){0x0019ffff, 0, 0, 23}, + Package(){0x0019ffff, 1, 0, 24}, + Package(){0x0019ffff, 2, 0, 25}, + Package(){0x0019ffff, 3, 0, 26}, + + /* Device 26, INTA - INTD */ + Package(){0x001affff, 0, 0, 27}, + Package(){0x001affff, 1, 0, 28}, + Package(){0x001affff, 2, 0, 29}, + Package(){0x001affff, 3, 0, 30}, + + /* Device 27, INTA - INTD */ + Package(){0x001bffff, 0, 0, 31}, + Package(){0x001bffff, 1, 0, 32}, + Package(){0x001bffff, 2, 0, 33}, + Package(){0x001bffff, 3, 0, 34}, + + /* Device 28, INTA - INTD */ + Package(){0x001cffff, 0, 0, 35}, + Package(){0x001cffff, 1, 0, 36}, + Package(){0x001cffff, 2, 0, 37}, + Package(){0x001cffff, 3, 0, 38}, + + /* Device 29, INTA - INTD */ + Package(){0x001dffff, 0, 0, 39}, + Package(){0x001dffff, 1, 0, 40}, + Package(){0x001dffff, 2, 0, 41}, + Package(){0x001dffff, 3, 0, 42}, + + /* Device 30, INTA - INTD */ + Package(){0x001effff, 0, 0, 43}, + Package(){0x001effff, 1, 0, 44}, + Package(){0x001effff, 2, 0, 45}, + Package(){0x001effff, 3, 0, 46}, + + /* Device 31, INTA - INTD */ + Package(){0x001fffff, 0, 0, 47}, + Package(){0x001fffff, 1, 0, 16}, + Package(){0x001fffff, 2, 0, 17}, + Package(){0x001fffff, 3, 0, 18}, }) Device (ISA) Index: xen-unstable.hg/tools/firmware/rombios/rombios.c =================================================================== --- xen-unstable.hg.orig/tools/firmware/rombios/rombios.c 2009-03-09 09:29:12.000000000 +1100 +++ xen-unstable.hg/tools/firmware/rombios/rombios.c 2009-03-09 09:30:25.000000000 +1100 @@ -9931,7 +9931,7 @@ pci_real_select_reg: pci_routing_table_structure: db 0x24, 0x50, 0x49, 0x52 ;; "$PIR" signature db 0, 1 ;; version - dw 32 + (6 * 16) ;; table size + dw 32 + (6 * 32) ;; table size db 0 ;; PCI interrupt router bus db 0x08 ;; PCI interrupt router DevFunc dw 0x0000 ;; PCI exclusive IRQs _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |