summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Eckelmann <sven@narfation.org>2018-03-05 09:51:47 +0100
committerMathias Kresin <dev@kresin.me>2018-03-17 08:09:04 +0100
commit1b773a46c2023ef32ddbbc3835e20b6c216b184e (patch)
tree3b9ec159386fa5d6a6df38fb9aad9df453a428a3
parentdbdc26ba33c19274e54b92e273073117b9e89ccb (diff)
downloadmtk-20170518-1b773a46c2023ef32ddbbc3835e20b6c216b184e.zip
mtk-20170518-1b773a46c2023ef32ddbbc3835e20b6c216b184e.tar.gz
mtk-20170518-1b773a46c2023ef32ddbbc3835e20b6c216b184e.tar.bz2
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 <sven@narfation.org>
-rw-r--r--include/image-commands.mk1
-rw-r--r--include/image.mk6
-rwxr-xr-xscripts/mkits.sh10
3 files changed, 11 insertions, 6 deletions
diff --git a/include/image-commands.mk b/include/image-commands.mk
index 9ec3a84..0f9ac08 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 771f5b2..d358054 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 8857996..5d836be 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\";