Port-evbmips archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: X on Lemote Yeeloong



Hello,

On Wed, 13 Jul 2016 04:17:04 -0300 (ADT)
Jared McNeill <jmcneill%invisible.ca@localhost> wrote:

> On Wed, 13 Jul 2016, Michael wrote:
> >
> > Hmm, is SMI_EnableMmio() actually causing the crash? If it does, do
> > writes to any of the VGA registers work? I wouldn't be the slightest
> > bit surprised if PCI IO accesses don't work right or if the VGA
> > registers need to be enabled somewhere which the Lemote firmware
> > doesn't do.

> The legacy VGA IO ports are accessible through MMIO space on LynxEM+. I 
> think the idea here is that they use VGA IO ports to enable MMIO access, 
> which doesn't really make sense on MIPS.

Hmm, I'm not even sure I ever enabled Xorg support for mapping IO space
on MIPS, and lynxfb doesn't allow it anyway. The VGA register writes
SMI_EnableMmio() should be harmless if IO access works properly.

lynxfb needs something like this at the end of lynxfb_mmap():

#ifdef PCI_MAGIC_IO_RANGE
		if ((offset >= PCI_MAGIC_IO_RANGE) &&
		    (offset <= PCI_MAGIC_IO_RANGE + 0x10000)) {
		    	return bus_space_mmap(sc->sc_iot,
		    	   offset - PCI_MAGIC_IO_RANGE, 0, prot, 0);
		}
#endif
... plus stuffing the parent's iotag away in sc etc. ...
and PCI_MAGIC_IO_RANGE needs to be set to something way up in
include/params.h so it doesn't interfere with other mmap()able ranges.
With that Xorg should be able to map the right IO space and fudge with
VGA registers ( and the Xserver needs to be rebuilt so it can see
PCI_MAGIC_IO_RANGE )
Then again, that really needs to go through /dev/pci as well, but
that's another can of worms.

have fun
Michael


Home | Main Index | Thread Index | Old Index