Re: multi-domain PCI and sysfs

Jon Smirl
2004-09-09T00:31:53Z

On Wed, 08 Sep 2004 23:41:05 +0100, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> The only way I can see VGA routing working is to have some kind of arch
> code that can tell you which devices are on the same VGA legacy tree.
> That then allows a vga layer to walk VGA devices and ask arch code the
> typically simple question

This is the core problem, I'm missing this piece of data. I need it to
know how many VGA devices to create since there needs to be one for
each VGA legacy tree.

All of my previous replies were confused since I was associating VGA
legacy trees and PCI domains, which apparently have nothing to do with
each other. I'm working on hardware that has neither multiple legacy
trees or domains so I have no experience in dealing with them.

I think the problem is more basic than building a VGA device. I
wouldn't be having trouble if there were structures for each "PCI IO
space". An x86 machine would have one of these structs. Other
architectures would have multiple ones. You need these structs to find
any PCI legacy device, the problem is not specific to VGA.

Shouldn't we first create a cross platform structure that represents
the "PCI IO spaces" available in the system? Then I could walk this
list and easily know how many VGA devices to create. Each VGA device
would then use this structure to know the PCI base address for each
"IO space" operation.

I suspect "PCI IO spaces" are a function of PCI bridge chips. We
already have structures corresponding to these chips. Maybe all I
need to know is how to query a bridge chips config and see if it is
implementing a "PCI IO space". Then I could walk the bridge structures
and know how many VGA devices to create.

--
Jon Smirl
jonsmirl@gmail.com