Brian Gerst writes:
> This is an artifact from the ISA 10-bit IO bus.  Many ISA cards do not
> decode all 16 address bits so you get aliases of the 0x100-0x3ff region
> throughout IO space.  PCI cards should only use the first 256 ports of
> any 1k block to avoid aliases unless they claim the base alias.  For
> example, all the xxe8 addresses for the S3 are aliases of 0x02e8 to an
> ISA card.  Video cards are an exception to the general rule because they
> have to support all the legacy VGA crap.

No.  All xxe8 addresses access specific registers.  For example:

  0x9ea8 is the drawing command
  0xa2e8 is the background colour register
  0xa6e8 is the foreground colour register

So, as you see they aren't aliases.

> /*
>  * We need to avoid collisions with `mirrored' VGA ports
>  * and other strange ISA hardware, so we always want the
>  * addresses to be allocated in the 0x000-0x0ff region
>  * modulo 0x400.
>  *
>  * Why? Because some silly external IO cards only decode
>  * the low 10 bits of the IO address. The 0x00-0xff region
>  * is reserved for motherboard devices that decode all 16
>  * bits, so it's ok to allocate at, say, 0x2800-0x28ff,
>  * but we want to try to avoid allocating at 0x2900-0x2bff
>  * which might have be mirrored at 0x0100-0x03ff..
>  */

Ah ha, I'll nick that for the ARM stuff then.  Thanks for pointing it out.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |         Russell King        [EMAIL PROTECTED]      --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to