diff options
author | tmm <tmm@FreeBSD.org> | 2002-11-07 16:07:46 +0000 |
---|---|---|
committer | tmm <tmm@FreeBSD.org> | 2002-11-07 16:07:46 +0000 |
commit | e5e9ae1dc2eb709f9dbb1b4db59d2d12626d5325 (patch) | |
tree | 0eeb7240934c2f9099476c579c331e3af2df0c50 /sys/sparc64/isa | |
parent | 92eb830a35122db8e11af254e93833c48efdd107 (diff) | |
download | FreeBSD-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.c | 3 |
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--) { |