mirror of
https://xff.cz/git/u-boot/
synced 2025-09-26 13:01:17 +02:00
spl: allow a separate TEXT_BASE, LDSCRIPT and MAX_SIZE for TPL
For the bringup of the RK3368, we need to support TPL and SPL running from different addresses... which requires both stages to use a distinct TEXT_BASE. This commit adds support for having a separate LDSCRIPT for TPL (which is expected to make use of the TPL_MAX_SIZE define) and for having a the option of defining TPL_TEXT_BASE and having the TPL stage linked against this address. Note that the handling of the TEXT_BASE is designed to not interfere with the previous assumption that SPL_TEXT_BASE should be used for TPL as well, unless TPL_TEXT_BASE is defined. For this reason, the test in Makefile.spl uses the following (seemingly redundant checks): 1. looks for $(SPL_TPL_)TEXT_BASE 2. looks for SPL_TEXT_BASE (even when building in TPL) Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -103,9 +103,9 @@ u-boot-spl-platdata := $(obj)/dts/dt-platdata.o
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Linker Script
|
# Linker Script
|
||||||
ifdef CONFIG_SPL_LDSCRIPT
|
ifdef CONFIG_$(SPL_TPL_)LDSCRIPT
|
||||||
# need to strip off double quotes
|
# need to strip off double quotes
|
||||||
LDSCRIPT := $(addprefix $(srctree)/,$(CONFIG_SPL_LDSCRIPT:"%"=%))
|
LDSCRIPT := $(addprefix $(srctree)/,$(CONFIG_$(SPL_TPL_)LDSCRIPT:"%"=%))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(wildcard $(LDSCRIPT)),)
|
ifeq ($(wildcard $(LDSCRIPT)),)
|
||||||
@@ -293,9 +293,15 @@ 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.
|
||||||
LDFLAGS_$(SPL_BIN) += $(call ld-option, --no-dynamic-linker)
|
LDFLAGS_$(SPL_BIN) += $(call ld-option, --no-dynamic-linker)
|
||||||
|
|
||||||
|
# First try the best-match (i.e. SPL_TEXT_BASE for SPL, TPL_TEXT_BASE for TPL)
|
||||||
|
ifneq ($(CONFIG_$(SPL_TPL_)TEXT_BASE),)
|
||||||
|
LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_$(SPL_TPL_)TEXT_BASE)
|
||||||
|
else
|
||||||
|
# And then fall back to just testing for SPL_TEXT_BASE, even if in TPL mode
|
||||||
ifneq ($(CONFIG_SPL_TEXT_BASE),)
|
ifneq ($(CONFIG_SPL_TEXT_BASE),)
|
||||||
LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE)
|
LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE)
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
MKIMAGEFLAGS_$(SPL_BIN).sfp = -T socfpgaimage
|
MKIMAGEFLAGS_$(SPL_BIN).sfp = -T socfpgaimage
|
||||||
$(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE
|
$(obj)/$(SPL_BIN).sfp: $(obj)/$(SPL_BIN).bin FORCE
|
||||||
|
@@ -4910,8 +4910,11 @@ CONFIG_TI_KSNAV
|
|||||||
CONFIG_TI_SPI_MMAP
|
CONFIG_TI_SPI_MMAP
|
||||||
CONFIG_TMU_TIMER
|
CONFIG_TMU_TIMER
|
||||||
CONFIG_TPL_DRIVERS_MISC_SUPPORT
|
CONFIG_TPL_DRIVERS_MISC_SUPPORT
|
||||||
|
CONFIG_TPL_LDSCRIPT
|
||||||
|
CONFIG_TPL_MAX_SIZE
|
||||||
CONFIG_TPL_PAD_TO
|
CONFIG_TPL_PAD_TO
|
||||||
CONFIG_TPL_STACK
|
CONFIG_TPL_STACK
|
||||||
|
CONFIG_TPL_TEXT_BASE
|
||||||
CONFIG_TPM_TIS_BASE_ADDRESS
|
CONFIG_TPM_TIS_BASE_ADDRESS
|
||||||
CONFIG_TPS6586X_POWER
|
CONFIG_TPS6586X_POWER
|
||||||
CONFIG_TQM834X
|
CONFIG_TQM834X
|
||||||
|
Reference in New Issue
Block a user