From 1b773a46c2023ef32ddbbc3835e20b6c216b184e Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Mon, 5 Mar 2018 09:51:47 +0100 Subject: [PATCH] build: Allow to change the FIT config section name Some devices only boot when a special config is found in the image and completely ignore the default entry during the selection. These devices can now use the variable DEVICE_DTS_CONFIG in their device image definition. Signed-off-by: Sven Eckelmann --- include/image-commands.mk | 1 + include/image.mk | 6 ++++-- scripts/mkits.sh | 10 ++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/image-commands.mk b/include/image-commands.mk index 9ec3a84884..0f9ac0836c 100644 --- a/include/image-commands.mk +++ b/include/image-commands.mk @@ -118,6 +118,7 @@ define Build/fit -D $(DEVICE_NAME) -o $@.its -k $@ \ $(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ -a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ + -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \ -A $(LINUX_KARCH) -v $(LINUX_VERSION) PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new @mv $@.new $@ diff --git a/include/image.mk b/include/image.mk index 771f5b2c76..d358054008 100644 --- a/include/image.mk +++ b/include/image.mk @@ -140,6 +140,7 @@ endef define Image/BuildKernel/MkFIT $(TOPDIR)/scripts/mkits.sh \ -D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \ + -c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \ -A $(LINUX_KARCH) -v $(LINUX_VERSION) PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb endef @@ -347,6 +348,7 @@ define Device/Init FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS) DEVICE_DTS := + DEVICE_DTS_CONFIG := DEVICE_DTS_DIR := BOARD_NAME := @@ -359,8 +361,8 @@ endef DEFAULT_DEVICE_VARS := \ DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \ - KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \ - UBOOTENV_IN_UBI KERNEL_IN_UBI \ + KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME \ + CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI \ BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \ UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \ SUPPORTED_DEVICES IMAGE_METADATA diff --git a/scripts/mkits.sh b/scripts/mkits.sh index 8857996eba..5d836be8e4 100755 --- a/scripts/mkits.sh +++ b/scripts/mkits.sh @@ -19,6 +19,7 @@ usage() { "-v version -k kernel [-D name -d dtb] -o its_file" echo -e "\t-A ==> set architecture to 'arch'" echo -e "\t-C ==> set compression type 'comp'" + echo -e "\t-c ==> set config name 'config'" echo -e "\t-a ==> set load address to 'addr' (hex)" echo -e "\t-e ==> set entry point to 'entry' (hex)" echo -e "\t-v ==> set kernel version to 'version'" @@ -29,11 +30,12 @@ usage() { exit 1 } -while getopts ":A:a:C:D:d:e:k:o:v:" OPTION +while getopts ":A:a:c:C:D:d:e:k:o:v:" OPTION do case $OPTION in A ) ARCH=$OPTARG;; a ) LOAD_ADDR=$OPTARG;; + c ) CONFIG=$OPTARG;; C ) COMPRESS=$OPTARG;; D ) DEVICE=$OPTARG;; d ) DTB=$OPTARG;; @@ -49,7 +51,7 @@ done # Make sure user entered all required parameters if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ [ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \ - [ -z "${OUTPUT}" ]; then + [ -z "${OUTPUT}" ] || [ -z "${CONFIG}" ]; then usage fi @@ -104,8 +106,8 @@ ${FDT} }; configurations { - default = \"config@1\"; - config@1 { + default = \"${CONFIG}\"; + ${CONFIG} { description = \"OpenWrt\"; kernel = \"kernel@1\"; fdt = \"fdt@1\";