Sun Nov 15 22:03:35 CET 2009
or has no pci devices, also every other platform has pci configuration
mechanism 1 in place.
- sparc64 has no configuration mechanism 1 (which has basically a single port
to implement configuration protocol) but directly maps configuration space.
So for sparc64 pci is also quite different from the rest, and a few clients know
about that mapped configuration space.
- PCI support is there and useful, but a few places has bar address
- getting ucells right on 64bit sparc was *real* fun :) It turns out that linux
kernel started to rely more on prom tree data so that required ofmem
supporting allocations and range properties; no other openbios platform
seem to require implementing ofmem to such extent
>>> But there are several address spaces, which it sounds like are being
>>> overlapped here:
>> Right, that's the issue we have at the moment; both qemu and openbios
>> are to be changed.
>>> 1) Actual memory
>>> 2) PCI memory space
>>> 3) PCI IO space
>>> They are each independent address spaces. Zero in any one of them is
>>> independent from zero in all the others.
> I've never looked at PCI devices in much detail before, however if there is
> any C coding I can do to help out, please let me know.
Welcome! But to my mind we need to get qemu part right first, in that we need
to remap pci address spaces out of low addresses. If you could invent another
workaround it would be a good start, we need get these 3 address spaces
right one way or another.
Igor V. Kovalenko
More information about the OpenBIOS