[parisc-linux] XFree status

Alan Cox alan@lxorguk.ukuu.org.uk
Fri, 1 Dec 2000 12:55:59 +0000 (GMT)


> > For I/O it seems that on things like the A180 the only way to do it is to use
> > /dev/port and pread/pwrite the file handle for each port I/O.
> 
> Why do you think only I/O port space can be used for XFree86?

The initial card bring up is done as if it was an ISA device (PCI bus 
has hacks for this). The emulator will use entirely I/O cycles to bring the
card up in most cases.

> Is the BIOS/x86 emulator wanting to talk to VGA registers the issue?

To start with. Not all PC devices have MMIO at all.

> jsm tells me VGA MMIO lives at 0xA0000.

That is the frame buffer memory.

> Dino only forwards 0xf0800000 through FF80_0000-1 to the PCI bus below.
> (See section 7.9 "Accessing PCI Memory Space" in dino3.pdf).

Thats ok. PCI has BAR{n} registers to set base addresses. The rest is down to
lying in the correct way to everybody concerned

So we just need to set it up so that the PCI mapping of the registers is 
put in the F080->FF80 range, and that XFree is told to mmap F080->FF80 range
addresses but believing they are 0->n ranges.

That kind of PCI fixup is quite doable. The older Alphas for example have
byte, word and long access windows (the early alphas had no byte operations
internally or at bus level) which was far worse.

Alan