diff options
author | Carlo Landmeter <clandmeter@gmail.com> | 2016-08-20 00:50:38 +0000 |
---|---|---|
committer | Carlo Landmeter <clandmeter@gmail.com> | 2016-08-20 00:50:48 +0000 |
commit | 28af1a276a13207da834f35b392eacd8015605ad (patch) | |
tree | d0a5f77f4877a3ed1a461d59f30cbc61e0bcbd8a /main/gummiboot/gummiboot-aarch64-support.patch | |
parent | fcbb052ec933fba64b3c476b198f044e092429d9 (diff) | |
download | aports-28af1a276a13207da834f35b392eacd8015605ad.tar.bz2 aports-28af1a276a13207da834f35b392eacd8015605ad.tar.xz |
main/gummiboot: set arch to all
Diffstat (limited to 'main/gummiboot/gummiboot-aarch64-support.patch')
-rw-r--r-- | main/gummiboot/gummiboot-aarch64-support.patch | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/main/gummiboot/gummiboot-aarch64-support.patch b/main/gummiboot/gummiboot-aarch64-support.patch new file mode 100644 index 0000000000..4f14ce5b34 --- /dev/null +++ b/main/gummiboot/gummiboot-aarch64-support.patch @@ -0,0 +1,231 @@ +From koen.kooi at linaro.org Sat Apr 11 01:23:22 2015 +From: koen.kooi at linaro.org (Koen Kooi) +Date: Sat, 11 Apr 2015 10:23:22 +0200 +Subject: [systemd-devel] [gummiboot][PATCH 1/5] Makefile: support non-x86 + builds +Message-ID: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> + +Move the no-mmx/no-sse CFLAGS to X86-64 and IA32 defines in preparation +for ARM32 and Aarch64 support. + +Signed-off-by: Koen Kooi <koen.kooi at linaro.org> +--- + Makefile.am | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 6568a35..2cca313 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -94,17 +94,23 @@ efi_cflags = \ + -ffreestanding \ + -fno-strict-aliasing \ + -fno-stack-protector \ +- -Wsign-compare \ +- -mno-sse \ +- -mno-mmx ++ -Wsign-compare + + if ARCH_X86_64 + efi_cflags += \ + -mno-red-zone \ ++ -mno-sse \ ++ -mno-mmx + -DEFI_FUNCTION_WRAPPER \ + -DGNU_EFI_USE_MS_ABI + endif + ++if ARCH_IA32 ++efi_cflags += \ ++ -mno-sse \ ++ -mno-mmx ++endif ++ + efi_ldflags = \ + $(EFI_LDFLAGS) \ + -T $(EFI_LDS_DIR)/elf_$(ARCH)_efi.lds \ +-- +2.0.1 + + +From koen.kooi at linaro.org Sat Apr 11 01:23:23 2015 +From: koen.kooi at linaro.org (Koen Kooi) +Date: Sat, 11 Apr 2015 10:23:23 +0200 +Subject: [systemd-devel] [gummiboot][PATCH 2/5] util: use x86 ASM only on + x86(-64) platforms. +In-Reply-To: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +References: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +Message-ID: <1428740606-30060-2-git-send-email-koen.kooi@linaro.org> + +Signed-off-by: Koen Kooi <koen.kooi at linaro.org> +--- + src/efi/util.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/efi/util.c b/src/efi/util.c +index ba5ed7d..689bc7c 100644 +--- a/src/efi/util.c ++++ b/src/efi/util.c +@@ -33,7 +33,9 @@ UINT64 ticks_read(VOID) { + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + return (d << 32) | a; + } +-#else ++#endif ++ ++#ifdef __i386__ + UINT64 ticks_read(VOID) { + UINT64 val; + __asm__ volatile ("rdtsc" : "=A" (val)); +-- +2.0.1 + + +From koen.kooi at linaro.org Sat Apr 11 01:23:24 2015 +From: koen.kooi at linaro.org (Koen Kooi) +Date: Sat, 11 Apr 2015 10:23:24 +0200 +Subject: [systemd-devel] [gummiboot][PATCH 3/5] configure: add AARCH64 + support +In-Reply-To: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +References: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +Message-ID: <1428740606-30060-3-git-send-email-koen.kooi@linaro.org> + +This is just plumbing to add ARCH_AARCH64 for makefile tests and +defining the machine name. + +Signed-off-by: Koen Kooi <koen.kooi at linaro.org> +--- + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 27bbe1d..c2077b1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -51,6 +51,7 @@ dnl Define ARCH_<NAME> conditionals + SET_ARCH(IA32, i*86*) + SET_ARCH(X86_64, x86_64*) + SET_ARCH(IA64, ia64*) ++SET_ARCH(AARCH64, aarch64*) + + ARCH=`echo $host | sed "s/\(-\).*$//"` + +@@ -61,6 +62,9 @@ AM_COND_IF(ARCH_IA32, [ + AM_COND_IF(ARCH_X86_64, [ + MACHINE_TYPE_NAME=x64]) + ++AM_COND_IF(ARCH_AARCH64, [ ++ MACHINE_TYPE_NAME=aa64]) ++ + AC_SUBST([ARCH]) + AC_SUBST([MACHINE_TYPE_NAME]) + +-- +2.0.1 + + +From koen.kooi at linaro.org Sat Apr 11 01:23:25 2015 +From: koen.kooi at linaro.org (Koen Kooi) +Date: Sat, 11 Apr 2015 10:23:25 +0200 +Subject: [systemd-devel] [gummiboot][PATCH 4/5] util: confine x86 asm to x86 + architectures +In-Reply-To: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +References: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +Message-ID: <1428740606-30060-4-git-send-email-koen.kooi@linaro.org> + +Also add a stub function that just returns '1' to avoid missing symbols. + +Signed-off-by: Koen Kooi <koen.kooi at linaro.org> +--- + src/efi/util.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/src/efi/util.c b/src/efi/util.c +index 689bc7c..6ce1f18 100644 +--- a/src/efi/util.c ++++ b/src/efi/util.c +@@ -33,14 +33,17 @@ UINT64 ticks_read(VOID) { + __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d)); + return (d << 32) | a; + } +-#endif +- +-#ifdef __i386__ ++#elif __i386__ + UINT64 ticks_read(VOID) { + UINT64 val; + __asm__ volatile ("rdtsc" : "=A" (val)); + return val; + } ++#else ++UINT64 ticks_read(VOID) { ++ UINT64 val = 1; ++ return val; ++} + #endif + + /* count TSC ticks during a millisecond delay */ +-- +2.0.1 + + +From koen.kooi at linaro.org Sat Apr 11 01:23:26 2015 +From: koen.kooi at linaro.org (Koen Kooi) +Date: Sat, 11 Apr 2015 10:23:26 +0200 +Subject: [systemd-devel] [gummiboot][PATCH 5/5] Makefile.am: Add support for + AARCH64 +In-Reply-To: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +References: <1428740606-30060-1-git-send-email-koen.kooi@linaro.org> +Message-ID: <1428740606-30060-5-git-send-email-koen.kooi@linaro.org> + +Aarch64 and ARM32 lack an EFI capable objcopy, so use the ldflags + -O +binary trick gnu-efi and the Red Hat shimloader are using. + +Signed-off-by: Koen Kooi <koen.kooi at linaro.org> +--- + Makefile.am | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 2cca313..eba5ec4 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -121,6 +121,17 @@ efi_ldflags = \ + -L $(EFI_LIB_DIR) \ + $(EFI_LDS_DIR)/crt0-efi-$(ARCH).o + ++# Aarch64 and ARM32 don't have an EFI capable objcopy ++if ARCH_AARCH64 ++efi_ldflags += \ ++ --defsym=EFI_SUBSYSTEM=0xa ++ ++FORMAT = -O binary ++else ++FORMAT = --target=efi-app-$(ARCH) ++endif ++ ++ + # ------------------------------------------------------------------------------ + gummiboot_headers = \ + src/efi/util.h \ +@@ -156,7 +167,7 @@ $(gummiboot_solib): $(gummiboot_objects) + $(gummiboot): $(gummiboot_solib) + $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \ + -j .dynsym -j .rel -j .rela -j .reloc \ +- --target=efi-app-$(ARCH) $< $@ ++ $(FORMAT) $< $@ + + # ------------------------------------------------------------------------------ + stub_headers = \ +@@ -191,7 +202,7 @@ $(stub_solib): $(stub_objects) + $(stub): $(stub_solib) + $(AM_V_GEN) objcopy -j .text -j .sdata -j .data -j .dynamic \ + -j .dynsym -j .rel -j .rela -j .reloc \ +- --target=efi-app-$(ARCH) $< $@ ++ $(FORMAT) $< $@ + + # ------------------------------------------------------------------------------ + CLEANFILES += test-disk.img +-- +2.0.1 + |