[U-Boot] [PATCH v2 03/10] x86: Allow excluding reset vector code from u-boot

Graeme Russ graeme.russ at gmail.com
Thu Oct 11 02:22:19 CEST 2012


Hi Simon,

On Thu, Oct 11, 2012 at 10:12 AM, Simon Glass <sjg at chromium.org> wrote:
> 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
>

Acked-by: Graeme Russ <graeme.russ at gmail.com>


More information about the U-Boot mailing list