diff options
author | Artyom Tarasenko <atar4qemu@gmail.com> | 2013-04-27 07:55:13 +0200 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2013-04-27 11:13:08 +0000 |
commit | 903ce9fefacd828bbcadd656ddaed8984139be29 (patch) | |
tree | 1b540208021396029f3abcaa18368585f581f1f0 | |
parent | 9625036d14bdcc908fa06cd45599115258452c46 (diff) | |
download | hqemu-903ce9fefacd828bbcadd656ddaed8984139be29.zip hqemu-903ce9fefacd828bbcadd656ddaed8984139be29.tar.gz |
sparc64: use direct interrupt mapping for PCI devices
Every PCI Slot in PBM has 4 directly mapped IRQ lines.
Use the IRQ routing schema 0bssnn (Bus, Slot, interrupt Number)
described in Section 19.3.3 of UltraSPARCâ„¢-IIi User's Manual.
Please note that this patch requires the OpenBIOS counterpart patch.
Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
-rw-r--r-- | hw/pci-host/apb.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/pci-host/apb.c b/hw/pci-host/apb.c index ccd38d0..e099655 100644 --- a/hw/pci-host/apb.c +++ b/hw/pci-host/apb.c @@ -365,7 +365,7 @@ static int pci_pbm_map_irq(PCIDevice *pci_dev, int irq_num) bus_offset = 16; else bus_offset = 0; - return bus_offset + irq_num; + return (bus_offset + (PCI_SLOT(pci_dev->devfn) << 2) + irq_num) & 0x1f; } static void pci_apb_set_irq(void *opaque, int irq_num, int level) |