Marc Aurele La France wrote:
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

Reply via email to