On Tue, 8 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.
Well. I think I give up for the time being.
Thomas
-- Thomas Winischhofer Vienna/Austria thomas AT winischhofer DOT net http://www.winischhofer.net/ twini AT xfree86 DOT org _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel