[LinuxBIOS] About CS5536 UART2 and USB boot !

Marc Jones Marc.Jones at AMD.com
Thu Jun 14 18:40:46 CEST 2007

Gard xu wrote:
> Hi all :
>         My target  is Geode LX800 + CS5536., Linuxbios rev2550 base on 
> mainboard dbe61. It can boot linux(2.6.20) with IDE and work well.But 
> now there are two questions trouble me some days.
>        1. MY target use CS5536's UART1 as COM1,It can work 
> normally.When I try to use the CS5536's UART2  as a general serial 
> COM2 but not the DDC(display data channel), It seem badly. I has set  
> the registers about UART2 refer to CS5536 datashee in linuxbios( *1*. 
> set bit 20:22 of msr 0x51400014  to  6 ;   *2*. set msr 0x5140003e 
> bit 1 and bit 4 as 1. * 3*. set GPIO3(RX) Input Enable and Input 
> AUX1 select  = 1 , set GPIO4(TX) output enable and output AUX1 
> select = 1.). After booting the OS, I read back the register above 
> through my driver found that all  preset value is zero,UART2 can't 
> work. I try to set that registers again in my driver,this time it read 
> back value is right, but UART2 still can't work. 
>                           /dev/ttyS1, Line 1, UART: unknown, Port: 
> 0x02f8, IRQ: 3
>                           Baud_base: 115200, close_delay: 50, divisor: 0
>                           closing_wait: 3000
>                           Flags: spd_normal skip_test auto_irq
> why? maybe kernel use UART2's GPIO pin to act as DDC use,so it change 
> my preset  when linux is booting?  or my configuration about UART2 is 
> not correct ?
When setting up the GPIOs make sure that you have the correct GPIO base. 
It changes between early init and after PCI resources have been 
allocated. You can check the base in MSR 0x5140000c or in the SB PCI 
config space BAR1. This might be why your first settings did not take.

It sounds like you are setting the correct registers. There is an 
example of how to setup the UARTs in the current version of 
southbridge/amd/cs5536/cs5536.c uarts_init() that should be helpful.

I am still working with the Artec group on bringing the dbe61 up to the 
current tree. We are working on the memory init without an SPD right 
now.  I hope that we have it working soon. If your platform is not a 
dbe61 and has a DIMM with SPD then I recommend you try the 
mainboard/amd/norwich platform or the db800 mainboard.

I don't know much about etherboot so let others try to address that 

More information about the coreboot mailing list