Re: [OpenBIOS] [PATCH 1/3] sparc64: use direct interrupt mapping for PCI devices
On Sat, Apr 27, 2013 at 5:58 AM, Artyom Tarasenko <atar4qemu@gmail.com> wrote:
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@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
Maybe we should make a macro similar to OLDWORLD() and NEWWORLD() for Sparc64?
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
participants (1)
-
Blue Swirl