Pull request efi-next-20250104

Heinrich Schuchardt xypron.glpk at gmx.de
Sat Jan 4 13:08:00 CET 2025


On 1/4/25 12:49, Jonas Karlman wrote:
> Hi Heinrich,
>
> On 2025-01-04 04:19, Heinrich Schuchardt wrote:
>> Dear Tom,
>>
>> The following changes since commit ec9263b4f15c4cf82eb6a211c67baa6385065b8e:
>>
>>     Fix neighbor discovery ethernet address saving (2025-01-01 14:40:04
>> -0600)
>>
>> are available in the Git repository at:
>>
>>     https://source.denx.de/u-boot/custodians/u-boot-efi.git
>> tags/efi-next-20250104
>>
>> for you to fetch changes up to ce190e1b33b8c0e1228f4123759dfa1981c202de:
>>
>>     efi: Correct ECPT table GUID (2025-01-04 02:17:06 +0100)
>>
>> Gitlab CI reported no issues:
>> https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/24075
>>
>> ----------------------------------------------------------------
>> Pull request efi-next-20250104
>>
>> Documentation:
>>
>> * doc: develop: Fix typos and wording in binman/binman.rst
>> * doc: develop: Fix typos and wording in gdb.rst
>> * doc: sandbox: Fix the "sb" command name
>> * doc/develop/distro.rst: Better document upstream definition of
>> extlinux.conf
>>
>> UEFI:
>>
>> With this pull request the UEFI sub-system detects all boot devices even
>> if they have not been probed before. If this adds to much boot delay
>> individual bootmeths and bootdevs can be disabled via the customizing.
>>
>> * efi_loader: avoid writing message in Exit() boot service
>> * efi_loader: run bootdev_hunt() to find ESP
>
> This patch still completely changes how standard boot operates, from
> lazy probing boot devices from fastest to slowest (probe time) as
> described in the standard boot documentation [1], to probing all boot
> devices all at once before checking for a bootmeth/bootflow.
>
> This slows down script and extlinux booing on my Rockchip board by
> several seconds because now pcie and usb is probed before current fast
> bootflow from mmc devices is tested.

We need to scan all block devices to be EFI compliant.

As described in the pull request message, if you don't want to boot from
PCIe or USB, you can disable these bootdevs.

If you don't want to boot via EFI set CONFIG_EFI_LOADER=n.

>
> Will you work on a fix for this or do you recommend disabling the
> efi_mgr bootmeth or similar? E.g. something like the diff below.
>
> Similarly if I understand correctly the priority of efi_mgr bootmeth,
> first regardless of configured bootmeth order, is the main blocker for
> sunxi to fully move to standard boot.

Allowing to run global boot methods after non-global ones still has to
be worked on.

Please, elaborate why Sunxi cannot be migrated like other boards. If
some embedded board needs to be trimmed to maximize boot speed you will
anyway adjust the configuration to eliminate all unnecessary scanning of
devices.

Best regards

Heinrich

>
> diff --git a/boot/Kconfig b/boot/Kconfig
> index 20935a269c60..81e10be4eef8 100644
> --- a/boot/Kconfig
> +++ b/boot/Kconfig
> @@ -617,7 +617,7 @@ config BOOTMETH_EFI_BOOTMGR
>   	bool "Bootdev support for EFI boot manager"
>   	depends on EFI_BOOTMGR
>   	select BOOTMETH_GLOBAL
> -	default y
> +	default y if !ARCH_ROCKCHIP
>   	help
>   	  Enable booting via the UEFI boot manager. Based on the EFI variables
>   	  the EFI binary to be launched is determined. To set the EFI variables
>
> [1] https://docs.u-boot.org/en/latest/develop/bootstd/overview.html#boot-process
>
> Regards,
> Jonas
>
>> * efi_loader: update EFI specification version
>> * cmd: efidebug: update output of memory attributes
>> * efi_loader: Don't warn if the TCG2 FinalEvents table is not installed
>> * cmd: bootmenu: add parameter -e for UEFI boot options
>> * efi_loader: Update startimage_exit self-test to check error
>> * efi: Correct ECPT table GUID
>>
>> Others:
>>
>> Building the API demo application for riscv64 is supported.
>>
>> * API: unify platform_sys_info() implementations
>> * examples: implement _start and syscall for RISC-V
>> * examples: use architecture specific memset() on RISC-V
>> * examples: use QEMU compatible LOAD_ADDR on RISC-V
>> * test: fix test_extension.py
>> * configs: sandbox_deconfig: remove CONFIG_AMIGA_PARTITION
>> * CI: xilinx_versal_virt: disable USB_DWC3
>> * net: eth_bootdev_hunt() should not run DHCP
>>
>> ----------------------------------------------------------------
>> Adriano Cordova (1):
>>         efi_loader: Expose efi_reinstall_protocol_interface in efi_loader.h
>>
>> Aleksandar Gerasimovski (1):
>>         efi_loader: fix pe reloc pointer overrun
>>
>> Heinrich Schuchardt (13):
>>         API: unify platform_sys_info() implementations
>>         examples: implement _start and syscall for RISC-V
>>         examples: use architecture specific memset() on RISC-V
>>         examples: use QEMU compatible LOAD_ADDR on RISC-V
>>         efi_loader: avoid writing message in Exit() boot service
>>         test: fix test_extension.py
>>         configs: sandbox_deconfig: remove CONFIG_AMIGA_PARTITION
>>         CI: xilinx_versal_virt: disable USB_DWC3
>>         net: eth_bootdev_hunt() should not run DHCP
>>         cmd: bootmenu: add parameter -e for UEFI boot options
>>         efi_loader: run bootdev_hunt() to find ESP
>>         efi_loader: update EFI specification version
>>         cmd: efidebug: update output of memory attributes
>>
>> Ilias Apalodimas (1):
>>         efi_loader: Don't warn if the TCG2 FinalEvents table is not installed
>>
>> Lothar Rubusch (2):
>>         doc: develop: Fix typos and wording in binman/binman.rst
>>         doc: develop: Fix typos and wording in gdb.rst
>>
>> Olivier L'Heureux (1):
>>         doc: sandbox: Fix the "sb" command name
>>
>> Simon Glass (1):
>>         efi_loader: Update startimage_exit self-test to check error
>>
>> Tom Rini (1):
>>         doc/develop/distro.rst: Better document upstream definition of
>> extlinux.conf
>>
>> Yang Gang (1):
>>         efi: Correct ECPT table GUID
>>
>>    .azure-pipelines.yml                            |   1 +
>>    .gitlab-ci.yml                                  |   1 +
>>    api/Makefile                                    |   9 +-
>>    api/api_platform-arm.c                          |  35 ----
>>    api/api_platform-mips.c                         |  29 ---
>>    api/api_platform.c                              |  25 +++
>>    cmd/bootmenu.c                                  |  39 +++-
>>    cmd/efidebug.c                                  |   5 +-
>>    configs/sandbox_defconfig                       |   1 -
>>    doc/develop/distro.rst                          |  15 +-
>>    doc/develop/gdb.rst                             |  10 +-
>>    doc/usage/cmd/bootmenu.rst                      |  13 +-
>>    doc/usage/cmd/sb.rst                            |   6 +-
>>    examples/api/Makefile                           |   7 +-
>>    examples/api/crt0.S                             |  32 ++++
>>    include/efi.h                                   |   2 +
>>    include/efi_api.h                               |   8 +-
>>    include/efi_loader.h                            |   5 +
>>    lib/efi_loader/efi_boottime.c                   |   9 +-
>>    lib/efi_loader/efi_image_loader.c               |   2 +-
>>    lib/efi_loader/efi_setup.c                      |   8 +
>>    lib/efi_loader/efi_tcg2.c                       |   2 +-
>>    lib/efi_selftest/efi_selftest_startimage_exit.c |   6 +-
>>    net/eth_bootdev.c                               |  30 +--
>>    test/py/tests/test_extension.py                 |   4 +-
>>    tools/binman/binman.rst                         | 234
>> ++++++++++++------------
>>    26 files changed, 300 insertions(+), 238 deletions(-)
>>    delete mode 100644 api/api_platform-arm.c
>>    delete mode 100644 api/api_platform-mips.c
>>    create mode 100644 api/api_platform.c
>>
>



More information about the U-Boot mailing list