[PATCH v4 02/20] x86: coreboot: Enable standard boot

Bin Meng bmeng.cn at gmail.com
Tue Sep 19 09:19:21 CEST 2023


On Thu, Aug 24, 2023 at 5:11 AM Simon Glass <sjg at chromium.org> wrote:
>
> Enable bootstd options and provide instructions on how to boot a linux
> distro using coreboot.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
>  configs/coreboot64_defconfig    | 14 ++------------
>  configs/coreboot_defconfig      |  1 +
>  doc/board/coreboot/coreboot.rst | 16 ++++++++++++++--
>  3 files changed, 17 insertions(+), 14 deletions(-)
>
> diff --git a/configs/coreboot64_defconfig b/configs/coreboot64_defconfig
> index a456547a25d..5623197f6be 100644
> --- a/configs/coreboot64_defconfig
> +++ b/configs/coreboot64_defconfig
> @@ -10,39 +10,29 @@ CONFIG_VENDOR_COREBOOT=y
>  CONFIG_TARGET_COREBOOT=y
>  CONFIG_FIT=y
>  CONFIG_FIT_SIGNATURE=y
> +CONFIG_BOOTSTD_FULL=y
> +CONFIG_BOOTSTD_DEFAULTS=y
>  CONFIG_SYS_MONITOR_BASE=0x01120000
>  CONFIG_SHOW_BOOT_PROGRESS=y
>  CONFIG_USE_BOOTARGS=y
>  CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
> -CONFIG_USE_BOOTCOMMAND=y
> -CONFIG_BOOTCOMMAND="ext2load scsi 0:3 01000000 /boot/vmlinuz; zboot 01000000"
>  CONFIG_PRE_CONSOLE_BUFFER=y
>  CONFIG_SYS_CONSOLE_INFO_QUIET=y
>  CONFIG_DISPLAY_BOARDINFO_LATE=y
>  CONFIG_SPL_NO_BSS_LIMIT=y
> -CONFIG_HUSH_PARSER=y
>  CONFIG_SYS_PBSIZE=532
>  CONFIG_CMD_IDE=y
>  CONFIG_CMD_MMC=y
> -CONFIG_CMD_PART=y
>  CONFIG_CMD_SATA=y
>  CONFIG_CMD_USB=y
>  # CONFIG_CMD_SETEXPR is not set
> -CONFIG_CMD_DHCP=y
>  CONFIG_BOOTP_BOOTFILESIZE=y
> -CONFIG_CMD_PING=y
>  CONFIG_CMD_TIME=y
>  CONFIG_CMD_SOUND=y
> -CONFIG_CMD_EXT2=y
> -CONFIG_CMD_EXT4=y
>  CONFIG_CMD_EXT4_WRITE=y
> -CONFIG_CMD_FAT=y
> -CONFIG_CMD_FS_GENERIC=y
>  CONFIG_MAC_PARTITION=y
>  # CONFIG_SPL_MAC_PARTITION is not set
>  # CONFIG_SPL_DOS_PARTITION is not set
> -CONFIG_ISO_PARTITION=y
> -CONFIG_EFI_PARTITION=y
>  # CONFIG_SPL_EFI_PARTITION is not set
>  CONFIG_ENV_OVERWRITE=y
>  CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> diff --git a/configs/coreboot_defconfig b/configs/coreboot_defconfig
> index aedad4c93c3..311ca6672cb 100644
> --- a/configs/coreboot_defconfig
> +++ b/configs/coreboot_defconfig
> @@ -10,6 +10,7 @@ CONFIG_TARGET_COREBOOT=y
>  CONFIG_FIT=y
>  CONFIG_FIT_SIGNATURE=y
>  CONFIG_BOOTSTD_FULL=y
> +CONFIG_BOOTSTD_DEFAULTS=y
>  CONFIG_SYS_MONITOR_BASE=0x01110000
>  CONFIG_SHOW_BOOT_PROGRESS=y
>  CONFIG_USE_BOOTARGS=y
> diff --git a/doc/board/coreboot/coreboot.rst b/doc/board/coreboot/coreboot.rst
> index be5b0de5495..88437c27740 100644
> --- a/doc/board/coreboot/coreboot.rst
> +++ b/doc/board/coreboot/coreboot.rst
> @@ -67,9 +67,21 @@ To use 4GB of memory, typically necessary for booting Linux distros, add
>  In addition to the 32-bit 'coreboot' build there is a 'coreboot64' build. This
>  produces an image which can be booted from coreboot (32-bit). Internally it
>  works by using a 32-bit SPL binary to switch to 64-bit for running U-Boot. It
> -can be useful for running UEFI applications, for example.
> +can be useful for running UEFI applications, for example with the coreboot
> +build in `$CBDIR`::
> +
> +   DISK=ubuntu-23.04-desktop-amd64.iso
> +   CBDIR=~/coreboot/build
> +
> +   cp $CBDIR/coreboot.rom.in coreboot.rom
> +   cbfstool coreboot.rom add-flat-binary -f u-boot-x86-with-spl.bin \
> +      -n fallback/payload -c LZMA -l 0x1110000 -e 0x1110000

nits: lzma, to be consistent with the existing doc

> +
> +   qemu-system-x86_64 -m 2G -smp 4 -bios coreboot.rom \
> +      -drive id=disk,file=$DISK,if=none \
> +      -device ahci,id=ahci \
> +      -device ide-hd,drive=disk,bus=ahci.0 \
>
> -This has only been lightly tested.
>
>  CBFS access
>  -----------
> --

Reviewed-by: Bin Meng <bmeng.cn at gmail.com>

Regards,
Bin


More information about the U-Boot mailing list