Skip to content

Commit

Permalink
spl: dm: Kconfig: split OF_CONTROL and OF_PLATDATA between SPL and TPL
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
  • Loading branch information
Philipp Tomsich committed Aug 13, 2017
1 parent 7c819e7 commit f291ce1
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 3 deletions.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
29 changes: 29 additions & 0 deletions dts/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
4 changes: 2 additions & 2 deletions scripts/Makefile.spl
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down

0 comments on commit f291ce1

Please sign in to comment.