mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-23 22:14:54 +00:00
x86: Allow 16-bit init to be in TPL
At present we support having 16-bit init be in SPL or U-Boot proper, but not TPL. Add support for this so that TPL can boot. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
051c31b7a4
commit
d68574a72d
5 changed files with 14 additions and 5 deletions
1
Makefile
1
Makefile
|
@ -1380,6 +1380,7 @@ cmd_ldr = $(LD) $(LDFLAGS_$(@F)) \
|
||||||
|
|
||||||
u-boot.rom: u-boot-x86-16bit.bin u-boot.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_SPL_X86_16BIT_INIT),spl/u-boot-spl.bin) \
|
||||||
|
$(if $(CONFIG_TPL_X86_16BIT_INIT),tpl/u-boot-tpl.bin) \
|
||||||
$(if $(CONFIG_HAVE_REFCODE),refcode.bin) FORCE
|
$(if $(CONFIG_HAVE_REFCODE),refcode.bin) FORCE
|
||||||
$(call if_changed,binman)
|
$(call if_changed,binman)
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,8 @@ endif
|
||||||
endif
|
endif
|
||||||
endif # EFI
|
endif # EFI
|
||||||
|
|
||||||
head-$(CONFIG_$(SPL_)X86_16BIT_INIT) += arch/x86/cpu/start16.o
|
head-$(CONFIG_$(SPL_TPL_)X86_16BIT_INIT) += arch/x86/cpu/start16.o
|
||||||
head-$(CONFIG_$(SPL_)X86_16BIT_INIT) += arch/x86/cpu/resetvec.o
|
head-$(CONFIG_$(SPL_TPL_)X86_16BIT_INIT) += arch/x86/cpu/resetvec.o
|
||||||
|
|
||||||
libs-y += arch/x86/cpu/
|
libs-y += arch/x86/cpu/
|
||||||
libs-y += arch/x86/lib/
|
libs-y += arch/x86/lib/
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# Copyright (c) 2016 Google, Inc
|
# Copyright (c) 2016 Google, Inc
|
||||||
|
|
||||||
ifdef CONFIG_HAVE_MRC
|
ifdef CONFIG_HAVE_MRC
|
||||||
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += car.o
|
obj-$(CONFIG_$(SPL_TPL_)X86_16BIT_INIT) += car.o
|
||||||
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += me_status.o
|
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += me_status.o
|
||||||
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += report_platform.o
|
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += report_platform.o
|
||||||
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += mrc.o
|
obj-$(CONFIG_$(SPL_)X86_32BIT_INIT) += mrc.o
|
||||||
|
|
|
@ -54,7 +54,7 @@ SECTIONS
|
||||||
/DISCARD/ : { *(.interp*) }
|
/DISCARD/ : { *(.interp*) }
|
||||||
/DISCARD/ : { *(.gnu*) }
|
/DISCARD/ : { *(.gnu*) }
|
||||||
|
|
||||||
#ifdef CONFIG_SPL_X86_16BIT_INIT
|
#if defined(CONFIG_SPL_X86_16BIT_INIT) || defined(CONFIG_TPL_X86_16BIT_INIT)
|
||||||
/*
|
/*
|
||||||
* The following expressions place the 16-bit Real-Mode code and
|
* The following expressions place the 16-bit Real-Mode code and
|
||||||
* Reset Vector at the end of the Flash ROM
|
* Reset Vector at the end of the Flash ROM
|
||||||
|
|
|
@ -228,7 +228,11 @@ ifeq ($(CONFIG_SYS_SOC),"at91")
|
||||||
ALL-y += $(obj)/boot.bin
|
ALL-y += $(obj)/boot.bin
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef CONFIG_TPL_BUILD
|
||||||
|
ALL-$(CONFIG_TPL_X86_16BIT_INIT) += $(obj)/u-boot-x86-16bit-tpl.bin
|
||||||
|
else
|
||||||
ALL-$(CONFIG_SPL_X86_16BIT_INIT) += $(obj)/u-boot-x86-16bit-spl.bin
|
ALL-$(CONFIG_SPL_X86_16BIT_INIT) += $(obj)/u-boot-x86-16bit-spl.bin
|
||||||
|
endif
|
||||||
|
|
||||||
ALL-$(CONFIG_ARCH_ZYNQ) += $(obj)/boot.bin
|
ALL-$(CONFIG_ARCH_ZYNQ) += $(obj)/boot.bin
|
||||||
ALL-$(CONFIG_ARCH_ZYNQMP) += $(obj)/boot.bin
|
ALL-$(CONFIG_ARCH_ZYNQMP) += $(obj)/boot.bin
|
||||||
|
@ -328,7 +332,7 @@ quiet_cmd_objcopy = OBJCOPY $@
|
||||||
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
|
cmd_objcopy = $(OBJCOPY) $(OBJCOPYFLAGS) $(OBJCOPYFLAGS_$(@F)) $< $@
|
||||||
|
|
||||||
OBJCOPYFLAGS_$(SPL_BIN)-nodtb.bin = $(SPL_OBJCFLAGS) -O binary \
|
OBJCOPYFLAGS_$(SPL_BIN)-nodtb.bin = $(SPL_OBJCFLAGS) -O binary \
|
||||||
$(if $(CONFIG_SPL_X86_16BIT_INIT),-R .start16 -R .resetvec)
|
$(if $(CONFIG_$(SPL_TPL_)X86_16BIT_INIT),-R .start16 -R .resetvec)
|
||||||
|
|
||||||
$(obj)/$(SPL_BIN)-nodtb.bin: $(obj)/$(SPL_BIN) FORCE
|
$(obj)/$(SPL_BIN)-nodtb.bin: $(obj)/$(SPL_BIN) FORCE
|
||||||
$(call if_changed,objcopy)
|
$(call if_changed,objcopy)
|
||||||
|
@ -337,6 +341,10 @@ OBJCOPYFLAGS_u-boot-x86-16bit-spl.bin := -O binary -j .start16 -j .resetvec
|
||||||
$(obj)/u-boot-x86-16bit-spl.bin: $(obj)/u-boot-spl FORCE
|
$(obj)/u-boot-x86-16bit-spl.bin: $(obj)/u-boot-spl FORCE
|
||||||
$(call if_changed,objcopy)
|
$(call if_changed,objcopy)
|
||||||
|
|
||||||
|
OBJCOPYFLAGS_u-boot-x86-16bit-tpl.bin := -O binary -j .start16 -j .resetvec
|
||||||
|
$(obj)/u-boot-x86-16bit-tpl.bin: $(obj)/u-boot-tpl FORCE
|
||||||
|
$(call if_changed,objcopy)
|
||||||
|
|
||||||
LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
|
LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
|
||||||
|
|
||||||
# Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
|
# Avoid 'Not enough room for program headers' error on binutils 2.28 onwards.
|
||||||
|
|
Loading…
Add table
Reference in a new issue