spl: dm: Kconfig: split OF_CONTROL and OF_PLATDATA between SPL and TPL
For the RK3368, we want to use OF_PLATDATA in TPL, but full OF_CONTROL in SPL: this requires the introduction of a new family of configuration options to decouple SPL_OF_CONTROL and SPL_OF_PLATDATA from TPL. Consequently, Makefile.spl needs to be adjusted to test for these configuration items through the $(SPL_TPL_) macro instead of hard-coding the SPL variant. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
7c819e7f22
commit
f291ce1298
3
Makefile
3
Makefile
@ -1400,7 +1400,8 @@ u-boot.lds: $(LDSCRIPT) prepare FORCE
|
||||
spl/u-boot-spl.bin: spl/u-boot-spl
|
||||
@:
|
||||
spl/u-boot-spl: tools prepare \
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb)
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),dts/dt.dtb) \
|
||||
$(if $(CONFIG_OF_SEPARATE)$(CONFIG_TPL_OF_PLATDATA),dts/dt.dtb)
|
||||
$(Q)$(MAKE) obj=spl -f $(srctree)/scripts/Makefile.spl all
|
||||
|
||||
spl/sunxi-spl.bin: spl/u-boot-spl
|
||||
|
29
dts/Kconfig
29
dts/Kconfig
@ -32,6 +32,14 @@ config SPL_OF_CONTROL
|
||||
which is not enough to support device tree. Enable this option to
|
||||
allow such boards to be supported by U-Boot SPL.
|
||||
|
||||
config TPL_OF_CONTROL
|
||||
bool "Enable run-time configuration via Device Tree in TPL"
|
||||
depends on TPL && OF_CONTROL
|
||||
help
|
||||
Some boards use device tree in U-Boot but only have 4KB of SRAM
|
||||
which is not enough to support device tree. Enable this option to
|
||||
allow such boards to be supported by U-Boot TPL.
|
||||
|
||||
config OF_LIVE
|
||||
bool "Enable use of a live tree"
|
||||
depends on OF_CONTROL
|
||||
@ -136,4 +144,25 @@ config SPL_OF_PLATDATA
|
||||
declarations for each node. See README.platdata for more
|
||||
information.
|
||||
|
||||
config TPL_OF_PLATDATA
|
||||
bool "Generate platform data for use in TPL"
|
||||
depends on TPL_OF_CONTROL
|
||||
help
|
||||
For very constrained SPL environments the overhead of decoding
|
||||
device tree nodes and converting their contents into platform data
|
||||
is too large. This overhead includes libfdt code as well as the
|
||||
device tree contents itself. The latter is fairly compact, but the
|
||||
former can add 3KB or more to a Thumb 2 Image.
|
||||
|
||||
This option enables generation of platform data from the device
|
||||
tree as C code. This code creates devices using U_BOOT_DEVICE()
|
||||
declarations. The benefit is that it allows driver code to access
|
||||
the platform data directly in C structures, avoidin the libfdt
|
||||
overhead.
|
||||
|
||||
This option works by generating C structure declarations for each
|
||||
compatible string, then adding platform data and U_BOOT_DEVICE
|
||||
declarations for each node. See README.platdata for more
|
||||
information.
|
||||
|
||||
endmenu
|
||||
|
@ -98,7 +98,7 @@ endif
|
||||
|
||||
u-boot-spl-init := $(head-y)
|
||||
u-boot-spl-main := $(libs-y)
|
||||
ifdef CONFIG_SPL_OF_PLATDATA
|
||||
ifdef CONFIG_$(SPL_TPL_)OF_PLATDATA
|
||||
u-boot-spl-platdata := $(obj)/dts/dt-platdata.o
|
||||
endif
|
||||
|
||||
@ -202,7 +202,7 @@ cmd_cat = cat $(filter-out $(PHONY), $^) > $@
|
||||
quiet_cmd_copy = COPY $@
|
||||
cmd_copy = cp $< $@
|
||||
|
||||
ifeq ($(CONFIG_SPL_OF_CONTROL)$(CONFIG_OF_SEPARATE)$(CONFIG_SPL_OF_PLATDATA),yy)
|
||||
ifeq ($(CONFIG_$(SPL_TPL_)OF_CONTROL)$(CONFIG_OF_SEPARATE)$(CONFIG_$(SPL_TPL_)OF_PLATDATA),yy)
|
||||
$(obj)/$(SPL_BIN)-dtb.bin: $(obj)/$(SPL_BIN)-nodtb.bin \
|
||||
$(if $(CONFIG_SPL_SEPARATE_BSS),,$(obj)/$(SPL_BIN)-pad.bin) \
|
||||
$(obj)/$(SPL_BIN).dtb FORCE
|
||||
|
Loading…
Reference in New Issue
Block a user