diff options
author | marius <marius@FreeBSD.org> | 2009-12-27 16:55:44 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2009-12-27 16:55:44 +0000 |
commit | 6d0737d0cb83394edfef580d58950553333a6cc1 (patch) | |
tree | 3287e40b8dcdbb2331e95786f48b4c70c513bce1 /sys/conf | |
parent | bb1ee4e3ed1b5dd277c5a2bc8dd1b8ff0e30a809 (diff) | |
download | FreeBSD-src-6d0737d0cb83394edfef580d58950553333a6cc1.zip FreeBSD-src-6d0737d0cb83394edfef580d58950553333a6cc1.tar.gz |
Add a driver for the `Fire' JBus to PCIe bridges found in at least
the Sun Fire V215/V245 and Sun Ultra 25/45 machines. This driver also
already includes all the code to support the `Oberon' Uranus to PCIe
bridges found in the Fujitsu-Siemens based Mx000 machines but due to
lack of access to such a system for testing, probing of these bridges
is currently disabled.
Unfortunately, the event queue mechanism of these bridges for MSIs/
MSI-Xs matches our current MD and MI interrupt frameworks like square
pegs fit into round holes so for now we are generous and use one event
queue per MSI, which limits us to 35 MSIs/MSI-Xs per Host-PCIe-bridge
(we use one event queue for the PCIe error messages). This seems
tolerable as long as most devices just use one MSI/MSI-X anyway.
Adding knowledge about MSIs/MSI-Xs to the MD interrupt code should
allow us to decouple the 1:1 mapping at the cost of no longer being
able to bind MSIs/MSI-Xs to specific CPUs as we currently have no
reliable way to quiesce a device during the transition of its MSIs/
MSI-Xs to another event queue. This would still require the problem
of interrupt storms generated by devices which have no one-shot
behavior or can't/don't mask interrupts while the filter/handler is
executed (like the older PCIe NICs supported by bge(4)) to be solved
though.
Committed from: 26C3
Diffstat (limited to 'sys/conf')
-rw-r--r-- | sys/conf/options.sparc64 | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/conf/options.sparc64 b/sys/conf/options.sparc64 index ba5ab9f..bc6af5a 100644 --- a/sys/conf/options.sparc64 +++ b/sys/conf/options.sparc64 @@ -8,6 +8,8 @@ SUN4U opt_global.h ATKBD_DFLT_KEYMAP opt_atkbd.h +FIRE_DEBUG opt_fire.h + # Debug IOMMU inserts/removes using diagnostic accesses. This is very loud. IOMMU_DIAG opt_iommu.h |