On Tue, 6 Jan 2026 at 19:35, Peter Robinson <[email protected]> wrote: > > As stated in the cover letter, this should be sent separately so it > can be assessed on it's own merit.
See my response there. > > On Wed, 7 Jan 2026 at 00:33, Simon Glass <[email protected]> wrote: > > > > From: Simon Glass <[email protected]> > > > > This work-around dates from 2019 and grub 2.04 which is quite old. New > > builds of grub don't have the problem and old boards presumably use an > > older U-Boot, so don't need this. > > Just because something is quite old doesn't mean it's not still > needed, please describe the what the work around achieves, why it's > not needed any longer, the benefits of dropping the workaround, eg > does it slow boot process down? How about this: what the work around achieves - allows booting with grub earlier 2.04 with 32-bit ARM why it's not needed any longer - dates from 2019 and grub 2.04 which is quite old. New builds of grub don't have the problem and old boards presumably use an older U-Boot, so don't need this benefits of dropping the workaround - just a code clean-up. I haven't noticed a slow-down recently but I have certainly seen boards in the last few years that draw the grub menu at an excruciatingly slow pace > > > Drop it. > > > > Signed-off-by: Simon Glass <[email protected]> > > Signed-off-by: Simon Glass <[email protected]> > > --- > > > > configs/mt7623n_bpir2_defconfig | 1 - > > lib/efi_loader/Kconfig | 10 ---------- > > lib/efi_loader/efi_boottime.c | 26 -------------------------- > > 3 files changed, 37 deletions(-) > > > > diff --git a/configs/mt7623n_bpir2_defconfig > > b/configs/mt7623n_bpir2_defconfig > > index 404380558f2..d75168a72ed 100644 > > --- a/configs/mt7623n_bpir2_defconfig > > +++ b/configs/mt7623n_bpir2_defconfig > > @@ -13,7 +13,6 @@ CONFIG_DEFAULT_DEVICE_TREE="mt7623n-bananapi-bpi-r2" > > CONFIG_TARGET_MT7623=y > > CONFIG_SYS_BOOTM_LEN=0x4000000 > > CONFIG_SYS_LOAD_ADDR=0x84000000 > > -# CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set > > CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_DISTRO_DEFAULTS=y > > diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig > > index 13e44be1d06..5585c841c27 100644 > > --- a/lib/efi_loader/Kconfig > > +++ b/lib/efi_loader/Kconfig > > @@ -505,16 +505,6 @@ config EFI_LOADER_BOUNCE_BUFFER > > hardware we can create a bounce buffer so that payloads don't > > have to > > worry about platform details. > > > > -config EFI_GRUB_ARM32_WORKAROUND > > - bool "Workaround for GRUB on 32bit ARM" > > - default n if ARCH_BCM283X || ARCH_SUNXI || ARCH_QEMU > > - default y > > - depends on ARM && !ARM64 > > - help > > - GRUB prior to version 2.04 requires U-Boot to disable caches. This > > - workaround currently is also needed on systems with caches that > > - cannot be managed via CP15. > > - > > config EFI_ESRT > > bool "Enable the UEFI ESRT generation" > > depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT > > diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c > > index 0bc66ee61a8..c31ee53cde6 100644 > > --- a/lib/efi_loader/efi_boottime.c > > +++ b/lib/efi_loader/efi_boottime.c > > @@ -2139,29 +2139,6 @@ error: > > return EFI_EXIT(ret); > > } > > > > -/** > > - * efi_exit_caches() - fix up caches for EFI payloads if necessary > > - */ > > -static void efi_exit_caches(void) > > -{ > > -#if defined(CONFIG_EFI_GRUB_ARM32_WORKAROUND) > > - /* > > - * Boooting Linux via GRUB prior to version 2.04 fails on 32bit ARM > > if > > - * caches are enabled. > > - * > > - * TODO: > > - * According to the UEFI spec caches that can be managed via CP15 > > - * operations should be enabled. Caches requiring platform > > information > > - * to manage should be disabled. This should not happen in > > - * ExitBootServices() but before invoking any UEFI binary is > > invoked. > > - * > > - * We want to keep the current workaround while GRUB prior to > > version > > - * 2.04 is still in use. > > - */ > > - cleanup_before_linux(); > > -#endif > > -} > > - > > /** > > * efi_exit_boot_services() - stop all boot services > > * @image_handle: handle of the loaded image > > @@ -2245,9 +2222,6 @@ static efi_status_t EFIAPI > > efi_exit_boot_services(efi_handle_t image_handle, > > /* Patch out unsupported runtime function */ > > efi_runtime_detach(); > > > > - /* Fix up caches for EFI payloads if necessary */ > > - efi_exit_caches(); > > - > > /* Disable boot time services */ > > systab.con_in_handle = NULL; > > systab.con_in = NULL; > > -- > > 2.43.0 > >

