Currently, the ACPI tables provided for an HVM Xen guest do not include tables for PCI devices. This causes the guest OS to default to IRQ 9 for all PCI devices. The PCI code assigns half the PCI IRQs to 9 and the other half to 11, creating the possibility of confusing certain unamed OS''s. This patch avoids this issue by having the PCI code assign all PCI interrupts to IRQ 9, matching the IRQ assignments from the ACPI tables. Signed-off-by: Don Dugger <donald.d.dugger@intel.com> -- Don Dugger "Censeo Toto nos in Kansa esse decisse." - D. Gale Donald.D.Dugger@intel.com Ph: (303)440-1368 diff -r 5e3827f7a93a tools/ioemu/hw/pci.c --- a/tools/ioemu/hw/pci.c Mon Jun 05 17:17:27 2006 +0100 +++ b/tools/ioemu/hw/pci.c Tue Jun 06 15:03:05 2006 -0600 @@ -1394,7 +1394,8 @@ static uint32_t pci_bios_io_addr; static uint32_t pci_bios_io_addr; static uint32_t pci_bios_mem_addr; /* host irqs corresponding to PCI irqs A-D */ -static uint8_t pci_irqs[4] = { 11, 9, 11, 9 }; +/* note that this assignement should match the ACPI tables */ +static uint8_t pci_irqs[4] = { 9, 9, 9, 9 }; static void pci_set_io_region_addr(PCIDevice *d, int region_num, uint32_t addr) { _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 6 Jun 2006, at 22:27, Donald D. Dugger wrote:> Currently, the ACPI tables provided for an HVM Xen guest do not include > tables for PCI devices. This causes the guest OS to default to IRQ 9 > for > all PCI devices. The PCI code assigns half the PCI IRQs to 9 and the > other > half to 11, creating the possibility of confusing certain unamed OS''s. > This patch avoids this issue by having the PCI code assign all PCI > interrupts to IRQ 9, matching the IRQ assignments from the ACPI tables.How does QEMU deal with this possible confusion? Does it use different BIOS tables? -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir- Called it in one, their BIOS has tables that match the PCI settings. -- Don Dugger "Censeo Toto nos in Kansa esse decisse." - D. Gale Donald.D.Dugger@intel.com Ph: (303)440-1368>-----Original Message----- >From: Keir Fraser [mailto:Keir.Fraser@cl.cam.ac.uk] >Sent: Wednesday, June 07, 2006 7:19 AM >To: Dugger, Donald D >Cc: xen-devel@lists.xensource.com >Subject: Re: [Xen-devel] [PATCH] Change PCI IRQ assignments > > >On 6 Jun 2006, at 22:27, Donald D. Dugger wrote: > >> Currently, the ACPI tables provided for an HVM Xen guest do >not include >> tables for PCI devices. This causes the guest OS to default >to IRQ 9 >> for >> all PCI devices. The PCI code assigns half the PCI IRQs to >9 and the >> other >> half to 11, creating the possibility of confusing certain >unamed OS''s. >> This patch avoids this issue by having the PCI code assign all PCI >> interrupts to IRQ 9, matching the IRQ assignments from the >ACPI tables. > >How does QEMU deal with this possible confusion? Does it use different >BIOS tables? > > -- Keir >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 7 Jun 2006, at 14:26, Dugger, Donald D wrote:> Keir- > > Called it in one, their BIOS has tables that match the PCI settings.Shouldn''t we have the same then? With no BIOS table info at all, will all OSes work out that they should default to IRQ9? Do any of the emulated devices use other than pin A anyway (from what I can tell, all have PCI_INTERRUPT_PIN==0)? -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel