Russell King wrote:
> 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.
> 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
[...]
> Surely we should be reserving these regions before we start to allocate
> resources to PCI cards?
I tried to push this through when I was hacking heavily on fbdev
drivers, especially S3, and it didn't fly. On x86's, those addresses
are already reserved:
[jgarzik@rum linux_2_4]$ cat /proc/iomem
00000000-0009efff : System RAM
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
[...]
If they are not reserved on your arch, I think the driver should
definitely reserve the region. (though if its an ISA-compatible arch,
Linus might desire the above reservations as done by the core, not by
the fbdev driver)
Another alternative I thought of is freeing the resource if it is
allocated by the system, and having the driver allocate its own
resource. When the driver unloads, it frees its resources and allocates
the whole region back to the system. I look at this as the fbdev
driver's "clarifying the picture" of the hardware resource usage.
[again, this hullabaloo might only be necessary on x86]
Jeff
-- Jeff Garzik | Building 1024 | The chief enemy of creativity is "good" sense MandrakeSoft | -- Picasso - 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