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

Reply via email to