efi: Drop EFI_GRUB_ARM32_WORKAROUND
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. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -13,7 +13,6 @@ CONFIG_DEFAULT_DEVICE_TREE="mt7623n-bananapi-bpi-r2"
|
|||||||
CONFIG_TARGET_MT7623=y
|
CONFIG_TARGET_MT7623=y
|
||||||
CONFIG_SYS_BOOTM_LEN=0x4000000
|
CONFIG_SYS_BOOTM_LEN=0x4000000
|
||||||
CONFIG_SYS_LOAD_ADDR=0x84000000
|
CONFIG_SYS_LOAD_ADDR=0x84000000
|
||||||
# CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set
|
|
||||||
CONFIG_FIT=y
|
CONFIG_FIT=y
|
||||||
CONFIG_FIT_VERBOSE=y
|
CONFIG_FIT_VERBOSE=y
|
||||||
CONFIG_DISTRO_DEFAULTS=y
|
CONFIG_DISTRO_DEFAULTS=y
|
||||||
|
|||||||
@@ -498,16 +498,6 @@ config EFI_LOADER_BOUNCE_BUFFER
|
|||||||
hardware we can create a bounce buffer so that payloads don't have to
|
hardware we can create a bounce buffer so that payloads don't have to
|
||||||
worry about platform details.
|
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_ARM
|
|
||||||
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
|
config EFI_ESRT
|
||||||
bool "Enable the UEFI ESRT generation"
|
bool "Enable the UEFI ESRT generation"
|
||||||
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
depends on EFI_CAPSULE_FIRMWARE_MANAGEMENT
|
||||||
|
|||||||
@@ -2154,29 +2154,6 @@ error:
|
|||||||
return EFI_EXIT(ret);
|
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
|
* efi_exit_boot_services() - stop all boot services
|
||||||
* @image_handle: handle of the loaded image
|
* @image_handle: handle of the loaded image
|
||||||
@@ -2260,9 +2237,6 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
|
|||||||
/* Patch out unsupported runtime function */
|
/* Patch out unsupported runtime function */
|
||||||
efi_runtime_detach();
|
efi_runtime_detach();
|
||||||
|
|
||||||
/* Fix up caches for EFI payloads if necessary */
|
|
||||||
efi_exit_caches();
|
|
||||||
|
|
||||||
/* Disable boot time services */
|
/* Disable boot time services */
|
||||||
systab.con_in_handle = NULL;
|
systab.con_in_handle = NULL;
|
||||||
systab.con_in = NULL;
|
systab.con_in = NULL;
|
||||||
|
|||||||
Reference in New Issue
Block a user