[PATCH v5 1/1] x86: Add a 64-bit 'coreboot64' build

Bin Meng bmeng.cn at gmail.com
Sat May 2 15:40:04 CEST 2020


Hi Heinrich,

On Sat, May 2, 2020 at 9:38 PM Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> On 5/1/20 3:36 PM, Simon Glass wrote:
> > Coreboot is a first-stage bootloader mostly used on x86 devices as an
> > alternative to UEFI. Coreboot runs in 32-bit mode.
> >
> > U-Boot currently supports booting from coreboot as a second-stage
> > bootloader, also in 32-bit mode. However it is useful to be able to run
> > U-Boot in 64-bit mode. To do this we can have a 32-bit SPL which switches
> > over the CPU and jumps to a 64-bit U-Boot proper.
> >
> > Add a new 'coreboot64' board for running 64-bit U-Boot from coreboot. This
> > uses binman to create an image with a 32-bit SPL and a 64-bit U-Boot.
> >
> > This allows running 64-bit EFI images on x86, for example, without needing
> > a native U-Boot port for a board.
> >
> > Signed-off-by: Simon Glass <sjg at chromium.org>
> > ---
> >
> > Changes in v5:
> > - Rewrite commit message to explain what coreboot is
> >
> >  board/coreboot/coreboot/MAINTAINERS |  7 +++++
> >  configs/coreboot64_defconfig        | 48 +++++++++++++++++++++++++++++
> >  doc/board/coreboot/coreboot.rst     | 10 ++++++
> >  3 files changed, 65 insertions(+)
> >  create mode 100644 configs/coreboot64_defconfig
> >
> > diff --git a/board/coreboot/coreboot/MAINTAINERS b/board/coreboot/coreboot/MAINTAINERS
> > index 188906b080..a05673bb0b 100644
> > --- a/board/coreboot/coreboot/MAINTAINERS
> > +++ b/board/coreboot/coreboot/MAINTAINERS
> > @@ -4,3 +4,10 @@ S:   Maintained
> >  F:   board/coreboot/coreboot/
> >  F:   include/configs/chromebook_link.h
> >  F:   configs/coreboot_defconfig
> > +
> > +COREBOOT64 BOARD
> > +M:   Simon Glass <sjg at chromium.org>
> > +S:   Maintained
> > +F:   board/coreboot/coreboot/
> > +F:   include/configs/chromebook_link.h
> > +F:   configs/coreboot64_defconfig
> > diff --git a/configs/coreboot64_defconfig b/configs/coreboot64_defconfig
> > new file mode 100644
> > index 0000000000..80353b8eb3
> > --- /dev/null
> > +++ b/configs/coreboot64_defconfig
> > @@ -0,0 +1,48 @@
> > +CONFIG_X86=y
> > +CONFIG_SYS_TEXT_BASE=0x1120000
> > +CONFIG_ENV_SIZE=0x1000
> > +CONFIG_NR_DRAM_BANKS=8
> > +CONFIG_PRE_CON_BUF_ADDR=0x100000
> > +CONFIG_X86_RUN_64BIT=y
> > +CONFIG_VENDOR_COREBOOT=y
> > +CONFIG_TARGET_COREBOOT=y
> > +CONFIG_SPL_TEXT_BASE=0x1110000
> > +CONFIG_FIT=y
> > +CONFIG_FIT_SIGNATURE=y
> > +CONFIG_SHOW_BOOT_PROGRESS=y
> > +CONFIG_USE_BOOTARGS=y
> > +CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
>
> The coreboot firmware supports a lot of different boards. The board may
> have two SATA drives or may be using NVME drives instead. Why do we have
> this BOOTARGS line instead of using CONFIG_DISTRO_DEFAULTS=y?
>

Convert coreboot BOOTARGS


More information about the U-Boot mailing list