[PATCH v2 000/113] efi: prepare for ARM64 EFI loader support
Sascha Hauer
s.hauer at pengutronix.de
Tue Mar 5 07:28:29 PST 2024
On Mon, 04 Mar 2024 19:58:45 +0100, Ahmad Fatoum wrote:
> I've been working on enabling use of barebox as EFI loader for a while.
> It's already functional enough to boot efi-stubbed Linux directly or via
> Grub, but some key parts like proper runtime services and the EFI boot
> manager are still missing.
>
> Nevertheless, A lot of commits are already in a good enough shape to be
> upstreamed, which I collected in this series. A second WIP series with
> the EFI loader support will follow afterwards.
>
> [...]
Applied, thanks!
[001/113] string: implement strcmp_ptr and streq_ptr helpers
https://git.pengutronix.de/cgit/barebox/commit/?id=ab6b3b6b43a7 (link may not be stable)
[002/113] commands: efiexit: flush console and shutdown barebox
https://git.pengutronix.de/cgit/barebox/commit/?id=d4a47c5f1477 (link may not be stable)
[003/113] treewide: add errno_set helper for returning positive error code in errno
https://git.pengutronix.de/cgit/barebox/commit/?id=b0b6b9bd2634 (link may not be stable)
[004/113] vsprintf: guard against NULL in UUID %pU
https://git.pengutronix.de/cgit/barebox/commit/?id=85ffcfca19ba (link may not be stable)
[005/113] common: add option to poweroff system on failure
https://git.pengutronix.de/cgit/barebox/commit/?id=225004aad397 (link may not be stable)
[006/113] boot: print error code when booting fails
https://git.pengutronix.de/cgit/barebox/commit/?id=1d06756875f0 (link may not be stable)
[007/113] common: efi: move directory to top-level
https://git.pengutronix.de/cgit/barebox/commit/?id=c30fcd81f548 (link may not be stable)
[008/113] efi: payload: rename CONFIG_EFI_BOOTUP to CONFIG_EFI_PAYLOAD
https://git.pengutronix.de/cgit/barebox/commit/?id=196140266808 (link may not be stable)
[009/113] efi: payload: image: return actual read_file() error
https://git.pengutronix.de/cgit/barebox/commit/?id=b917445432d5 (link may not be stable)
[010/113] of: don't report failure to of_read_file twice
https://git.pengutronix.de/cgit/barebox/commit/?id=fdd7da1169dc (link may not be stable)
[011/113] efi: payload: make missing state reporting less verbose
https://git.pengutronix.de/cgit/barebox/commit/?id=c7fbc51c572e (link may not be stable)
[012/113] libfile: factor out read_file_into_buf helper
https://git.pengutronix.de/cgit/barebox/commit/?id=761f51b69966 (link may not be stable)
[013/113] efi: payload: image: allocate image via loader if it exceeds malloc area
https://git.pengutronix.de/cgit/barebox/commit/?id=63c4468ff1b1 (link may not be stable)
[014/113] efi: payload: image: use assigned barebox loader type on x86
https://git.pengutronix.de/cgit/barebox/commit/?id=45883d351bde (link may not be stable)
[015/113] efi: payload: iomem: adjust types to avoid casting
https://git.pengutronix.de/cgit/barebox/commit/?id=33860c392de7 (link may not be stable)
[016/113] commands: kallsyms: add command-line interface
https://git.pengutronix.de/cgit/barebox/commit/?id=396fe8fb8b71 (link may not be stable)
[017/113] block: define BLOCKSIZE globally in block.h
https://git.pengutronix.de/cgit/barebox/commit/?id=2285dd1e4f19 (link may not be stable)
[018/113] cdev: implement setter/getter for cdev device node
https://git.pengutronix.de/cgit/barebox/commit/?id=29d0e0522828 (link may not be stable)
[019/113] block: virtio: assign virtio-mmio device tree node to cdevs
https://git.pengutronix.de/cgit/barebox/commit/?id=2481ff8ac2df (link may not be stable)
[020/113] commands: stat: print DT node for cdevs if available
https://git.pengutronix.de/cgit/barebox/commit/?id=3401bb216585 (link may not be stable)
[021/113] partitions: have parsers record bootable bits
https://git.pengutronix.de/cgit/barebox/commit/?id=35c1e544eb11 (link may not be stable)
[022/113] commands: stat: display bootable partition table bit info
https://git.pengutronix.de/cgit/barebox/commit/?id=aca95e86e163 (link may not be stable)
[023/113] block: record block device type
https://git.pengutronix.de/cgit/barebox/commit/?id=46ba653ef10e (link may not be stable)
[024/113] include: add definitions for UAPI discoverable partitions spec
https://git.pengutronix.de/cgit/barebox/commit/?id=cba5b8e2c184 (link may not be stable)
[025/113] efi: payload: restrict 8250 UART at I/O port 0x3f8 registration to x86
https://git.pengutronix.de/cgit/barebox/commit/?id=4a3f29461bab (link may not be stable)
[026/113] fs: fix unreaddir, so readdir returns unread dirent first
https://git.pengutronix.de/cgit/barebox/commit/?id=32ee1f61b692 (link may not be stable)
[027/113] fs: turn creat into static inline helper
https://git.pengutronix.de/cgit/barebox/commit/?id=2ac0fe5c32ff (link may not be stable)
[028/113] fs: drop unused LOOKUP_ flags
https://git.pengutronix.de/cgit/barebox/commit/?id=582d3b8bd764 (link may not be stable)
[029/113] fs: opendir: reference mount point until closedir is called
https://git.pengutronix.de/cgit/barebox/commit/?id=4378835b3730 (link may not be stable)
[030/113] fs: factor out opendir iteration
https://git.pengutronix.de/cgit/barebox/commit/?id=8208b020c4d2 (link may not be stable)
[031/113] fs: implement fdopendir and rewinddir
https://git.pengutronix.de/cgit/barebox/commit/?id=8c5a89504ae5 (link may not be stable)
[032/113] fs: remove unused member from struct nameidata
https://git.pengutronix.de/cgit/barebox/commit/?id=8de734a1f939 (link may not be stable)
[033/113] fs: always check path_init for errors
https://git.pengutronix.de/cgit/barebox/commit/?id=a9020bdff31a (link may not be stable)
[034/113] fs: set current working dir directly when mounting root
https://git.pengutronix.de/cgit/barebox/commit/?id=abb3a37a5031 (link may not be stable)
[035/113] fs: implement openat and friends
https://git.pengutronix.de/cgit/barebox/commit/?id=c47228735021 (link may not be stable)
[036/113] fs: implement O_PATH
https://git.pengutronix.de/cgit/barebox/commit/?id=049b0e98ded7 (link may not be stable)
[037/113] fs: support different root directories
https://git.pengutronix.de/cgit/barebox/commit/?id=127f7b809e0c (link may not be stable)
[038/113] fs: implement O_CHROOT
https://git.pengutronix.de/cgit/barebox/commit/?id=b89cf57d484e (link may not be stable)
[039/113] commands: introduce new findmnt command
https://git.pengutronix.de/cgit/barebox/commit/?id=992f8aeec132 (link may not be stable)
[040/113] fs: initialize struct nameidata::last
https://git.pengutronix.de/cgit/barebox/commit/?id=6548e5b9ca68 (link may not be stable)
[041/113] fs: support opening /
https://git.pengutronix.de/cgit/barebox/commit/?id=3a478ff3e1e6 (link may not be stable)
[042/113] test: self: add dirfd tests
https://git.pengutronix.de/cgit/barebox/commit/?id=fe477b0a74de (link may not be stable)
[043/113] commands: stat: add option for statat
https://git.pengutronix.de/cgit/barebox/commit/?id=5b175c52b53b (link may not be stable)
[044/113] efi: payload: lower command line options print from error to info
https://git.pengutronix.de/cgit/barebox/commit/?id=73d824f77554 (link may not be stable)
[045/113] efi: payload: init: warn if /boot FS is unknown
https://git.pengutronix.de/cgit/barebox/commit/?id=3893b00bda38 (link may not be stable)
[046/113] commands: time: switch to using getopt for -n
https://git.pengutronix.de/cgit/barebox/commit/?id=a238ac807882 (link may not be stable)
[047/113] commands: time: reduce strjoin runtime, drop trailing space
https://git.pengutronix.de/cgit/barebox/commit/?id=35a903414ddc (link may not be stable)
[048/113] commands: time: refactor into new strjoin
https://git.pengutronix.de/cgit/barebox/commit/?id=788f616946df (link may not be stable)
[049/113] test: self: add strjoin tests
https://git.pengutronix.de/cgit/barebox/commit/?id=f0102c263aeb (link may not be stable)
[050/113] filetype: have cdev_detect_type take a cdev
https://git.pengutronix.de/cgit/barebox/commit/?id=9294edaa4382 (link may not be stable)
[051/113] ARM: mmu-early: gracefully handle already enabled MMU
https://git.pengutronix.de/cgit/barebox/commit/?id=f53fc0b3212e (link may not be stable)
[052/113] efi: don't hide structs, enums or unions behind _t
https://git.pengutronix.de/cgit/barebox/commit/?id=05d94839c918 (link may not be stable)
[053/113] efi: make headers self-contained
https://git.pengutronix.de/cgit/barebox/commit/?id=a1c7c158eedf (link may not be stable)
[054/113] efi: unify whitespace for GUIDs
https://git.pengutronix.de/cgit/barebox/commit/?id=0e9c0a9cbd0a (link may not be stable)
[055/113] efi: efi-guid: add more GUIDs
https://git.pengutronix.de/cgit/barebox/commit/?id=62a782bb02f5 (link may not be stable)
[056/113] ARM64: cpu: setupc: rewrite to be fully PIC
https://git.pengutronix.de/cgit/barebox/commit/?id=0bfc6ab8bc65 (link may not be stable)
[057/113] ARM64: runtime-offset: make get_runtime_offset fully PIC
https://git.pengutronix.de/cgit/barebox/commit/?id=22ae71e69d20 (link may not be stable)
[058/113] pbl: introduce CONFIG_PBL_FULLY_PIC
https://git.pengutronix.de/cgit/barebox/commit/?id=a7e6cd8e3efa (link may not be stable)
[059/113] efi: payload: fix ARM build
https://git.pengutronix.de/cgit/barebox/commit/?id=f6559edc80d3 (link may not be stable)
[060/113] efi: payload: init: restrict barebox mem to first 1G only on x86
https://git.pengutronix.de/cgit/barebox/commit/?id=b488d9ada034 (link may not be stable)
[061/113] efi: add efi_is_loader/efi_is_payload helpers
https://git.pengutronix.de/cgit/barebox/commit/?id=626d4126b0e9 (link may not be stable)
[062/113] efi: payload: suppress EFI payload initcalls when not EFI-loaded
https://git.pengutronix.de/cgit/barebox/commit/?id=b2059a82e395 (link may not be stable)
[063/113] ARM: make board data definitions accessible to other architectures
https://git.pengutronix.de/cgit/barebox/commit/?id=6debda9a2625 (link may not be stable)
[064/113] boarddata: add barebox_boarddata_is_machine helper
https://git.pengutronix.de/cgit/barebox/commit/?id=3361b466b5a7 (link may not be stable)
[065/113] common: add PE/COFF loader
https://git.pengutronix.de/cgit/barebox/commit/?id=5e418b7cf555 (link may not be stable)
[066/113] efi: use efi_handle_t where appropriate
https://git.pengutronix.de/cgit/barebox/commit/?id=069bf5f7dd0f (link may not be stable)
[067/113] efi: block: move definitions into header file
https://git.pengutronix.de/cgit/barebox/commit/?id=b10356152382 (link may not be stable)
[068/113] efi: define efi_handle_t as opaque pointer
https://git.pengutronix.de/cgit/barebox/commit/?id=36f28caa8701 (link may not be stable)
[069/113] efi: constify guid_t in API
https://git.pengutronix.de/cgit/barebox/commit/?id=5da3afed6bff (link may not be stable)
[070/113] efi: rename efi_simple_input_interface to efi_simple_text_input_protocol
https://git.pengutronix.de/cgit/barebox/commit/?id=4420b7d6bccc (link may not be stable)
[071/113] efi: add EFI_WARN constants
https://git.pengutronix.de/cgit/barebox/commit/?id=d030653880e5 (link may not be stable)
[072/113] efi-stdio: fix wait_for_event argument
https://git.pengutronix.de/cgit/barebox/commit/?id=4c402a058e38 (link may not be stable)
[073/113] efi-stdio: wait for extended input key event when using extended input
https://git.pengutronix.de/cgit/barebox/commit/?id=f1f47dbf94a8 (link may not be stable)
[074/113] efi: flesh out EFI definitions in header
https://git.pengutronix.de/cgit/barebox/commit/?id=51b155eb9e02 (link may not be stable)
[075/113] efi: add efi_driver_binding_protocol
https://git.pengutronix.de/cgit/barebox/commit/?id=b2af074756a0 (link may not be stable)
[076/113] efi: improve usability of EFI_PAGE_* macros
https://git.pengutronix.de/cgit/barebox/commit/?id=9135eff90223 (link may not be stable)
[077/113] fs: efi: move definitions into header
https://git.pengutronix.de/cgit/barebox/commit/?id=bcfdca61e191 (link may not be stable)
[078/113] efi: fs: flesh out file system definitions
https://git.pengutronix.de/cgit/barebox/commit/?id=9ba434fc6e95 (link may not be stable)
[079/113] efi: stdio: fix efi_register_keystroke_notify prototype
https://git.pengutronix.de/cgit/barebox/commit/?id=0fe55b4c7fd4 (link may not be stable)
[080/113] video: mark EFI_GOP driver x86-only for now
https://git.pengutronix.de/cgit/barebox/commit/?id=de32a6e176a7 (link may not be stable)
[081/113] filetype: add new file types for EFI-enabled Linux images
https://git.pengutronix.de/cgit/barebox/commit/?id=1c8a0198f2dd (link may not be stable)
[082/113] efi: payload: register handler for EFI-stubbed ARM64 kernel
https://git.pengutronix.de/cgit/barebox/commit/?id=158ca31e5619 (link may not be stable)
[083/113] efi: payload: factor C efi_main into dedicated file
https://git.pengutronix.de/cgit/barebox/commit/?id=c6d2ed6850ee (link may not be stable)
[084/113] efi: payload: early-mem: simplify error message reporting
https://git.pengutronix.de/cgit/barebox/commit/?id=cc43c6e4c6cd (link may not be stable)
[085/113] efi: payload: early-mem: use EFI_PAGE_SIZE instead of PAGE_SIZE
https://git.pengutronix.de/cgit/barebox/commit/?id=3919cc4b2996 (link may not be stable)
[086/113] ARM64: add optional EFI stub
https://git.pengutronix.de/cgit/barebox/commit/?id=742e78976dd4 (link may not be stable)
[087/113] efi: devicepath: improve const safety
https://git.pengutronix.de/cgit/barebox/commit/?id=b9dea1fef6b1 (link may not be stable)
[088/113] efi: refactor device_path_to_partuuid for code reuse
https://git.pengutronix.de/cgit/barebox/commit/?id=e5bf6b3e56b5 (link may not be stable)
[089/113] efi: devicepath: implement device_path_to_str_buf variant
https://git.pengutronix.de/cgit/barebox/commit/?id=8d242311041c (link may not be stable)
[090/113] lib: vsprintf: align documentation with current feature set
https://git.pengutronix.de/cgit/barebox/commit/?id=26224692c14d (link may not be stable)
[091/113] vsprintf: add %pD for printing EFI device path
https://git.pengutronix.de/cgit/barebox/commit/?id=402dae62ce82 (link may not be stable)
[092/113] lib: string: import Linux strreplace helper
https://git.pengutronix.de/cgit/barebox/commit/?id=b823168b76ff (link may not be stable)
[093/113] efi: payload: dynamically determine bootloader file name
https://git.pengutronix.de/cgit/barebox/commit/?id=f1230c7f92cd (link may not be stable)
[094/113] efi: payload: iomem: register later
https://git.pengutronix.de/cgit/barebox/commit/?id=7584e768f48a (link may not be stable)
[095/113] efi: payload: protect against buggy EFI implementations
https://git.pengutronix.de/cgit/barebox/commit/?id=e0e30f636242 (link may not be stable)
[096/113] efi: payload: don't require efi_loaded_image->parent_handle for bootsource detection
https://git.pengutronix.de/cgit/barebox/commit/?id=1c18863354dc (link may not be stable)
[097/113] commands: add cpuinfo -s option for stacktrace
https://git.pengutronix.de/cgit/barebox/commit/?id=ffa2c5d47d18 (link may not be stable)
[098/113] efi: devicepath: align MemoryMapped name with spec
https://git.pengutronix.de/cgit/barebox/commit/?id=41781cbb27ae (link may not be stable)
[099/113] efi: devicepath: pretty print BBS BEV DeviceType
https://git.pengutronix.de/cgit/barebox/commit/?id=fcbbd5db1c51 (link may not be stable)
[100/113] efi: devicepath: format GUIDs as little endian
https://git.pengutronix.de/cgit/barebox/commit/?id=0a4d84b435c6 (link may not be stable)
[101/113] efi: devicepath: move END device node definitions into header
https://git.pengutronix.de/cgit/barebox/commit/?id=066114dcd743 (link may not be stable)
[102/113] efi: devicepath: drop underscores in hex constants
https://git.pengutronix.de/cgit/barebox/commit/?id=80f5353a74cf (link may not be stable)
[103/113] efi: devicepath: namespace definitions
https://git.pengutronix.de/cgit/barebox/commit/?id=58f24203d77d (link may not be stable)
[104/113] efi: devicepath: use flexible array members for trailing strings
https://git.pengutronix.de/cgit/barebox/commit/?id=b2e6b2ebb0a0 (link may not be stable)
[105/113] efi: devicepath: drop unused macro
https://git.pengutronix.de/cgit/barebox/commit/?id=257b49108c97 (link may not be stable)
[106/113] efi: devicepath: let compiler worry about unaligned unpacking
https://git.pengutronix.de/cgit/barebox/commit/?id=93ab2357f7fd (link may not be stable)
[107/113] efi: devicepath: correct formatting of BBS
https://git.pengutronix.de/cgit/barebox/commit/?id=009208f801ca (link may not be stable)
[108/113] commands: provide efi_handle_dump in both payload and loader
https://git.pengutronix.de/cgit/barebox/commit/?id=387d6f9ed9a1 (link may not be stable)
[109/113] lib: uuid: implement uuid/guid_parse
https://git.pengutronix.de/cgit/barebox/commit/?id=193958495437 (link may not be stable)
[110/113] commands: efi_handle_dump: prepare for supporting EFI loader
https://git.pengutronix.de/cgit/barebox/commit/?id=910bca1d6bc7 (link may not be stable)
[111/113] commands: efi_handle_dump: print loaded image devpath
https://git.pengutronix.de/cgit/barebox/commit/?id=473e9898a13b (link may not be stable)
[112/113] commands: efi_handle_dump: use guid_parse instead of open-coding
https://git.pengutronix.de/cgit/barebox/commit/?id=1151c4325bc7 (link may not be stable)
[113/113] commands: efi_handle_dump: don't ignore failure to parse GUID
https://git.pengutronix.de/cgit/barebox/commit/?id=281c2b56b928 (link may not be stable)
Best regards,
--
Sascha Hauer <s.hauer at pengutronix.de>
More information about the barebox
mailing list