Am 7. Januar 2026 01:31:26 MEZ schrieb Simon Glass <[email protected]>: >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.
Where do you disable caches that are not managed by CP15? Best regards Heinrich > >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;

