> -----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

Reply via email to