mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
Infix defines its own Kconfig options with unprefixed names (IMAGE_*, QEMU_*, TRUSTED_KEYS*) and an INFIX_ prefix. Unprefixed names risk clashing with Buildroot and with other br2-externals/spins that source our tree. Rename all 86 options to a common IX_ prefix, collapsing the existing INFIX_ ones, e.g. INFIX_IMAGE_ID becomes IX_IMAGE_ID. The os-release INFIX_DESC field is a runtime interface, not a Kconfig option, and is kept; the qemu Config.in generator's @ARCH@ symbol is updated to match. Closes #1305 Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
58 lines
2.1 KiB
Makefile
58 lines
2.1 KiB
Makefile
define uboot-add-pubkey
|
|
$(call IXMSG,"Installing trusted key $1")
|
|
$(HOST_DIR)/bin/fdt_add_pubkey \
|
|
-a sha256,rsa$(shell \
|
|
openssl x509 -text -noout -in $1 | \
|
|
grep 'Public-Key: ' | \
|
|
sed -e 's/.*(\(.*\) bit)/\1/') \
|
|
-k $(dir $1) \
|
|
-n $(notdir $(basename $1)) \
|
|
-r image \
|
|
$2
|
|
endef
|
|
|
|
# U-Boot has its own public key format which has to be stored in its
|
|
# control DT. So we collect all of the trusted keys, convert them to
|
|
# the required format, and write the result to infix-key.dtb in the
|
|
# U-Boot build tree. This will then be built in to the final U-Boot
|
|
# image's control DT via the CONFIG_DEVICE_TREE_INCLUDES option (see
|
|
# extras.config).
|
|
#
|
|
# Some platforms, most notably Raspberry Pi, load the device tree
|
|
# from the SPL, effectively overriding the built-in control DT.
|
|
# For that we bundle an overlay that can be included instead.
|
|
define UBOOT_PRE_BUILD_INSTALL_KEY
|
|
$(HOST_DIR)/bin/dtc -a 1024 <(echo '/dts-v1/; / { signature {}; };') \
|
|
>$(@D)/infix-key.dtb
|
|
$(foreach key, \
|
|
$(call qstrip,$(IX_TRUSTED_KEYS_DEVELOPMENT_PATH)) $(call qstrip,$(IX_TRUSTED_KEYS_EXTRA_PATH)),\
|
|
$(call uboot-add-pubkey,$(key),$(@D)/infix-key.dtb))
|
|
$(HOST_DIR)/bin/dtc -I dtb -O dts \
|
|
<$(@D)/infix-key.dtb \
|
|
| sed -e 's:/dts-v[0-9]\+/;::' \
|
|
| tee $(@D)/arch/$(UBOOT_ARCH)/dts/infix-key.dtsi \
|
|
| sed -e '1i\/dts-v1/;\n/plugin/;\n' -e '/^$$/d' -e 's:/ {:\&{/} {:' \
|
|
>$(@D)/arch/$(UBOOT_ARCH)/dts/infix-key.dtso
|
|
|
|
rm $(@D)/infix-key.dtb
|
|
endef
|
|
UBOOT_PRE_BUILD_HOOKS += UBOOT_PRE_BUILD_INSTALL_KEY
|
|
|
|
define UBOOT_PRE_BUILD_INSTALL_ENV
|
|
@$(call IXMSG,"Installing Infix environment extensions")
|
|
cp -f $(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/env.dtsi \
|
|
$(@D)/arch/$(UBOOT_ARCH)/dts/infix-env.dtsi
|
|
cp -af $(BR2_EXTERNAL_INFIX_PATH)/board/common/uboot/scripts \
|
|
$(@D)/arch/$(UBOOT_ARCH)/dts/
|
|
endef
|
|
UBOOT_PRE_BUILD_HOOKS += UBOOT_PRE_BUILD_INSTALL_ENV
|
|
|
|
# Stamp non-release builds so they cannot be mistaken for a release,
|
|
# U-Boot's setlocalversion picks up .scmversion, see issue #919.
|
|
define UBOOT_PRE_BUILD_DEVEL_VERSION
|
|
echo "-DEVEL" >$(@D)/.scmversion
|
|
endef
|
|
ifeq ($(INFIX_RELEASE),)
|
|
UBOOT_PRE_BUILD_HOOKS += UBOOT_PRE_BUILD_DEVEL_VERSION
|
|
endif
|