Legacy IO spaces (was Re: [RFC] Reliable video POSTing on resume)

Jon Smirl
2005-02-04T23:05:38Z

On Fri, 4 Feb 2005 10:10:12 -0800, Jesse Barnes <jbarnes@engr.sgi.com> wrote:
> Jon does your emulator sit on top of the new legacy I/O and memory APIs? I
> added them for this very reason, though atm only ia64 supports them. There's
> documentation in Documentation/filesystems/sysfs-pci.txt if you want to take

Can you build a no-op version of these that will run on the x86? That
would allow a single user space API for x86, ia64. Maybe the ppc
people will join too.

Why does this appear in /sys/class/pci_bus/0000:17/? For example on my
x86 system I have a single legacy space but if I do a dir of
/sys/class/pci_bus I show three buses. You wouldn't want the
legacy_io/mem attributes on each of these three buses since that
implies three independent address spaces.

[jonsmirl@jonsmirl pci_bus]$ ls /sys/class/pci_bus
0000:00 0000:01 0000:02

How would things be sorted out so that legacy_io/mem attributes only
appear on my root bridge chip 0000:00 and not on the child buses. I
guess this also means the user space app has to search through the bus
entries.

In order to know how many VGA many simultaneous VGA devices you can
have there needs to be some way to count the number of legacy address
spaces. Maybe there should be a /sys/class/legacy to describe the
legacy spaces. Is it possible to have the same legacy space aliased at
two different addresses depending on which root bus is used to get to
it?

I need to know how to answer these questions:
1) how many legacy spaces are there
2) how many VGA devices are in each space
3) how do I do VGA bus routing to access the VGA device
4) how do I address each of the devices.

--
Jon Smirl
jonsmirl@gmail.com