summaryrefslogtreecommitdiffstats
path: root/sys/dev/cardbus/cardbus_cis.c
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2004-04-11 19:22:25 +0000
committerimp <imp@FreeBSD.org>2004-04-11 19:22:25 +0000
commit7764e9e2f9a011c4950a736ef60ee0315def73e2 (patch)
tree910eff77246ed57c9c614d919552172520785554 /sys/dev/cardbus/cardbus_cis.c
parenta93512febdf60b17373ac251481c01f0c8bcd88c (diff)
downloadFreeBSD-src-7764e9e2f9a011c4950a736ef60ee0315def73e2.zip
FreeBSD-src-7764e9e2f9a011c4950a736ef60ee0315def73e2.tar.gz
Add note about why we're ignoring the below 1MB bit.
Diffstat (limited to 'sys/dev/cardbus/cardbus_cis.c')
-rw-r--r--sys/dev/cardbus/cardbus_cis.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/sys/dev/cardbus/cardbus_cis.c b/sys/dev/cardbus/cardbus_cis.c
index 4105432..e17b935 100644
--- a/sys/dev/cardbus/cardbus_cis.c
+++ b/sys/dev/cardbus/cardbus_cis.c
@@ -374,6 +374,25 @@ decode_tuple_bar(device_t cbdev, device_t child, int id,
if (reg & TPL_BAR_REG_PREFETCHABLE)
dinfo->mprefetchable |= BARBIT(bar);
#if 0
+ /*
+ * XXX: It appears from a careful reading of the spec
+ * that we're not supposed to honor this when the bridge
+ * is not on the main system bus. PCI spec doesn't appear
+ * to allow for memory ranges not listed in the bridge's
+ * decode range to be decoded. The PC Card spec seems to
+ * indicate that this should only be done on x86 based
+ * machines, which seems to imply that on non-x86 machines
+ * the adddresses can be anywhere. This further implies that
+ * since the hardware can do it on non-x86 machines, it should
+ * be able to do it on x86 machines. Therefore, we can and
+ * should ignore this hint. Furthermore, the PC Card spec
+ * recommends always allocating memory above 1MB, contradicting
+ * the other part of the PC Card spec.
+ *
+ * NetBSD ignores this bit, but it also ignores the
+ * prefetchable bit too, so that's not an indication of
+ * correctness.
+ */
if (reg & TPL_BAR_REG_BELOW1MB)
dinfo->mbelow1mb |= BARBIT(bar);
#endif
OpenPOWER on IntegriCloud