Hi Peter, On Tue, 6 Jan 2026 at 19:29, Peter Robinson <[email protected]> wrote: > > Hi Simon, > > > Each arch does something slightly different before booting the OS. Some > > archs even do different things depending on the CPU type. > > > > EFT_LOADER has its own special code, regardless of which arch is being > > booted. > > > > It is quite hard to know what actually happens in the final milliseconds > > before the OS boot. > > > > This series attempts to clean up U-Boot in this area. > > > > The basic approach is to create a new bootm_final() function which is > > called by all archs. It provides some flags for a couple of necessary > > variations but otherwise it is generic. > > > > RISC-V, x86 and ARM are converted over to use this new function. For > > consistency, EFI loader is converted as well. > > > > A noteable change is that EFI_LOADER now does bootstage processing > > before boot, if enabled, thus producing a report. > > Why is the change needed, I don't see it explained in the patches or > here and what the implications might be.
At present EFI_LOADER ignores bootstage and so there is no timing report produced even if enabled. It was probably an oversight. > > > There is also a patch to drop EFI_GRUB_ARM32_WORKAROUND, as discussed > > recently on the mailing list. > > That appears to be unrelated to this series, it should be a separate > standalone patch else it needs to be described here why it's a > dependency, and even then likely still posted separately as a > dependency of this series. In what way is it unrelated? In my view this is related as it is a pre-OS cleanup. What do you mean by dependency here? > > > Future work could take this a little further: > > - Drop board_quiesce_devices() and rely on driver model for that > > - Similarly with udc_disconnect(), > > - cleanup_before_linux() could use more details as to what it is > > supposed to do, to reduce the number of arch-specific variations > > What do you mean by that statement. Well, the function does different things on differents archs and is mostly uncommented (apart from an ARM-specific note in a README). Ideally it would be commented with exactly what it should do, ideally at a high level so it is not just arch-specific. > > > Note: This is the first 10 patches for an 18-part series from the > > Concept tree, as requested. The patches after that complete the cleanup > > on ARM and RISC-V. > > > > > > Simon Glass (10): > > boot: Create a function for final pre-boot steps > > efi: Make use of bootm_final() > > bootm: Add a message when booting > > bootstage: Add some missing dummy functions > > bootm: Do bootstage processing in bootm_final() > > x86: Call bootm_final() > > riscv: Drop board_quiesce_devices() > > riscv: Call bootm_final() > > efi: Drop EFI_GRUB_ARM32_WORKAROUND > > x86: Add cleanup_before_linux() > > > > MAINTAINERS | 1 + > > arch/riscv/include/asm/u-boot-riscv.h | 1 - > > arch/riscv/lib/bootm.c | 24 +------------------ > > arch/x86/cpu/cpu.c | 5 ++++ > > arch/x86/lib/bootm.c | 14 +---------- > > boot/Makefile | 2 +- > > boot/bootm_final.c | 34 +++++++++++++++++++++++++++ > > configs/mt7623n_bpir2_defconfig | 1 - > > include/bootm.h | 17 ++++++++++++++ > > include/bootstage.h | 8 +++++++ > > lib/efi_loader/Kconfig | 10 -------- > > lib/efi_loader/efi_boottime.c | 30 +---------------------- > > test/boot/bootflow.c | 2 +- > > 13 files changed, 70 insertions(+), 79 deletions(-) > > create mode 100644 boot/bootm_final.c > > > > -- > > 2.43.0 > > > > base-commit: 6cdd7597a2fbfc1572c1b0af23d3daf1cefa2de7 > > branch: bootma-us

