On 01/19/2018 09:16 PM, xypron.g...@gmx.de wrote: > From: Heinrich Schuchardt <xypron.g...@gmx.de> > > The calling convention for the entry point of an EFI image > is always 'asmlinkage'. > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > v4 > rebase according to https://github.com/agraf/efi_next > v3 > Use efi_handle_t as type of the image handle. > v2 > no change > --- > > lib/efi_loader/efi_boottime.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c > index 7c61dfb3a7..324abe4d48 100644 > --- a/lib/efi_loader/efi_boottime.c > +++ b/lib/efi_loader/efi_boottime.c > @@ -1530,7 +1530,8 @@ static efi_status_t EFIAPI efi_start_image(efi_handle_t > image_handle, > unsigned long *exit_data_size, > s16 **exit_data) > { > - ulong (*entry)(efi_handle_t image_handle, struct efi_system_table *st); > + asmlinkage ulong (*entry)(efi_handle_t image_handle, > + struct efi_system_table *st);
Alex, could you once again carefully review this change. Have a look at the definition of EFIAPI in include/efi.h In cmd/bootefi.c we assume the entry point is asmlinkage. In lib/efi_loader/helloworld.c we assume it is EFIAPI. The definition of EFIAPI depends on CONFIG_EFI_STUB_64BIT, which is only defined in configs/qemu-x86_efi_payload64_defconfig. Why should the definition of EFIAPI depend on whether we are consuming or offering the API? Shouldn't EFIAPI have the same definition when compiling qemu-x86_64_defconfig? Am I right that the entry point should in cmd/bootefi.c, helloworld.c, efi_start_image() should always be defined as EFIAPI efi_status_t (*entry)(efi_handle_t image_handle and further when compiling for x86_64 we should always define EFIAPI as __attribute__((ms_abi)) and on other systems as asmlinkage Best regards Heinrich > struct efi_loaded_image *info = image_handle; > efi_status_t ret; > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot