aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Wiklander <jens.wiklander@linaro.org>2020-02-26 09:51:19 +0100
committerJérôme Forissier <jerome@forissier.org>2020-02-27 12:45:20 +0100
commit66f7994137d50889d34558080cac2f436a28ee84 (patch)
treebff95bbcb7d5d6fee0d37a9951a1f5b566bcfe1f
parentb4814b22dcf813691f1a6697e2013b0cbeb8dca3 (diff)
core: exclude get_aslr_seed() from unpaged part
Excludes get_aslr_seed() from unpaged part and makes sure it's still in the init part. Reviewed-by: Jerome Forissier <jerome@forissier.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
-rw-r--r--core/arch/arm/kernel/link.mk12
-rw-r--r--core/arch/arm/kernel/link_dummies_init.c12
-rw-r--r--core/arch/arm/kernel/link_dummies_paged.c (renamed from core/arch/arm/kernel/link_dummies.c)0
-rw-r--r--core/arch/arm/kernel/sub.mk3
4 files changed, 23 insertions, 4 deletions
diff --git a/core/arch/arm/kernel/link.mk b/core/arch/arm/kernel/link.mk
index d0b08b95..72c21dfc 100644
--- a/core/arch/arm/kernel/link.mk
+++ b/core/arch/arm/kernel/link.mk
@@ -20,8 +20,13 @@ link-ldflags += --gc-sections
link-ldadd = $(LDADD)
link-ldadd += $(libdeps)
-link-objs := $(filter-out $(out-dir)/core/arch/arm/kernel/link_dummies.o, \
- $(objs))
+link-objs := $(filter-out \
+ $(out-dir)/core/arch/arm/kernel/link_dummies_paged.o \
+ $(out-dir)/core/arch/arm/kernel/link_dummies_init.o, \
+ $(objs))
+link-objs-init := $(filter-out \
+ $(out-dir)/core/arch/arm/kernel/link_dummies_init.o, \
+ $(objs))
ldargs-tee.elf := $(link-ldflags) $(link-objs) $(link-out-dir)/version.o \
$(link-ldadd) $(libgcccore)
@@ -73,7 +78,8 @@ $(link-out-dir)/init_entries.txt: $(link-out-dir)/all_objs.o
$(AWK) '/ ____keep_init/ { printf "-u%s ", $$3 }' > $@
init-ldargs := -T $(link-script-dummy) --no-check-sections --gc-sections
-init-ldadd := $(objs) $(link-out-dir)/version.o $(link-ldadd) $(libgcccore)
+init-ldadd := $(link-objs-init) $(link-out-dir)/version.o $(link-ldadd) \
+ $(libgcccore)
cleanfiles += $(link-out-dir)/init.o
$(link-out-dir)/init.o: $(link-out-dir)/init_entries.txt
$(call gen-version-o)
diff --git a/core/arch/arm/kernel/link_dummies_init.c b/core/arch/arm/kernel/link_dummies_init.c
new file mode 100644
index 00000000..3d080279
--- /dev/null
+++ b/core/arch/arm/kernel/link_dummies_init.c
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: BSD-2-Clause
+/*
+ * Copyright (c) 2020, Linaro Limited
+ */
+#include <compiler.h>
+#include <kernel/generic_boot.h>
+
+unsigned long __section(".text.dummy.get_aslr_seed")
+get_aslr_seed(void *fdt __unused)
+{
+ return 0;
+}
diff --git a/core/arch/arm/kernel/link_dummies.c b/core/arch/arm/kernel/link_dummies_paged.c
index b893acf3..b893acf3 100644
--- a/core/arch/arm/kernel/link_dummies.c
+++ b/core/arch/arm/kernel/link_dummies_paged.c
diff --git a/core/arch/arm/kernel/sub.mk b/core/arch/arm/kernel/sub.mk
index 6e2ad640..1599127f 100644
--- a/core/arch/arm/kernel/sub.mk
+++ b/core/arch/arm/kernel/sub.mk
@@ -56,7 +56,8 @@ endif
srcs-$(CFG_VIRTUALIZATION) += virtualization.c
-srcs-y += link_dummies.c
+srcs-y += link_dummies_paged.c
+srcs-y += link_dummies_init.c
asm-defines-y += asm-defines.c