[PATCHES] 11-pcmciaresource

Russell King rmk+pcmcia at arm.linux.org.uk
Sat Mar 27 09:54:19 GMT 2004

On Sat, Mar 27, 2004 at 09:56:21AM +0100, Dominik Brodowski wrote:
> On Fri, Mar 26, 2004 at 10:22:41PM +0000, Russell King wrote:
> > > b) there's a config bit in the bridge which enables and/or disables the
> > >    forwarding of other ioport/iomem access.
> > 
> > I suspect clearing the NoISA bit will be extremely dodgy.  By clearing it,
> > you forward all ISA accesses within the bridge windows to the subordinate
> > bus instead of being forwarded to the ISA bridge.
> On common x86 chipsets, the NoISA bit is even ignored: from Intel's
> datasheet 29074401:

That's just an Intel quirk.  Anything following the PCI bridge standards
(and Linux has several machines, particularly non-x86 based) which do.

> 0 I/O Space Enable (IOSE)   R/W. The ICH4 provides this bit as read/writable
> for software only. However, the ICH4 ignores the programming of this bit and
> runs hub interface I/O cycles to PCI that are not intended for USB, IDE, or
> AC  97.

This sounds more like a dirty hack than a feature.

> > Really, it is only safe to allocate within the first 256 bytes of every
> > 1K of memory on PCI buses in x86 PCs, and for PCMCIA only the lower 1K,
> > provided you have full usage information for the motherboard IO ports.
> Why is that?

Again, as I've said previously, think about VGA cards with their
resources scattered about the place in an undefined way.  They always
appear in the top 768 bytes of every 1K of IO space.

It all comes from the dim distant past of PC hardware design, when
designers were lazy and only decoded 10 bits of the address bus.  This
meant multiples of devices in the top 768 bytes were duplicated
throughout the IO space.  When these devices got integrated into PC
chipsets, they got fixed to decode 16 bits, and VGA cards decided they
could use the space instead.  And then PCI came along, and they found
they had to continue to support this, so bridges ended up with a bit
to enable the top 768 bytes of each 1K so that legacy stuff continued
to work as expected.

Welcome to your legacy-stuffed PC. 8)

Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:  2.6 PCMCIA      - http://pcmcia.arm.linux.org.uk/
                 2.6 Serial core

More information about the linux-pcmcia mailing list