[U-Boot] [PATCH 1/1] efi_loader: remove efi_exit_caches()
Alexander Graf
agraf at suse.de
Thu Nov 15 20:23:31 UTC 2018
On 15.11.18 06:34, Jonathan Gray wrote:
> On Sun, Sep 23, 2018 at 02:33:47PM +0200, Heinrich Schuchardt wrote:
>> Since GRUB patch d0c070179d4d ("arm/efi: Switch to arm64 linux loader",
>> 2018-07-09) we do not need a workaround for GRUB on 32bit ARM anymore.
>>
>> So let's eliminate function efi_exit_caches().
>>
>> This will require Linux distributions to update grub-efi-arm to the GRUB
>> git HEAD (a tag containing the aforementioned GRUB patch is not available
>> yet).
>
> OpenBSD/armv7 can no longer boot with U-Boot after this commit as
> it currently does not explicitly invalidate/flush caches in efiboot.
Shoot. I thought I had included a revert of this patch for 2018.11, but
apparently missed it :(.
I'll revert it for efi-next then. We will have to give this a good bit
more thought.
Alex
>
>>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> ---
>> lib/efi_loader/efi_boottime.c | 28 ----------------------------
>> 1 file changed, 28 deletions(-)
>>
>> diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
>> index 2496608981..97eb19cd14 100644
>> --- a/lib/efi_loader/efi_boottime.c
>> +++ b/lib/efi_loader/efi_boottime.c
>> @@ -26,14 +26,6 @@ LIST_HEAD(efi_obj_list);
>> /* List of all events */
>> LIST_HEAD(efi_events);
>>
>> -/*
>> - * If we're running on nasty systems (32bit ARM booting into non-EFI Linux)
>> - * we need to do trickery with caches. Since we don't want to break the EFI
>> - * aware boot path, only apply hacks when loading exiting directly (breaking
>> - * direct Linux EFI booting along the way - oh well).
>> - */
>> -static bool efi_is_direct_boot = true;
>> -
>> #ifdef CONFIG_ARM
>> /*
>> * The "gd" pointer lives in a register on ARM and AArch64 that we declare
>> @@ -1686,8 +1678,6 @@ static efi_status_t EFIAPI efi_start_image(efi_handle_t image_handle,
>>
>> EFI_ENTRY("%p, %p, %p", image_handle, exit_data_size, exit_data);
>>
>> - efi_is_direct_boot = false;
>> -
>> /* call the image! */
>> if (setjmp(&image_obj->exit_jmp)) {
>> /*
>> @@ -1795,21 +1785,6 @@ static efi_status_t EFIAPI efi_unload_image(efi_handle_t image_handle)
>> return EFI_EXIT(EFI_SUCCESS);
>> }
>>
>> -/**
>> - * efi_exit_caches() - fix up caches for EFI payloads if necessary
>> - */
>> -static void efi_exit_caches(void)
>> -{
>> -#if defined(CONFIG_ARM) && !defined(CONFIG_ARM64)
>> - /*
>> - * Grub on 32bit ARM needs to have caches disabled before jumping into
>> - * a zImage, but does not know of all cache layers. Give it a hand.
>> - */
>> - if (efi_is_direct_boot)
>> - cleanup_before_linux();
>> -#endif
>> -}
>> -
>> /**
>> * efi_exit_boot_services() - stop all boot services
>> * @image_handle: handle of the loaded image
>> @@ -1863,9 +1838,6 @@ static efi_status_t EFIAPI efi_exit_boot_services(efi_handle_t image_handle,
>>
>> board_quiesce_devices();
>>
>> - /* Fix up caches for EFI payloads if necessary */
>> - efi_exit_caches();
>> -
>> /* This stops all lingering devices */
>> bootm_disable_interrupts();
>>
>> --
>> 2.19.0
>>
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://lists.denx.de/listinfo/u-boot
More information about the U-Boot
mailing list