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

Heinrich Schuchardt xypron.glpk at gmx.de
Sat May 2 16:14:19 CEST 2020


On 5/2/20 3:41 PM, Bin Meng wrote:
> Hi Heinrich,
>
> On Sat, May 2, 2020 at 9:40 PM Bin Meng <bmeng.cn at gmail.com> wrote:
>>
>> 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
>
> Sorry, hit send too soon.
>
> Convert coreboot BOOTARGS to CONFIG_DISTRO_DEFAULTS makes sense.
>
> Let's keep this series as it is.
>
> Would you please come up with a patch to do distro boot for coreboot?
>
> Regards,
> Bin
>

If the move to DISTRO_DEFAULTS is done in a follow-up patch, I am fine
with the patch merged as is.

Best regards

Heinrich


More information about the U-Boot mailing list