Re: serial port 8250 messed up after coverting from little endian to big endian on kernel 2.6.31

From: Florian Fainelli
Date: Tue Oct 20 2009 - 02:17:32 EST


Hi,

Le mardi 20 octobre 2009 01:56:04, myuboot@xxxxxxxxxxx a écrit :
> I am trying to bringup a MIPS32 board using 2.6.31. It is working in
> little endian mode. After changing the board's hardware from little
> endian to bit endian, the serial port print messed up. It prints now
> something like - "àààààààààààààààà" on the screen. When I trace the
> execution, I can see the string the kernel is trying print is correct -
> "Linux version 2.6.31 ..." and etc.
>
> I guess it means the initialization of the serial port is not properly
> done. But I am not sure where I should check for the problem. The serial
> port device I am using is 8250. Please give me some advise.

If the same initialization routine used to work in little-endian, check how
you actually write and read characters from the UART FIFO and especially if
your hardware requires you to do word or byte access to these registers.

You can have a look at AR7, which has the same code working for Little and Big
Endian modes in arch/mips/ar7/prom.c lines 272 to the end of the file. It also
uses a 8250-compatible UART.

Attachment: signature.asc
Description: This is a digitally signed message part.