Skip to contentSkip to conversation

should the kernel be initializing the uarts on the Au1550?

DISCUSSION Clem Taylor 3 participants 3 messages Apr 26, 2005 MIPS

lore
Share & tools
lore
#0 lore raw

It seems that the kernel (2.6.10) isn't properly initializing the Au1550 serial ports. All three of the serial ports work, just not at the same time. Linux seems to need yamon to configure the serial port first. Out of the box yamon uses UART0 & UART3 and ttyS0 & ttyS2 (UART3, the 1550 doesn't have a UART2) work in linux, but ttyS1 doesn't. If I switch yamon to use UART1 & UART3, then ttyS0 doesn't seem to work in linux. The serial port that isn't configured by yamon will hang in an ioctl() on calling tcsetattr().

Before I just cheat and add a third serial port to yamon, should the kernel be initializing the UARTs or does it really expect the yamon to initialize them first? Is anyone using all 3 serial ports on an Au1550?

Thanks,
Clem

#1 lore raw
Quoted 2 lines · Clem Taylor

It seems that the kernel (2.6.10) isn't properly initializing the Au1550 serial ports.

What do you mean by "initializing"?

Quoted 1 line

.... Linux seems to need yamon to configure ....

Linux assumes yamon for the Db1xxx and Pb1xxx boards will configure nearly all of the IO pins properly. This is quite the opposite of most embedded systems that assume nothing and rely on the Linux board startup functions to do this.

It is just historical, and could be changed. First, we need to add sufficient configuration information so we know what IO is used (serial ports in this case). Second we need the functions to do the proper set up based upon the selected configuration.

Then, the discussions (arguments) start about what should be further assumed about initialization :-) My preference is that if we should do all of the initialization and assume nothing, because we could probably eliminate lots of board specific set up files and use more common software.

Thanks.

	-- Dan
#2 lore raw
In reply to Clem Taylor
Quoted 9 lines · Clem Taylor

It seems that the kernel (2.6.10) isn't properly initializing the Au1550 serial ports. All three of the serial ports work, just not at the same time. Linux seems to need yamon to configure the serial port first. Out of the box yamon uses UART0 & UART3 and ttyS0 & ttyS2 (UART3, the 1550 doesn't have a UART2) work in linux, but ttyS1 doesn't. If I switch yamon to use UART1 & UART3, then ttyS0 doesn't seem to work in linux. The serial port that isn't configured by yamon will hang in an ioctl() on calling tcsetattr().

Quoted 4 lines

Before I just cheat and add a third serial port to yamon, should the kernel be initializing the UARTs or does it really expect the yamon to initialize them first? Is anyone using all 3 serial ports on an Au1550?

Yes, it should. And we should really rewrite the serial driver from scratch.

Pete