[U-Boot] [PATCH v2 03/10] x86: Allow excluding reset vector code from u-boot
Simon Glass
sjg at chromium.org
Thu Oct 11 01:12:54 CEST 2012
From: Gabe Black <gabeblack at chromium.org>
When running from coreboot we don't want this code.
This version works by ifdef-ing out all of the code that would go
into those sections and all the code that refers to it. The sections are
then empty, and the linker will either leave them empty for the loader
to ignore or remove them entirely.
Signed-off-by: Gabe Black <gabeblack at chromium.org>
Signed-off-by: Simon Glass <sjg at chromium.org>
---
Changes in v2:
- Put CONFIG_NO_RESET_CODE into Makefile instead of source files
Makefile | 7 +++++--
arch/x86/cpu/Makefile | 5 ++++-
arch/x86/cpu/u-boot.lds | 3 +++
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 34d9075..6c2f357 100644
--- a/Makefile
+++ b/Makefile
@@ -212,9 +212,12 @@ endif
# U-Boot objects....order is important (i.e. start must be first)
OBJS = $(CPUDIR)/start.o
+OBJS = $(CPUDIR)/start.o
ifeq ($(CPU),x86)
-OBJS += $(CPUDIR)/start16.o
-OBJS += $(CPUDIR)/resetvec.o
+ ifneq ($(CONFIG_NO_RESET_CODE),y)
+ OBJS += $(CPUDIR)/start16.o
+ OBJS += $(CPUDIR)/resetvec.o
+ endif
endif
ifeq ($(CPU),ppc4xx)
OBJS += $(CPUDIR)/resetvec.o
diff --git a/arch/x86/cpu/Makefile b/arch/x86/cpu/Makefile
index 7f1fc18..1eb70a7 100644
--- a/arch/x86/cpu/Makefile
+++ b/arch/x86/cpu/Makefile
@@ -28,7 +28,10 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(CPU).o
-START = start.o start16.o resetvec.o
+START = start.o
+ifneq ($(CONFIG_NO_RESET_CODE),y)
+START += resetvec.o start16.o
+endif
COBJS = interrupts.o cpu.o
SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c)
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..2a90a01 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -85,6 +85,8 @@ SECTIONS
__bios_start = LOADADDR(.bios);
__bios_size = SIZEOF(.bios);
+#ifndef CONFIG_NO_RESET_CODE
+
/*
* The following expressions place the 16-bit Real-Mode code and
* Reset Vector at the end of the Flash ROM
@@ -94,4 +96,5 @@ SECTIONS
. = RESET_VEC_LOC;
.resetvec : AT (CONFIG_SYS_TEXT_BASE + (CONFIG_SYS_MONITOR_LEN - RESET_SEG_SIZE + RESET_VEC_LOC)) { KEEP(*(.resetvec)); }
+#endif
}
--
1.7.7.3
More information about the U-Boot
mailing list