[PATCH v3 0/7] x86: Improve support for chain-loading U-Boot

Simon Glass sjg at chromium.org
Sun Mar 29 04:13:35 CEST 2020


Hi Bin,

On Sat, 7 Mar 2020 at 16:22, Simon Glass <sjg at chromium.org> wrote:
>
> This little series adds a few checks into the code to allow better
> operation when booting a build from a previous-state loader such as
> coreboot.
>
> At present we have a 'coreboot' target but this runs very different code
> from the bare-metal targets, such as coral. There is very little in common
> between them.
>
> It is useful to be able to boot the same U-Boot on a device, with or
> without a first-stage bootloader. For example, with chromebook_coral, it
> is helpful for testing to be able to boot the same U-Boot (complete with
> FSP) on bare metal and from coreboot. It allows checking of things like
> CPU speed, comparing registers, ACPI tables and the like.
>
> This series allows U-Boot to detect that it ran from coreboot and
> automatically do the right thing.
>
> This series makes the most important changes to allow the same u-boot.bin
> for coral to boot after coreboot (by itself) or bare metal (via TPL->SPL).
>
> Changes in v3:
> - Add a new patch with a gd flag for chain loading
> - Add new patch to detect running from coreboot
>
> Changes in v2:
> - Drop the other check in interrupt_init() which is not needed now
> - Drop patch 'dm: Avoid initing built-in devices when chain loading'
>
> Simon Glass (7):
>   x86: fsp: Allow skipping init code when chain loading
>   x86: apl: Skip init code when chain loading
>   x86: cpu: Skip init code when chain loading
>   pci: Avoid auto-config when chain loading
>   board: Add a gd flag for chain loading
>   x86: Add a way to detect running from coreboot
>   x86: Use the existing stack when chain-loading
>
>  arch/x86/cpu/apollolake/fsp_s.c   |  2 ++
>  arch/x86/cpu/cpu.c                |  4 +++-
>  arch/x86/cpu/i386/cpu.c           | 15 +++++++++++++++
>  arch/x86/cpu/i386/interrupt.c     |  6 ++++--
>  arch/x86/cpu/start_from_spl.S     | 16 ++++++++++++++--
>  arch/x86/include/asm/u-boot-x86.h |  7 +++++++
>  arch/x86/lib/fsp/fsp_dram.c       |  8 ++++++++
>  arch/x86/lib/fsp/fsp_graphics.c   |  3 +++
>  arch/x86/lib/fsp2/fsp_dram.c      | 10 ++++++++++
>  arch/x86/lib/fsp2/fsp_init.c      |  2 +-
>  arch/x86/lib/init_helpers.c       |  3 +++
>  drivers/pci/pci-uclass.c          |  4 ++--
>  include/asm-generic/global_data.h |  1 +
>  include/init.h                    |  2 +-
>  14 files changed, 74 insertions(+), 9 deletions(-)
>
> --
> 2.25.1.481.gfbce0eb801-goog
>

Any comments on this series?

Regards,
Simon


More information about the U-Boot mailing list