> I wonder how many devices decode all 32 bits of an IO address. Maybe they
> all do, but it sure hasn't gotten any testing by anybody. Considering that
> ISA devices even today often only decode 10 bits for historical reasons, I
> wouldn't find it surprising at all if there are PCI devices that only
> bother with the low 16 bits - and they'd be really unhappy with any
> aliasing...
The PCI specs require all devices to decode 32 bits of I/O address, but
they allow upper 16 bits to be hard-wired to zero. It's possible there
really are devices ignoring this part of specs, but probably only an experiment
can prove it.
Due to ISA address decoding brain-damages, everyone has to assign PCI
I/O regions addresses which modulo 0x400 give less than 0x100 or addresses
above 64K which are not forwarded to ISA at all. This is problematic when
a region has more than 256 bytes of I/O ports -- the PCI specs explicitly
forbid such large regions, but I know some such devices anyway.
Have a nice fortnight
-- Martin `MJ' Mares <mj@ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth "Hex dump: Where witches put used curses..."- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/