From 972188b3a88261969dad0c972b5b915999756d0b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 16 Jan 2017 07:03:45 -0700 Subject: x86: Use X86_16BIT_INIT instead of X86_RESET_VECTOR Use this new option to control the location of 16-bit init. This will allow us to place this in SPL if needed. Signed-off-by: Simon Glass Reviewed-by: Bin Meng diff --git a/Makefile b/Makefile index d3222a0..ed817f5 100644 --- a/Makefile +++ b/Makefile @@ -883,7 +883,7 @@ u-boot.hex u-boot.srec: u-boot FORCE $(call if_changed,objcopy) OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \ - $(if $(CONFIG_X86_RESET_VECTOR),-R .start16 -R .resetvec) + $(if $(CONFIG_X86_16BIT_INIT),-R .start16 -R .resetvec) binary_size_check: u-boot-nodtb.bin FORCE @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \ @@ -1077,8 +1077,9 @@ quiet_cmd_ldr = LD $@ cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \ $(filter-out FORCE,$^) -o $@ -u-boot.rom: u-boot-x86-16bit.bin u-boot.bin FORCE \ - $(if $(CONFIG_HAVE_REFCODE),refcode.bin) +u-boot.rom: u-boot-x86-16bit.bin u-boot.bin \ + $(if $(CONFIG_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \ + $(if $(CONFIG_HAVE_REFCODE),refcode.bin) FORCE $(call if_changed,binman) OBJCOPYFLAGS_u-boot-x86-16bit.bin := -O binary -j .start16 -j .resetvec diff --git a/arch/x86/Makefile b/arch/x86/Makefile index d104a49..dd0e22f 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -5,10 +5,8 @@ ifeq ($(CONFIG_EFI_APP),) head-y := arch/x86/cpu/start.o endif -ifeq ($(CONFIG_SPL_BUILD),y) -head-y += arch/x86/cpu/start16.o -head-y += arch/x86/cpu/resetvec.o -endif +head-$(CONFIG_$(SPL_)X86_16BIT_INIT) += arch/x86/cpu/start16.o +head-$(CONFIG_$(SPL_)X86_16BIT_INIT) += arch/x86/cpu/resetvec.o libs-y += arch/x86/cpu/ libs-y += arch/x86/lib/ diff --git a/arch/x86/cpu/Makefile b/arch/x86/cpu/Makefile index f5b8c9e..fd81310 100644 --- a/arch/x86/cpu/Makefile +++ b/arch/x86/cpu/Makefile @@ -9,7 +9,7 @@ # extra-y = start.o -obj-$(CONFIG_X86_RESET_VECTOR) += resetvec.o start16.o +extra-$(CONFIG_$(SPL_)X86_16BIT_INIT) += resetvec.o start16.o obj-y += interrupts.o cpu.o cpu_x86.o call64.o setjmp.o AFLAGS_REMOVE_call32.o := -mregparm=3 \ diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds index cca536b..186718d 100644 --- a/arch/x86/cpu/u-boot.lds +++ b/arch/x86/cpu/u-boot.lds @@ -103,7 +103,7 @@ SECTIONS /DISCARD/ : { *(.interp*) } /DISCARD/ : { *(.gnu*) } -#ifdef CONFIG_X86_RESET_VECTOR +#ifdef CONFIG_X86_16BIT_INIT /* * The following expressions place the 16-bit Real-Mode code and * Reset Vector at the end of the Flash ROM -- cgit v0.10.2