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>
This commit is contained in:
		 Sven Eckelmann
					Sven Eckelmann
				
			
				
					committed by
					
						 Mathias Kresin
						Mathias Kresin
					
				
			
			
				
	
			
			
			 Mathias Kresin
						Mathias Kresin
					
				
			
						parent
						
							dbdc26ba33
						
					
				
				
					commit
					1b773a46c2
				
			| @@ -118,6 +118,7 @@ define Build/fit | |||||||
| 		-D $(DEVICE_NAME) -o $@.its -k $@ \ | 		-D $(DEVICE_NAME) -o $@.its -k $@ \ | ||||||
| 		$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ | 		$(if $(word 2,$(1)),-d $(word 2,$(1))) -C $(word 1,$(1)) \ | ||||||
| 		-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \ | 		-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) | 		-A $(LINUX_KARCH) -v $(LINUX_VERSION) | ||||||
| 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new | 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $@.its $@.new | ||||||
| 	@mv $@.new $@ | 	@mv $@.new $@ | ||||||
|   | |||||||
| @@ -140,6 +140,7 @@ endef | |||||||
| define Image/BuildKernel/MkFIT | define Image/BuildKernel/MkFIT | ||||||
| 	$(TOPDIR)/scripts/mkits.sh \ | 	$(TOPDIR)/scripts/mkits.sh \ | ||||||
| 		-D $(1) -o $(KDIR)/fit-$(1).its -k $(2) $(if $(3),-d $(3)) -C $(4) -a $(5) -e $(6) \ | 		-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) | 		-A $(LINUX_KARCH) -v $(LINUX_VERSION) | ||||||
| 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb | 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb | ||||||
| endef | endef | ||||||
| @@ -347,6 +348,7 @@ define Device/Init | |||||||
|   FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS) |   FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS) | ||||||
|  |  | ||||||
|   DEVICE_DTS := |   DEVICE_DTS := | ||||||
|  |   DEVICE_DTS_CONFIG := | ||||||
|   DEVICE_DTS_DIR := |   DEVICE_DTS_DIR := | ||||||
|  |  | ||||||
|   BOARD_NAME := |   BOARD_NAME := | ||||||
| @@ -359,8 +361,8 @@ endef | |||||||
|  |  | ||||||
| DEFAULT_DEVICE_VARS := \ | DEFAULT_DEVICE_VARS := \ | ||||||
|   DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \ |   DEVICE_NAME KERNEL KERNEL_INITRAMFS KERNEL_SIZE KERNEL_INITRAMFS_IMAGE \ | ||||||
|   KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \ |   KERNEL_LOADADDR DEVICE_DTS DEVICE_DTS_CONFIG DEVICE_DTS_DIR BOARD_NAME \ | ||||||
|   UBOOTENV_IN_UBI KERNEL_IN_UBI \ |   CMDLINE UBOOTENV_IN_UBI KERNEL_IN_UBI \ | ||||||
|   BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \ |   BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \ | ||||||
|   UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \ |   UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS \ | ||||||
|   SUPPORTED_DEVICES IMAGE_METADATA |   SUPPORTED_DEVICES IMAGE_METADATA | ||||||
|   | |||||||
| @@ -19,6 +19,7 @@ usage() { | |||||||
| 		"-v version -k kernel [-D name -d dtb] -o its_file" | 		"-v version -k kernel [-D name -d dtb] -o its_file" | ||||||
| 	echo -e "\t-A ==> set architecture to 'arch'" | 	echo -e "\t-A ==> set architecture to 'arch'" | ||||||
| 	echo -e "\t-C ==> set compression type 'comp'" | 	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-a ==> set load address to 'addr' (hex)" | ||||||
| 	echo -e "\t-e ==> set entry point to 'entry' (hex)" | 	echo -e "\t-e ==> set entry point to 'entry' (hex)" | ||||||
| 	echo -e "\t-v ==> set kernel version to 'version'" | 	echo -e "\t-v ==> set kernel version to 'version'" | ||||||
| @@ -29,11 +30,12 @@ usage() { | |||||||
| 	exit 1 | 	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 | do | ||||||
| 	case $OPTION in | 	case $OPTION in | ||||||
| 		A ) ARCH=$OPTARG;; | 		A ) ARCH=$OPTARG;; | ||||||
| 		a ) LOAD_ADDR=$OPTARG;; | 		a ) LOAD_ADDR=$OPTARG;; | ||||||
|  | 		c ) CONFIG=$OPTARG;; | ||||||
| 		C ) COMPRESS=$OPTARG;; | 		C ) COMPRESS=$OPTARG;; | ||||||
| 		D ) DEVICE=$OPTARG;; | 		D ) DEVICE=$OPTARG;; | ||||||
| 		d ) DTB=$OPTARG;; | 		d ) DTB=$OPTARG;; | ||||||
| @@ -49,7 +51,7 @@ done | |||||||
| # Make sure user entered all required parameters | # Make sure user entered all required parameters | ||||||
| if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ | if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ | ||||||
| 	[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \ | 	[ -z "${ENTRY_ADDR}" ] || [ -z "${VERSION}" ] || [ -z "${KERNEL}" ] || \ | ||||||
| 	[ -z "${OUTPUT}" ]; then | 	[ -z "${OUTPUT}" ] || [ -z "${CONFIG}" ]; then | ||||||
| 	usage | 	usage | ||||||
| fi | fi | ||||||
|  |  | ||||||
| @@ -104,8 +106,8 @@ ${FDT} | |||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
| 	configurations { | 	configurations { | ||||||
| 		default = \"config@1\"; | 		default = \"${CONFIG}\"; | ||||||
| 		config@1 { | 		${CONFIG} { | ||||||
| 			description = \"OpenWrt\"; | 			description = \"OpenWrt\"; | ||||||
| 			kernel = \"kernel@1\"; | 			kernel = \"kernel@1\"; | ||||||
| 			fdt = \"fdt@1\"; | 			fdt = \"fdt@1\"; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user