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;

Reply via email to