[U-Boot] [PATCH] mpc83xx: boot time regression, move LCRR setup back to cpu_init_f

Kim Phillips kim.phillips at freescale.com
Wed Dec 9 19:11:38 CET 2009


On Tue, 8 Dec 2009 22:20:34 +0100
Peter Korsgaard <jacmet at sunsite.dk> wrote:

> Commit c7190f02 (retain POR values of non-configured ACR, SPCR, SCCR,
> and LCRR bitfields) moved the LCRR assignment to after relocation
> to RAM because of the potential problem with changing the local bus
> clock while executing from flash.
> 
> This change unfortunately adversely affects the boot time, as running
> all code up to cpu_init_r can cause significant slowdown.
> 
> E.G. on a 8347 board a bootup time increase of ~600ms has been observed:
> 
>    0.020 CPU:   e300c1, MPC8347_PBGA_EA, Rev: 3.0 at 400 MHz, CSB: 266.667 MHz
>    0.168 RS:    232
>    0.172 I2C:   ready
>    0.176 DRAM:  64 MB
>    1.236 FLASH: 32 MB
> 
> Versus:
> 
>    0.016 CPU:   e300c1, MPC8347_PBGA_EA, Rev: 3.0 at 400 MHz, CSB: 266.667 MHz
>    0.092 RS:    232
>    0.092 I2C:   ready
>    0.096 DRAM:  64 MB
>    0.644 FLASH: 32 MB
> 
> So far no boards have needed the late LCRR setup, so simply revert it
> for now - If it is needed at a later time, those boards can either do
> their own final LCRR setup in board code (E.G. in board_early_init_r),
> or we can introduce a CONFIG_SYS_LCRR_LATE config option to only do
> the setup in cpu_init_r.
> 
> Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
> ---

tested ok; applied to u-boot-mpc83xx master.

Thanks Peter!

Kim


More information about the U-Boot mailing list