aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorMarius Strobl <marius@FreeBSD.org>2004-04-23 15:48:48 +0000
committerMarius Strobl <marius@FreeBSD.org>2004-04-23 15:48:48 +0000
commit27c2013edfef059029bdc712070d8f2513a4cc76 (patch)
treef606cb0f4b578f9e40018ecabda0474d6967674e /sys/dev/pci
parenta835fd68a163a4c22f3b69f51665b423f90a1e08 (diff)
Notes
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/pci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/dev/pci/pci.c b/sys/dev/pci/pci.c
index 5697b46b4d2ca..41e5835c70478 100644
--- a/sys/dev/pci/pci.c
+++ b/sys/dev/pci/pci.c
@@ -825,6 +825,14 @@ pci_add_map(device_t pcib, device_t bus, device_t dev,
if (base == 0)
return 1;
+#ifdef __sparc64__
+ /* Sun EBus bridges contain the ranges for the devices beyond them */
+ if ((pci_get_class(dev) == PCIC_BRIDGE) &&
+ (pci_get_vendor(dev) == 0x108e) &&
+ (pci_get_device(dev) == 0x1000 || pci_get_device(dev) == 0x1100))
+ return 1;
+#endif
+
start = base;
end = base + (1 << ln2size) - 1;
count = 1 << ln2size;