mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-30 01:52:51 +00:00 
			
		
		
		
	 d28a0c3d9d
			
		
	
	d28a0c3d9d
	
	
	
		
			
			* update mkits.sh to work with 2021.04 uboot * add mediatek pstore Signed-off-by: John Crispin <john@phrozen.org>
		
			
				
	
	
		
			267 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			267 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 43f832c25bb9dee1a817370ab11531e81348f177 Mon Sep 17 00:00:00 2001
 | |
| From: John Crispin <john@phrozen.org>
 | |
| Date: Sun, 9 May 2021 12:23:00 +0200
 | |
| Subject: [PATCH 42/43] backport: mkits.sh
 | |
| 
 | |
| 969083634481c3ab5fb80509f385ef10ab45b55f
 | |
| e991c1b8a2385397fc1e657ed73878938997d951
 | |
| 9f714398e060c6338fbfad44cdbfa8c940dbb84b
 | |
| 
 | |
| Signed-off-by: John Crispin <john@phrozen.org>
 | |
| ---
 | |
|  include/image-commands.mk           |   2 +-
 | |
|  include/image.mk                    |   2 +-
 | |
|  scripts/mkits.sh                    | 101 +++++++++++++++++++++++++---
 | |
|  target/linux/ipq40xx/image/Makefile |   1 +
 | |
|  target/linux/ipq806x/image/Makefile |   1 +
 | |
|  5 files changed, 95 insertions(+), 12 deletions(-)
 | |
| 
 | |
| diff --git a/include/image-commands.mk b/include/image-commands.mk
 | |
| index bde6e030bc..f97d4363d1 100644
 | |
| --- a/include/image-commands.mk
 | |
| +++ b/include/image-commands.mk
 | |
| @@ -204,7 +204,7 @@ define Build/fit
 | |
|  		$(if $(word 3,$(1)),-r $(IMAGE_ROOTFS) -f $(subst _,$(comma),$(DEVICE_NAME))) \
 | |
|  		-a $(KERNEL_LOADADDR) -e $(if $(KERNEL_ENTRY),$(KERNEL_ENTRY),$(KERNEL_LOADADDR)) \
 | |
|  		$(if $(DEVICE_FDT_NUM),-n $(DEVICE_FDT_NUM)) \
 | |
| -		-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config@1") \
 | |
| +		-c $(if $(DEVICE_DTS_CONFIG),$(DEVICE_DTS_CONFIG),"config-1") \
 | |
|  		-A $(LINUX_KARCH) -v $(LINUX_VERSION)
 | |
|  	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage $(if $(word 3,$(1)),-E -B 0x1000 -p 0x1000) -f $@.its $@.new
 | |
|  	@mv $@.new $@
 | |
| diff --git a/include/image.mk b/include/image.mk
 | |
| index fc46012e87..7a48b789af 100644
 | |
| --- a/include/image.mk
 | |
| +++ b/include/image.mk
 | |
| @@ -139,7 +139,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") \
 | |
| +		-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
 | |
| diff --git a/scripts/mkits.sh b/scripts/mkits.sh
 | |
| index 3d68fdacbc..7533baf799 100755
 | |
| --- a/scripts/mkits.sh
 | |
| +++ b/scripts/mkits.sh
 | |
| @@ -24,22 +24,29 @@ usage() {
 | |
|  	printf "\n\t-a ==> set load address to 'addr' (hex)"
 | |
|  	printf "\n\t-e ==> set entry point to 'entry' (hex)"
 | |
|  	printf "\n\t-f ==> set device tree compatible string"
 | |
| +	printf "\n\t-i ==> include initrd Blob 'initrd'"
 | |
|  	printf "\n\t-v ==> set kernel version to 'version'"
 | |
|  	printf "\n\t-k ==> include kernel image 'kernel'"
 | |
|  	printf "\n\t-D ==> human friendly Device Tree Blob 'name'"
 | |
|  	printf "\n\t-n ==> fdt unit-address 'address'"
 | |
|  	printf "\n\t-d ==> include Device Tree Blob 'dtb'"
 | |
| -	printf "\n\t-r ==> include RootFS blob"
 | |
| +	printf "\n\t-r ==> include RootFS blob 'rootfs'"
 | |
|  	printf "\n\t-H ==> specify hash algo instead of SHA1"
 | |
| -	printf "\n\t-o ==> create output file 'its_file'\n"
 | |
| +	printf "\n\t-o ==> create output file 'its_file'"
 | |
| +	printf "\n\t-O ==> create config with dt overlay 'name:dtb'"
 | |
| +	printf "\n\t\t(can be specified more than once)\n"
 | |
|  	exit 1
 | |
|  }
 | |
|  
 | |
|  FDTNUM=1
 | |
|  ROOTFSNUM=1
 | |
| +INITRDNUM=1
 | |
|  HASH=sha1
 | |
| +LOADABLES=
 | |
| +DTOVERLAY=
 | |
| +DTADDR=
 | |
|  
 | |
| -while getopts ":A:a:c:C:D:d:e:f:k:n:o:v:r:S" OPTION
 | |
| +while getopts ":A:a:c:C:D:d:e:f:i:k:n:o:O:v:r:S" OPTION
 | |
|  do
 | |
|  	case $OPTION in
 | |
|  		A ) ARCH=$OPTARG;;
 | |
| @@ -50,9 +57,11 @@ do
 | |
|  		d ) DTB=$OPTARG;;
 | |
|  		e ) ENTRY_ADDR=$OPTARG;;
 | |
|  		f ) COMPATIBLE=$OPTARG;;
 | |
| +		i ) INITRD=$OPTARG;;
 | |
|  		k ) KERNEL=$OPTARG;;
 | |
|  		n ) FDTNUM=$OPTARG;;
 | |
|  		o ) OUTPUT=$OPTARG;;
 | |
| +		O ) DTOVERLAY="$DTOVERLAY ${OPTARG}";;
 | |
|  		r ) ROOTFS=$OPTARG;;
 | |
|  		S ) HASH=$OPTARG;;
 | |
|  		v ) VERSION=$OPTARG;;
 | |
| @@ -74,14 +83,20 @@ if [ -n "${COMPATIBLE}" ]; then
 | |
|  	COMPATIBLE_PROP="compatible = \"${COMPATIBLE}\";"
 | |
|  fi
 | |
|  
 | |
| +[ "$DTOVERLAY" ] && {
 | |
| +	dtbsize=$(wc -c "$DTB" | cut -d' ' -f1)
 | |
| +	DTADDR=$(printf "0x%08x" $(($LOAD_ADDR - $dtbsize)) )
 | |
| +}
 | |
| +
 | |
|  # Conditionally create fdt information
 | |
|  if [ -n "${DTB}" ]; then
 | |
|  	FDT_NODE="
 | |
| -		fdt@$FDTNUM {
 | |
| +		fdt-$FDTNUM {
 | |
|  			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree blob\";
 | |
|  			${COMPATIBLE_PROP}
 | |
|  			data = /incbin/(\"${DTB}\");
 | |
|  			type = \"flat_dt\";
 | |
| +			${DTADDR:+load = <${DTADDR}>;}
 | |
|  			arch = \"${ARCH}\";
 | |
|  			compression = \"none\";
 | |
|  			hash@1 {
 | |
| @@ -92,13 +107,34 @@ if [ -n "${DTB}" ]; then
 | |
|  			};
 | |
|  		};
 | |
|  "
 | |
| -	FDT_PROP="fdt = \"fdt@$FDTNUM\";"
 | |
| +	FDT_PROP="fdt = \"fdt-$FDTNUM\";"
 | |
|  fi
 | |
|  
 | |
| +if [ -n "${INITRD}" ]; then
 | |
| +	INITRD_NODE="
 | |
| +		initrd-$INITRDNUM {
 | |
| +			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} initrd\";
 | |
| +			${COMPATIBLE_PROP}
 | |
| +			data = /incbin/(\"${INITRD}\");
 | |
| +			type = \"ramdisk\";
 | |
| +			arch = \"${ARCH}\";
 | |
| +			os = \"linux\";
 | |
| +			hash@1 {
 | |
| +				algo = \"crc32\";
 | |
| +			};
 | |
| +			hash@2 {
 | |
| +				algo = \"${HASH}\";
 | |
| +			};
 | |
| +		};
 | |
| +"
 | |
| +	INITRD_PROP="ramdisk=\"initrd-${INITRDNUM}\";"
 | |
| +fi
 | |
| +
 | |
| +
 | |
|  if [ -n "${ROOTFS}" ]; then
 | |
|  	dd if="${ROOTFS}" of="${ROOTFS}.pagesync" bs=4096 conv=sync
 | |
|  	ROOTFS_NODE="
 | |
| -		rootfs@$ROOTFSNUM {
 | |
| +		rootfs-$ROOTFSNUM {
 | |
|  			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} rootfs\";
 | |
|  			${COMPATIBLE_PROP}
 | |
|  			data = /incbin/(\"${ROOTFS}.pagesync\");
 | |
| @@ -113,9 +149,50 @@ if [ -n "${ROOTFS}" ]; then
 | |
|  			};
 | |
|  		};
 | |
|  "
 | |
| -	ROOTFS_PROP="loadables = \"rootfs@${ROOTFSNUM}\";"
 | |
| +	LOADABLES="${LOADABLES:+$LOADABLES, }\"rootfs-${ROOTFSNUM}\""
 | |
|  fi
 | |
|  
 | |
| +# add DT overlay blobs
 | |
| +FDTOVERLAY_NODE=""
 | |
| +OVCONFIGS=""
 | |
| +[ "$DTOVERLAY" ] && for overlay in $DTOVERLAY ; do
 | |
| +	overlay_blob=${overlay##*:}
 | |
| +	ovname=${overlay%%:*}
 | |
| +	ovnode="fdt-$ovname"
 | |
| +	ovsize=$(wc -c "$overlay_blob" | cut -d' ' -f1)
 | |
| +	echo "$ovname ($overlay_blob) : $ovsize" >&2
 | |
| +	DTADDR=$(printf "0x%08x" $(($DTADDR - $ovsize)))
 | |
| +	FDTOVERLAY_NODE="$FDTOVERLAY_NODE
 | |
| +
 | |
| +		$ovnode {
 | |
| +			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree overlay $ovname\";
 | |
| +			${COMPATIBLE_PROP}
 | |
| +			data = /incbin/(\"${overlay_blob}\");
 | |
| +			type = \"flat_dt\";
 | |
| +			arch = \"${ARCH}\";
 | |
| +			load = <${DTADDR}>;
 | |
| +			compression = \"none\";
 | |
| +			hash@1 {
 | |
| +				algo = \"crc32\";
 | |
| +			};
 | |
| +			hash@2 {
 | |
| +				algo = \"${HASH}\";
 | |
| +			};
 | |
| +		};
 | |
| +"
 | |
| +	OVCONFIGS="$OVCONFIGS
 | |
| +
 | |
| +		config-$ovname {
 | |
| +			description = \"OpenWrt ${DEVICE} with $ovname\";
 | |
| +			kernel = \"kernel-1\";
 | |
| +			fdt = \"fdt-$FDTNUM\", \"$ovnode\";
 | |
| +			${LOADABLES:+loadables = ${LOADABLES};}
 | |
| +			${COMPATIBLE_PROP}
 | |
| +			${INITRD_PROP}
 | |
| +		};
 | |
| +	"
 | |
| +done
 | |
| +
 | |
|  # Create a default, fully populated DTS file
 | |
|  DATA="/dts-v1/;
 | |
|  
 | |
| @@ -124,7 +201,7 @@ DATA="/dts-v1/;
 | |
|  	#address-cells = <1>;
 | |
|  
 | |
|  	images {
 | |
| -		kernel@1 {
 | |
| +		kernel-1 {
 | |
|  			description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\";
 | |
|  			data = /incbin/(\"${KERNEL}\");
 | |
|  			type = \"kernel\";
 | |
| @@ -140,7 +217,9 @@ DATA="/dts-v1/;
 | |
|  				algo = \"$HASH\";
 | |
|  			};
 | |
|  		};
 | |
| +${INITRD_NODE}
 | |
|  ${FDT_NODE}
 | |
| +${FDTOVERLAY_NODE}
 | |
|  ${ROOTFS_NODE}
 | |
|  	};
 | |
|  
 | |
| @@ -148,11 +227,13 @@ ${ROOTFS_NODE}
 | |
|  		default = \"${CONFIG}\";
 | |
|  		${CONFIG} {
 | |
|  			description = \"OpenWrt ${DEVICE}\";
 | |
| -			kernel = \"kernel@1\";
 | |
| +			kernel = \"kernel-1\";
 | |
|  			${FDT_PROP}
 | |
| -			${ROOTFS_PROP}
 | |
| +			${LOADABLES:+loadables = ${LOADABLES};}
 | |
|  			${COMPATIBLE_PROP}
 | |
| +			${INITRD_PROP}
 | |
|  		};
 | |
| +		${OVCONFIGS}
 | |
|  	};
 | |
|  };"
 | |
|  
 | |
| diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
 | |
| index 2be262936f..a0d6242a28 100644
 | |
| --- a/target/linux/ipq40xx/image/Makefile
 | |
| +++ b/target/linux/ipq40xx/image/Makefile
 | |
| @@ -8,6 +8,7 @@ define Device/Default
 | |
|  	KERNEL_PREFIX := $$(IMAGE_PREFIX)
 | |
|  	KERNEL_LOADADDR := 0x80208000
 | |
|  	DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
 | |
| +	DEVICE_DTS_CONFIG := config@1
 | |
|  	IMAGES := sysupgrade.bin
 | |
|  	IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
 | |
|  	IMAGE/sysupgrade.bin/squashfs :=
 | |
| diff --git a/target/linux/ipq806x/image/Makefile b/target/linux/ipq806x/image/Makefile
 | |
| index bab1da0090..3bc60fa931 100644
 | |
| --- a/target/linux/ipq806x/image/Makefile
 | |
| +++ b/target/linux/ipq806x/image/Makefile
 | |
| @@ -30,6 +30,7 @@ define Device/Default
 | |
|  	KERNEL_PREFIX := $$(IMAGE_PREFIX)
 | |
|  	KERNEL_LOADADDR = 0x42208000
 | |
|  	DEVICE_DTS = $$(SOC)-$(lastword $(subst _, ,$(1)))
 | |
| +	DEVICE_DTS_CONFIG := config@1
 | |
|  	IMAGES := sysupgrade.bin
 | |
|  	IMAGE/sysupgrade.bin = sysupgrade-tar | append-metadata
 | |
|  	IMAGE/sysupgrade.bin/squashfs :=
 | |
| -- 
 | |
| 2.25.1
 | |
| 
 |