lkml.org 
[lkml]   [2020]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] efi/libstub/arm64: Enable __efistub_global define in .data section
From
Date


On 4/10/20 1:09 AM, Ard Biesheuvel wrote:
> On Thu, 9 Apr 2020 at 23:44, Victor Erminpour
> <victor.erminpour@oracle.com> wrote:
>>
>> Enable the __efistub_global define to place variables in the
>> .data section for both CONFIG_ARM and CONFIG_ARM64.
>>
>> This places the EFIstub sys_table variable and other EFIstub
>> static variables in the .data section for both CONFIG_ARM and
>> CONFIG_ARM64.
>>
>
> What does that achieve?

Hi Ard,

Without placing these global variables in .data, I get the
following errors when booting an ARM64 EFI system:

EFI stub: ERROR: Exit boot services failed.
EFI stub: ERROR: Failed to update FDT and exit boot services


I know that the ARM64 linker script is supposed to put the
.init.bss into the .init.data section, but I don't think this
is happening for all systems.

Having it explicitly enabled for CONFIG_ARM64 worked for me.


Regards,
--Victor


>
>> Signed-off-by: Victor Erminpour <victor.erminpour@oracle.com>
>> ---
>> drivers/firmware/efi/libstub/efistub.h | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
>> index c244b16..59932d6 100644
>> --- a/drivers/firmware/efi/libstub/efistub.h
>> +++ b/drivers/firmware/efi/libstub/efistub.h
>> @@ -25,7 +25,7 @@
>> #define EFI_ALLOC_ALIGN EFI_PAGE_SIZE
>> #endif
>>
>> -#ifdef CONFIG_ARM
>> +#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
>> #define __efistub_global __section(.data)
>> #else
>> #define __efistub_global

--
Victor Hugo Erminpour
Principal Member of Technical Staff
Oracle America

\
 
 \ /
  Last update: 2020-04-11 00:13    [W:0.099 / U:0.560 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site