233 lines
6.2 KiB
Diff
233 lines
6.2 KiB
Diff
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
|
|
|
|
|