From 7764e9e2f9a011c4950a736ef60ee0315def73e2 Mon Sep 17 00:00:00 2001 From: imp Date: Sun, 11 Apr 2004 19:22:25 +0000 Subject: Add note about why we're ignoring the below 1MB bit. --- sys/dev/cardbus/cardbus_cis.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'sys/dev/cardbus/cardbus_cis.c') 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 -- cgit v1.1