summaryrefslogtreecommitdiffstats
path: root/sys/sparc64/isa
diff options
context:
space:
mode:
authortmm <tmm@FreeBSD.org>2002-11-07 16:07:46 +0000
committertmm <tmm@FreeBSD.org>2002-11-07 16:07:46 +0000
commite5e9ae1dc2eb709f9dbb1b4db59d2d12626d5325 (patch)
tree0eeb7240934c2f9099476c579c331e3af2df0c50 /sys/sparc64/isa
parent92eb830a35122db8e11af254e93833c48efdd107 (diff)
downloadFreeBSD-src-e5e9ae1dc2eb709f9dbb1b4db59d2d12626d5325.zip
FreeBSD-src-e5e9ae1dc2eb709f9dbb1b4db59d2d12626d5325.tar.gz
Add two new workaround for firmware anomalies:
1. At least some Netra t1 models have PCI buses with no associated interrupt map, but obviously expect the PCI swizzle to be done with the interrupt number from the higher level as intpin. In this case, the mapping also needs to continue at parent bus nodes. To handle that, add a quirk table based on the "name" property of the root node to avoid breaking other boxen. This property is now retrieved and printed at boot. 2. On SPARCengine Ultra AX machines, interrupt numbers are not mapped at all, and full interrupt numbers (not just INOs) are given in the interrupt properties. This is more or less cosmetical; the PCI interrupt numbers would be wrong, but the psycho resource allocation method would pass the right numbers on anyway. Tested by: mux (1), Maxim Mazurok <maxim@km.ua> (2)
Diffstat (limited to 'sys/sparc64/isa')
-rw-r--r--sys/sparc64/isa/isa.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/sparc64/isa/isa.c b/sys/sparc64/isa/isa.c
index 0536db7..ef746c3 100644
--- a/sys/sparc64/isa/isa.c
+++ b/sys/sparc64/isa/isa.c
@@ -133,7 +133,8 @@ isa_init(device_t dev)
continue;
if (ino > 7)
panic("isa_init: XXX: ino too large");
- isa_ino[ino] = ofw_bus_route_intr(node, ino);
+ isa_ino[ino] = ofw_bus_route_intr(node, ino,
+ ofw_pci_orb_callback);
}
for (nbr -= 1; nbr >= 0; nbr--) {
OpenPOWER on IntegriCloud