Re: VGA PCI IO port reservations

From: H. Peter Anvin (hpa@zytor.com)
Date: Fri Nov 17 2000 - 13:27:36 EST


Followup to: <200011171620.eAHGKgg00324@flint.arm.linux.org.uk>
By author: Russell King <rmk@arm.linux.org.uk>
In newsgroup: linux.dev.kernel
>
> I've been looking at a number of VGA cards recently, and I've started
> wondering out the Linux resource management as far as allocation of
> IO ports. I've come to the conclusion that it does not contain all
> information necessary to allow allocations to be made safely.
>
> Thus far, VGA cards that I've looked at scatter extra registers through
> out the PCI IO memory region without appearing in the PCI BARs. In fact,
> for some cards there wouldn't be enough BARs to list them all.
>

This (and ISA) is why PCs usually allocate only addresses that match
the following equation for PCI IO:

       (port >= 0x1000 && (port & 0x0300) == 0).

As you can see, the ports you list below all violate the second
criterion, they are thus "ISA equivalent ports".

The downside is that it's impossible to allocate more than 256
consecutive ports.

> For example, S3 cards typically use:
>
> 0x0102, 0x42e8, 0x46e8, 0x4ae8, 0x8180 - 0x8200, 0x82e8, 0x86e8,
> 0x8ae8, 0x8ee8, 0x92e8, 0x96e8, 0x9ae8, 0x9ee8, 0xa2e8, 0xa6e8,
> 0xaae8, 0xaee8, 0xb2e8, 0xb6e8, 0xbae8, 0xbee8, 0xe2e8,
> 0xff00 - 0xff44
>
> And Trident TGUI9440 uses:
>
> 0x2120, 0x43c4
>
> Cyber2000-type cards use:
>
> 0x0102, 0x46e8
>

        -hpa

-- 
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:13 EST