[OpenBIOS] [PATCH 1/3] sparc64: use direct interrupt mapping for PCI devices
Artyom Tarasenko
atar4qemu at gmail.com
Sat Apr 27 07:58:23 CEST 2013
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 QEMU counterpart patch.
Signed-off-by: Artyom Tarasenko <atar4qemu at gmail.com>
---
drivers/pci.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/drivers/pci.c b/drivers/pci.c
index 5c487c1..ec1a810 100644
--- a/drivers/pci.c
+++ b/drivers/pci.c
@@ -854,7 +854,14 @@ static void ob_pci_add_properties(phandle_t phandle,
if (config->irq_pin) {
OLDWORLD(set_int_property(dev, "AAPL,interrupts",
config->irq_line));
+#if defined(CONFIG_SPARC64)
+ /* direct mapping bssnn (Bus, Slot, interrupt Number */
+ set_int_property(get_cur_dev(), "interrupts",
+ ((((config->dev >> 11) << 2)
+ + config->irq_pin - 1) & 0x1f));
+#else
NEWWORLD(set_int_property(dev, "interrupts", config->irq_pin));
+#endif
}
set_int_property(dev, "min-grant", pci_config_read8(addr, PCI_MIN_GNT));
--
1.7.1
More information about the OpenBIOS
mailing list