[U-Boot] [SOLVED] Strange / Unreadable console output

Markus Hubig mhubig at imko.de
Thu Aug 16 18:51:52 CEST 2012


Hi Andreas,

On Thu, Aug 16, 2012 at 05:33:26PM +0200, Andreas Bießmann wrote:
> On 16.08.2012 17:07, Markus Hubig wrote:

<snip>

> > But it definitly dosn't work here. I checked with an oscilator, if I toggle
> > the pin in board_init() I can nicely see it going high and low but if I
> > toggle it in board_early_init_f() *nothing* happens!
> 
> Well as mentioned in my mail the mdelay() can not work in
> board_eraly_init_f() cause the timers are not setup at this stage. You
> need to provide some nop-loop based delay here to have proper delay!
> As mentioned before my at91sam9263 (running at about 200 MHz produce 38
> us out of a mdelay(10); I dunno what your g20 variant with about 400 MHz
> produces here). A simple test could be to move the timer init in
> a/a/lib/board.c before board_early_init_f in the init_sequence. Then the
> mdelay() will work as expected!

You were right! The problem was the missing delay after setting the pin!
Just moving the timer_init() before board_early_init_f() in the init_sequence
didn't work because we need the clocks from board_early_init_f() first. But I
found the

| board_postclk_init()

function and the corresponding

| CONFIG_BOARD_POSTCLK_INIT

switch, so I put everything there and now it all works fine! ;-)  

> send a patch (including working serial console output ;)

Unfortunately the board_postclk_init() function was not in the init_sequence
at arch/arm/lib/board.c so I added it there. I will provide two patches, one
for the board stuff and one for the stamp stuff, if this is OK with you ...

Cheers, Markus

-- 
Human beings were created by water to transport it uphill.


More information about the U-Boot mailing list