[U-Boot] [PATCH 16/22] x86: board_f: Adjust x86 boot order for performance

Simon Glass sjg at chromium.org
Thu Jan 1 23:23:45 CET 2015


Hi Bin,

On 30 December 2014 at 22:51, Bin Meng <bmeng.cn at gmail.com> wrote:
>
> Hi Simon,
>
> On Sun, Dec 28, 2014 at 10:20 AM, Simon Glass <sjg at chromium.org> wrote:
> > For bare platforms we turn off ROM-caching before calling board_init_f_r()
> > It is then very slow to copy U-Boot from ROM to RAM. So adjust the order so
> > that the copying happens before we turn off ROM-caching.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> >  common/board_f.c | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/common/board_f.c b/common/board_f.c
> > index 98c9c72..1b65575 100644
> > --- a/common/board_f.c
> > +++ b/common/board_f.c
> > @@ -983,6 +983,11 @@ static init_fnc_t init_sequence_f[] = {
> >         INIT_FUNC_WATCHDOG_RESET
> >         reloc_fdt,
> >         setup_reloc,
> > +#ifdef CONFIG_X86
> > +       copy_uboot_to_ram,
> > +       clear_bss,
> > +       do_elf_reloc_fixups,
> > +#endif
> >  #if !defined(CONFIG_ARM) && !defined(CONFIG_SANDBOX)
> >         jump_to_copy,
> >  #endif
> > @@ -1042,9 +1047,6 @@ void board_init_f(ulong boot_flags)
> >   */
> >  static init_fnc_t init_sequence_f_r[] = {
> >         init_cache_f_r,
> > -       copy_uboot_to_ram,
> > -       clear_bss,
> > -       do_elf_reloc_fixups,
> >
> >         NULL,
> >  };
> > --
>
> I don't understand. Isn't the init_cache_f_r() which turns on the cache?
>

Yes it turns on the cache, but turns off the ROM cache (they are
different things). So this ordering is much faster. I think I might
have more tuning to do though.

Regards,
Simon


More information about the U-Boot mailing list