fdt: Add DEV_TREE_BIN option to specify a device tree binary file
In some cases, an externally-built device tree binary is required to be attached to U-Boot. An example is when using image signing, since in that case the .dtb file must include the public keys. Add a DEV_TREE_BIN option to the Makefile, and update the documentation. Usage is something like: make DEV_TREE_BIN=boot/am335x-boneblack-pubkey.dtb Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
31890ae299
commit
63b4b5bae5
2
Makefile
2
Makefile
|
@ -832,7 +832,7 @@ MKIMAGEFLAGS_u-boot.kwb = -n $(srctree)/$(CONFIG_SYS_KWD_CONFIG:"%"=%) \
|
||||||
MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
|
MKIMAGEFLAGS_u-boot.pbl = -n $(srctree)/$(CONFIG_SYS_FSL_PBL_RCW:"%"=%) \
|
||||||
-R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage
|
-R $(srctree)/$(CONFIG_SYS_FSL_PBL_PBI:"%"=%) -T pblimage
|
||||||
|
|
||||||
u-boot.img u-boot.kwb u-boot.pbl: u-boot.bin FORCE
|
u-boot.img u-boot.kwb u-boot.pbl: u-boot$(if $(CONFIG_OF_SEPARATE),-dtb,).bin FORCE
|
||||||
$(call if_changed,mkimage)
|
$(call if_changed,mkimage)
|
||||||
|
|
||||||
MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
|
MKIMAGEFLAGS_u-boot-dtb.img = $(MKIMAGEFLAGS_u-boot.img)
|
||||||
|
|
|
@ -122,7 +122,8 @@ This should include your CPU or SOC's device tree file, placed in
|
||||||
arch/<arch>/dts, and then make any adjustments required.
|
arch/<arch>/dts, and then make any adjustments required.
|
||||||
|
|
||||||
If CONFIG_OF_EMBED is defined, then it will be picked up and built into
|
If CONFIG_OF_EMBED is defined, then it will be picked up and built into
|
||||||
the U-Boot image (including u-boot.bin).
|
the U-Boot image (including u-boot.bin). This is suitable for debugging
|
||||||
|
and development only and is not recommended for production devices.
|
||||||
|
|
||||||
If CONFIG_OF_SEPARATE is defined, then it will be built and placed in
|
If CONFIG_OF_SEPARATE is defined, then it will be built and placed in
|
||||||
a u-boot.dtb file alongside u-boot.bin. A common approach is then to
|
a u-boot.dtb file alongside u-boot.bin. A common approach is then to
|
||||||
|
@ -130,7 +131,10 @@ join the two:
|
||||||
|
|
||||||
cat u-boot.bin u-boot.dtb >image.bin
|
cat u-boot.bin u-boot.dtb >image.bin
|
||||||
|
|
||||||
and then flash image.bin onto your board.
|
and then flash image.bin onto your board. Note that U-Boot creates
|
||||||
|
u-boot-dtb.bin which does the above step for you also. If you are using
|
||||||
|
CONFIG_SPL_FRAMEWORK, then u-boot.img will be built to include the device
|
||||||
|
tree binary.
|
||||||
|
|
||||||
If CONFIG_OF_HOSTFILE is defined, then it will be read from a file on
|
If CONFIG_OF_HOSTFILE is defined, then it will be read from a file on
|
||||||
startup. This is only useful for sandbox. Use the -d flag to U-Boot to
|
startup. This is only useful for sandbox. Use the -d flag to U-Boot to
|
||||||
|
@ -138,6 +142,14 @@ specify the file to read.
|
||||||
|
|
||||||
You cannot use more than one of these options at the same time.
|
You cannot use more than one of these options at the same time.
|
||||||
|
|
||||||
|
To use a device tree file that you have compiled yourself, pass
|
||||||
|
DEV_TREE_BIN=<filename> to 'make', as in:
|
||||||
|
|
||||||
|
make DEV_TREE_BIN=boot/am335x-boneblack-pubkey.dtb
|
||||||
|
|
||||||
|
Then U-Boot will copy that file to u-boot.dtb, put it in the .img file
|
||||||
|
if used, and u-boot-dtb.bin.
|
||||||
|
|
||||||
If you wish to put the fdt at a different address in memory, you can
|
If you wish to put the fdt at a different address in memory, you can
|
||||||
define the "fdtcontroladdr" environment variable. This is the hex
|
define the "fdtcontroladdr" environment variable. This is the hex
|
||||||
address of the fdt binary blob, and will override either of the options.
|
address of the fdt binary blob, and will override either of the options.
|
||||||
|
|
|
@ -12,7 +12,11 @@ ifeq ($(DEVICE_TREE),)
|
||||||
DEVICE_TREE := unset
|
DEVICE_TREE := unset
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifneq ($(DEV_TREE_BIN),)
|
||||||
|
DTB := $(DEV_TREE_BIN)
|
||||||
|
else
|
||||||
DTB := arch/$(ARCH)/dts/$(DEVICE_TREE).dtb
|
DTB := arch/$(ARCH)/dts/$(DEVICE_TREE).dtb
|
||||||
|
endif
|
||||||
|
|
||||||
$(obj)/dt.dtb: $(DTB) FORCE
|
$(obj)/dt.dtb: $(DTB) FORCE
|
||||||
$(call if_changed,shipped)
|
$(call if_changed,shipped)
|
||||||
|
|
Loading…
Reference in New Issue