After searching for days on the web and playing around with the server
(which is slow because I have to compile it on a 400MHz PPC) I've decided
to bother you with this question. Any links to some docs of Xorg or
xfree86, previous artcles or any web page are welcome as well.

I'm using a PPC (MPC5200, big endian) with either xfree86 or Xorg in 16bpp
mode. The card is a Fujitsu Corel P connected via PCI (little endian video
memory) driven by a Linux frame buffer driver.

Accessing the frame buffer device directly in 16bpp mode works fine when
swapping bytes (0rrr rrgg gggb bbbb on host, e.g. a
*pmem = bswap_16(0x1f)
written to the complete device gives me the expected blue screen .

- How do I swap the bytes in Xorg or xfree86?
- Does simply redefining X_BYTE_ORDER to X_LITTLE_ENDIAN do the trick?
- If yes how or where?
- How about BITMAP_BIT_ORDER and IMAGE_BYTE_ORDER (Z Images?) then?

As of my current knwowledge all off screen memory has to kept in little
endian byte order as well, because the final screen refresh simply copies
invalidated screen areas from off screen memory to the video memory.

Thanks ahead for making my life easier.


Roman Fietze Telemotive AG Büro Mühlhausen
Breitwiesen 73347 Mühlhausen
Tel.: +49(0)7335/18493-45 http://www.telemotive.de