[U-Boot] [PATCH v2 35/47] x86: Support building the EFI stub

Simon Glass sjg at chromium.org
Tue Aug 4 20:35:15 CEST 2015


Hi Bin,

On 4 August 2015 at 00:54, Bin Meng <bmeng.cn at gmail.com> wrote:
> Hi Simon,
>
> On Fri, Jul 31, 2015 at 11:31 PM, Simon Glass <sjg at chromium.org> wrote:
>> Add support for building a 32/64-bit EFI stub for x86. This involves
>> building the startup and relocation code for either i386 or x86_64.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> Changes in v2:
>> - Add a comment as to why the AFLAGS_REMOVE_.. lines are needed
>> - Move the crt and reloc files into arch/x86/lib/efi/
>>
>>  arch/x86/lib/Makefile     |  2 +-
>>  arch/x86/lib/efi/Makefile | 24 ++++++++++++++++++++++++
>>  2 files changed, 25 insertions(+), 1 deletion(-)
>>  create mode 100644 arch/x86/lib/efi/Makefile
>>
>> diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
>> index 43489fd..09c236b 100644
>> --- a/arch/x86/lib/Makefile
>> +++ b/arch/x86/lib/Makefile
>> @@ -34,7 +34,7 @@ obj-$(CONFIG_SYS_X86_TSC_TIMER)       += tsc_timer.o
>>  obj-$(CONFIG_CMD_ZBOOT)        += zimage.o
>>  obj-$(CONFIG_HAVE_FSP) += fsp/
>>
>> -extra-$(CONFIG_USE_PRIVATE_LIBGCC) := lib.a
>> +extra-$(CONFIG_USE_PRIVATE_LIBGCC) += lib.a
>>
>>  NORMAL_LIBGCC = $(shell $(CC) $(PLATFORM_CPPFLAGS) -print-libgcc-file-name)
>>  OBJCOPYFLAGS := --prefix-symbols=__normal_
>> diff --git a/arch/x86/lib/efi/Makefile b/arch/x86/lib/efi/Makefile
>> new file mode 100644
>> index 0000000..41295d9
>> --- /dev/null
>> +++ b/arch/x86/lib/efi/Makefile
>> @@ -0,0 +1,24 @@
>> +#
>> +# (C) Copyright 2002-2006
>> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
>> +#
>> +# SPDX-License-Identifier:     GPL-2.0+
>> +#
>> +
>> +obj-$(CONFIG_EFI_APP) += crt0-efi-ia32.o reloc_ia32.o
>> +
>> +ifneq ($(CONFIG_EFI_STUB),)
>> +
>> +# When building for 64-bit we must remove the i386-specific flags
>
> I think this comment should be put before reloc_x86_64 below as 64-bit
> stub does not build reloc_ia32.c

OK

>
>> +CFLAGS_REMOVE_reloc_ia32.o += -mregparm=3
>> +CFLAGS_reloc_ia32.o += -fpic -fshort-wchar
>> +
>
> I don't see AFLAGS_REMOVE_crt0-efi-ia32.o and AFLAGS_crt0-efi-ia32.o.

They should not be needed as we don't need to change the assembler
flags in that case.

>
>> +CFLAGS_REMOVE_reloc_x86_64.o += -mregparm=3 -march=i386 -m32
>> +CFLAGS_reloc_x86_64.o += -fpic -fshort-wchar
>> +
>> +AFLAGS_REMOVE_crt0-efi-x86_64.o += -mregparm=3 -march=i386 -m32
>> +AFLAGS_crt0-efi-x86_64.o += -fpic -fshort-wchar
>> +
>> +extra-$(CONFIG_EFI_STUB_32BIT) += crt0-efi-ia32.o reloc_ia32.o
>> +extra-$(CONFIG_EFI_STUB_64BIT) += crt0-efi-x86_64.o reloc_x86_64.o
>> +endif
>> --

Regards,
Simon


More information about the U-Boot mailing list