diff --git a/include/image-commands.mk b/include/image-commands.mk
index 9ec3a84884ba4b6266ee04e96f310ebd9a4bcce8..0f9ac0836cedb5b6d5ac9b327fba1df65ebc72ae 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 771f5b2c76e2cd176acc5d7f8d9672650795a253..d358054008e31f117c980a3a1a8dfe893d8517c0 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 8857996eba222fce44846242b13e6d66e456f267..5d836be8e43e6db4cec603a66c67d8556ca36bbe 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\";