efi: sandbox: Add required linker sections
authorSimon Glass <sjg@chromium.org>
Wed, 16 May 2018 15:42:23 +0000 (09:42 -0600)
committerAlexander Graf <agraf@suse.de>
Sun, 3 Jun 2018 13:27:21 +0000 (15:27 +0200)
The EFI loader code requires certain linker sections to exist. Add these
for sandbox so that the EFI loader code will link.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/sandbox/cpu/u-boot.lds
arch/sandbox/lib/Makefile
arch/sandbox/lib/sections.c [new file with mode: 0644]

index f97abdfa0507b094798ed90fb3d71fff5154975a..3a6cf55eb99d4bc56a8178b3cd1ee3b1d96c226e 100644 (file)
@@ -18,6 +18,35 @@ SECTIONS
        __u_boot_sandbox_option_end = .;
 
        __bss_start = .;
+
+               .__efi_runtime_start : {
+               *(.__efi_runtime_start)
+       }
+
+       .efi_runtime : {
+               *(efi_runtime_text)
+               *(efi_runtime_data)
+       }
+
+       .__efi_runtime_stop : {
+               *(.__efi_runtime_stop)
+       }
+
+       .efi_runtime_rel_start :
+       {
+               *(.__efi_runtime_rel_start)
+       }
+
+       .efi_runtime_rel : {
+               *(.relefi_runtime_text)
+               *(.relefi_runtime_data)
+       }
+
+       .efi_runtime_rel_stop :
+       {
+               *(.__efi_runtime_rel_stop)
+       }
+
 }
 
 INSERT BEFORE .data;
index 52eef2e662e70115699a4bf4775969c05ffe7a05..b4ff717e7849f7f9624269cf5c23d6bfcd0082b9 100644 (file)
@@ -5,7 +5,7 @@
 # (C) Copyright 2002-2006
 # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
 
-obj-y  += interrupts.o
+obj-y  += interrupts.o sections.o
 obj-$(CONFIG_PCI)      += pci_io.o
 obj-$(CONFIG_CMD_BOOTM) += bootm.o
 obj-$(CONFIG_CMD_BOOTZ) += bootm.o
diff --git a/arch/sandbox/lib/sections.c b/arch/sandbox/lib/sections.c
new file mode 100644 (file)
index 0000000..697a816
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net>
+ *
+ */
+
+char __efi_runtime_start[0] __attribute__((section(".__efi_runtime_start")));
+char __efi_runtime_stop[0] __attribute__((section(".__efi_runtime_stop")));
+char __efi_runtime_rel_start[0]
+               __attribute__((section(".__efi_runtime_rel_start")));
+char __efi_runtime_rel_stop[0]
+               __attribute__((section(".__efi_runtime_rel_stop")));