On Wed, 9 Jun 2004, Thomas Winischhofer wrote: > >>I am having a hard time making the SiS driver run on a MIPS machine. > >>It's some Thoshiba system, with a little-endian CPU. (Under Debian, this > >>goes by the name "Mipsel" as opposed by the big-endian "Mips"). The user > >>is running Debian's extremely patched almost-4.4.
> >>Current situation: Whenever an i/o register is accessed via inb/outb > >>macros, the X server exits with a signal 11. > >>I checked compiler.h and figured that i/o access (as done via ports on > >>x86), it like MMIO access on MIPS, ie simply writing to memory. So I > >>tried mapping my register area into virtual space (like I do with the > >>mmio area), to no avail. Same result, sig 11. > >>Background info: SiS hardware has a "relocated" i/o ports area which > >>allows access to i/o ports not only at 0x3xx etc, but also at some other > >>address. In order to make the vgahw module work with these ports instead > >>of the normal ones at 0x3xx, I "abuse" PIOOffset by adding the correct > >>offset. But no matter whether the vgahw module or my own code accesses > >>the registers, the sig 11 happens anyway. > >>The Linux framebuffer driver works well without mapping this register > >>area (which is at physical 0x4000, FYI). > >>Is there anything special about MIPS that I missed? > > Well, domain support for MIPS has yet to be written. Ditto for PowerPC. And > > that for Alpha's is somewhat broken. Lack of time, for one, and lack of > > hardware. > For those who are interested: > I have looked into this more closely now and it seems there are two > problems: > 1) "port" i/o on MIPS (as on ARM32) is done with memory mapped i/o. The > inb/outb macros in compiler.h look smart as they correctly add > IOPortBase to the port number, but IOPortBase is not initialized > throughout the entire XFree86 code as of 4.4. > 2) IOPortBase is declared in compiler.h itself and hence isn't global. > Therefore, any module including compiler.h will have to initialize it > before using inX/outX. Since the vgahw module doesn't do this, it can't > be used. The ioBase stuff (for PowerPC) is but a stopgap that can only handle single-domain systems. It should be replaced. Domain support associates a base address for the three address spaces (I/O memory & PCI config) each domain is comprised of. > Well. I think I give up for the time being. I'm sorry to hear that. Marc. +----------------------------------+-----------------------------------+ | Marc Aurele La France | work: 1-780-492-9310 | | Computing and Network Services | fax: 1-780-492-1729 | | 352 General Services Building | email: [EMAIL PROTECTED] | | University of Alberta +-----------------------------------+ | Edmonton, Alberta | | | T6G 2H1 | Standard disclaimers apply | | CANADA | | +----------------------------------+-----------------------------------+ XFree86 developer and VP. ATI driver and X server internals. _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel