UKIs look like a kernel image, but barebox doesn't detect them as one, which has barebox treat them as it would treat e.g. an EFI shell: An executable it can start, but can't pass arguments to and that it assumes will return to it when it exits.
This doesn't hold of course as a UKI should never return execution to barebox. Additionally, to select a UKI profile, barebox will need to add an @N (where N identifies the profile by number) as the very first load option. This is also enabled by this series. @Fabian, can you give this a test and see if it works for you? Ahmad Fatoum (9): common: bootargs: drop legacy bootargs fallback with FLEXIBLE_BOOTARGS globalvar: skip empty variables in globalvar_get_match() efi: payload: always shutdown barebox when booting efi: payload: honour bootm dryrun in the EFI application handler efi: payload: pass shell arguments as load options to executed images efi: add global.efi.bootargs for bootm'd EFI applications Documentation: efi: describe load options handling test: py: efiloader: check global.efi.bootargs reaches the kernel common: bootargs: don't leave linux_bootargs dangling after free Documentation/boards/efi.rst | 53 ++++++++++++- .../migration-guides/migration-master.rst | 16 ++++ Documentation/user/booting-linux.rst | 12 ++- common/boot.c | 1 + common/bootargs.c | 15 ++-- common/globalvar.c | 6 +- efi/Makefile | 2 +- efi/bootargs.c | 65 ++++++++++++++++ efi/loader/bootm.c | 27 ++++--- efi/payload/bootm.c | 23 +++++- efi/payload/image.c | 76 ++++++++++++++----- efi/payload/image.h | 3 +- include/efi/bootargs.h | 9 +++ test/py/test_linux_efiloader.py | 6 ++ test/py/test_shell.py | 26 +++++++ 15 files changed, 293 insertions(+), 47 deletions(-) create mode 100644 efi/bootargs.c create mode 100644 include/efi/bootargs.h -- 2.47.3
