> -----Original Message----- > From: Marc Aurele La France [mailto:[EMAIL PROTECTED] > Sent: Thursday, July 29, 2004 3:17 PM > To: Youlin Feng > Cc: '[EMAIL PROTECTED]' > Subject: RE: strange character display in XFree86 4.4.0 on Linux/MIPS > > > On Thu, 29 Jul 2004, Youlin Feng wrote: > > > > > I am trying to run the XFree86 4.4.0 on Linux 2.4.21 on > an embedded MIPS > > > > platform. Having overcome problems with USB > keyboard/mouse and mmap() of > > > > /dev/mem of PCI space, etc., I am able to run the X > server via the ATI > > > > Rage XL card. X clients with no characters are fine, > such as xlogo, > > > > xbiff, etc. Here is the problem, in XTERM, characters > displayed are > > > > hardly recognizable. But anything typed in, such as > commands, are ok. > > > > For example, "echo 1" command is ok, but the output "1" > is distorted. And > > > > in XCALC, each character is very clear but the > combination is wrong, e.g. > > > > "INV" was displayed as "IVN", "sin" becomes "sni", > "log" becomes "lgo", > > > > etc. Now due to HW platform issue, the big-endian > based OS/SW must do > > > > byte-swapping to do PIO access to the PCI space > inclusing the ATI card. > > > > HW handles the byte-swapping for the DMA. I programmed > the byte-swapping > > > > for the ATI card MMIO aperture and the linear aperture. > But the probem > > > > persists. I am new to the Xfree86 and would really > appreciate it if you > > > > can give me some hint on what could be wrong. > > > > The driver should be handling endianness correctly, > without changes, > > > assuming that compiler.h is correct for this platform. > > > The original compiler.h doesn't do byte-swapping for MIPS platforms, > > assuming that the HW would handle it. So I added > byte-swapping to MMIO_INxx, > > MMIO_OUTxx, MMIO_MOVE32 for the MIPS. > > > BTW, if I used the "fbdev" driver instead of "ati", the > problem is gone. > > Then the problem seems to be related to your redefinition of > the MMIO_MOVE32 > macro (which should _not_ byte-swap).
Yes, this is the problem. Removing the byte-swap fixed it. I wasn't sure about what MMIO_MOVE32 is used for when I was adding byte-swap. I knew they are used to write pATI->pHOST_DATA, but I didn't know whether pHOST_DATA points to the host address or PCI address. Thank you very much. > > 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