Re: X on Lemote Yeeloong
Michael <[email protected]> Wed, 13 Jul 2016 10:45:31 -0400
| Newsgroups | gmane.os.netbsd.ports.mips.devel,gmane.os.netbsd.ports.evbmips |
|---|---|
| Organization | The NetBSD Foundation |
| Message-ID | <20160713104531.20dc0a4a@blackbush> |
Hello, On Wed, 13 Jul 2016 04:17:04 -0300 (ADT) Jared McNeill <[email protected]> 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