u-boot/scripts
Rasmus Villemoes a77f468099 introduce CONFIG_DEVICE_TREE_INCLUDES
The build system already automatically looks for and includes an
in-tree *-u-boot.dtsi when building the control .dtb. However, there
are some things that are awkward to maintain in such an in-tree file,
most notably the metadata associated to public keys used for verified
boot.

The only "official" API to get that metadata into the .dtb is via
mkimage, as a side effect of building an actual signed image. But
there are multiple problems with that. First of all, the final U-Boot
(be it U-Boot proper or an SPL) image is built based on a binary
image, the .dtb, and possibly some other binary artifacts. So
modifying the .dtb after the build requires the meta-buildsystem
(Yocto, buildroot, whatnot) to know about and repeat some of the steps
that are already known to and handled by U-Boot's build system,
resulting in needless duplication of code. It's also somewhat annoying
and inconsistent to have a .dtb file in the build folder which is not
generated by the command listed in the corresponding .cmd file (that
of course applies to any generated file).

So the contents of the /signature node really needs to be baked into
the .dtb file when it is first created, which means providing the
relevant data in the form of a .dtsi file. One could in theory put
that data into the *-u-boot.dtsi file, but it's more convenient to be
able to provide it externally: For example, when developing for a
customer, it's common to use a set of dummy keys for development,
while the consultants do not (and should not) have access to the
actual keys used in production. For such a setup, it's easier if the
keys used are chosen via the meta-buildsystem and the path(s) patched
in during the configure step. And of course, nothing prevents anybody
from having DEVICE_TREE_INCLUDES point at files maintained in git, or
for that matter from including the public key metadata in the
*-u-boot.dtsi directly and ignore this feature.

There are other uses for this, e.g. in combination with ENV_IMPORT_FDT
it can be used for providing the contents of the /config/environment
node, so I don't want to tie this exclusively to use for verified
boot.

Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Fix doc formatting error (make htmldocs)
Signed-off-by: Simon Glass <sjg@chromium.org>
2022-01-25 12:35:57 -07:00
..
basic WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
coccinelle scripts: ensure the cocci script for miiphy_register does not leak the MDIO bus 2021-09-28 18:50:57 +03:00
dtc doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
kconfig WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
.gitignore docproc: Remove 2018-08-03 19:53:54 -04:00
bin2c.c scripts: import bin2c.c from Linux 4.10-rc6 2017-02-08 15:56:19 -05:00
binutils-version.sh scripts: fix binutils-version.sh for 'as' without a package. 2015-01-08 11:00:45 -05:00
build-cb.sh x86: coreboot: Add a sample script to build a qemu image 2021-12-26 23:33:28 +01:00
build-efi.sh efi: Add a script to build an image for testing on UEFI 2021-11-07 18:36:55 +01:00
build-whitelist.sh sunxi: Fix CONFIG_SUNXI_GMAC references 2017-09-01 20:48:27 +05:30
build_OID_registry lib: add oid registry utility 2019-12-06 16:44:20 -05:00
check-config.sh scripts/check-config.sh: fix to be compatible with BSD sed 2021-02-24 16:51:48 -05:00
check-of.sh fdt: Makefile: Ensure that OF_BOARD is used when needed 2021-12-23 11:19:39 -05:00
checkpatch.pl checkpatch: report ERROR only on disabling of fdt and initrd relocation 2022-01-14 13:16:11 -05:00
checkstack.pl avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
clang-version.sh kconfig / kbuild: Re-sync with Linux 4.20 2021-07-14 16:57:35 -04:00
cleanpatch Makefile: Move some scripts imported from Linux 2013-12-13 09:18:45 -05:00
coccicheck Makefile: add coccicheck target 2017-11-20 20:18:38 -05:00
config_whitelist.txt configs: Resync with savedefconfig 2022-01-24 17:36:30 -05:00
const_structs.checkpatch checkpatch: update from Linux v4.13-rc6 2017-09-14 21:33:00 -04:00
coreboot.sed SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
decodecode scripts: add decodecode from Linux 2018-05-23 22:06:41 -04:00
documentation-file-ref-check scripts: add documentation-file-ref-check 2020-04-17 12:32:36 -04:00
dtc-version.sh Makefile: Only build dtc if needed 2021-10-19 11:23:07 -04:00
env2string.awk env: Avoid using GNU features in awk 2021-11-28 16:51:51 -07:00
gcc-stack-usage.sh SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gcc-version.sh kconfig / kbuild: Re-sync with Linux 4.20 2021-07-14 16:57:35 -04:00
gen_ll_addressable_symbols.sh build: remove the variable NM in gen_ll_addressable_symbols.sh 2021-07-28 20:46:34 -04:00
get_default_envs.sh scripts/get_default_envs.sh: Update for thin archive support 2021-07-14 16:57:35 -04:00
get_maintainer.pl get_maintainer.pl: update from Linux kernel v5.13-rc6 2021-07-14 16:57:35 -04:00
Kbuild.include Revert "kbuild: remove unused dtc-version.sh script" 2021-10-19 11:23:07 -04:00
Kconfig.include kconfig: Add scripts/Kconfig.include from v4.19 2020-07-01 10:11:03 -04:00
kernel-doc doc: update Kernel documentation build system 2021-01-27 12:52:57 +01:00
ld-version.sh scripts/ld-version.sh: regular expression compile fails 2017-11-20 20:18:37 -05:00
Lindent scripts/Lindent: import from Linux 3.16 2014-08-21 12:01:29 -04:00
mailmapper scripts/mailmapper: enable running with Python 3 2021-09-28 18:50:55 +03:00
Makefile Makefile: Only build dtc if needed 2021-10-19 11:23:07 -04:00
Makefile.autoconf scripts: remove CONFIG_IS_ENABLED and CONFIG_VAL in generated u_boot.cfg 2021-12-01 13:33:45 -05:00
Makefile.build kconfig / kbuild: Re-sync with Linux 4.20 2021-07-14 16:57:35 -04:00
Makefile.clean kconfig / kbuild: Re-sync with Linux 4.19 2020-04-10 11:18:32 -04:00
Makefile.extrawarn kconfig / kbuild: Re-sync with Linux 4.20 2021-07-14 16:57:35 -04:00
Makefile.host kbuild: cherry-pick kbuild changes from Linux 2020-04-24 16:40:09 -04:00
Makefile.lib introduce CONFIG_DEVICE_TREE_INCLUDES 2022-01-25 12:35:57 -07:00
Makefile.spl Create a new boot/ directory 2021-11-11 19:01:56 -05:00
Makefile.uncmd_spl dm: gpio: Allow control of GPIO uclass in SPL 2019-12-15 08:52:29 +08:00
mkmakefile kconfig / kbuild: Re-sync with Linux 4.20 2021-07-14 16:57:35 -04:00
objdiff scripts: objdiff: Ignore debug info when comparing 2017-08-26 14:56:14 -04:00
of_allowlist.txt fdt: Makefile: Ensure that OF_BOARD is used when needed 2021-12-23 11:19:39 -05:00
pylint.base Makefile: Add a pylint checker to the build 2022-01-24 17:36:15 -05:00
setlocalversion scripts/setlocalversion: sync with linux 5.8 2020-08-27 15:55:18 -04:00
show-gnu-make SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
spdxcheck.py scripts/checkpatch.pl: Resync with v5.13 2021-09-01 19:25:37 -04:00
spelling.txt scripts: update spelling.txt from upstream Linux 2021-11-20 10:53:00 +01:00