mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot for verifying and extracting them. Based on 'images' sections names, corresponding mtd partitions are flashed. For example, in case of NOR-only boards, below mapping is used (section name -> mtd name): hlos* -> 0:HLOS rootfs* -> rootfs And for boards with NAND (kernel inside UBI): ubi* -> rootfs Above mappings come from unmodified QSDK sources and might be wrong for boards running custom or modified QSDK-based firmware. Some of vendors adjust them to meet their modified mtd layout or features like recovery or dual-image support. This adds simple script 'mkits-qsdk-ipq-image.sh' (based on 'mkits.sh') for generating FIT images tree source files, compatible with the QSDK sysupgrade format. Resulting images can be used for initial (factory -> OpenWrt) installation and would work both in CLI and GUI. The script is universal in a way it allows to include as many sections as needed. To make use of it, two generic/basic build recipes for NOR and NAND based boards are also included in 'image-commands.mk': Build/qsdk-ipq-factory-nand Build/qsdk-ipq-factory-nor Example usage for board with UBI in NAND: IMAGE/nand-factory.bin := append-ubi | qsdk-ipq-factory-nand Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| #
 | |
| # Licensed under the terms of the GNU GPL License version 2 or later.
 | |
| # Author: Piotr Dymacz <pepe2k@gmail.com>, based on mkits.sh.
 | |
| #
 | |
| # Qualcomm SDK (QSDK) sysupgrade compatible images for IPQ40xx, IPQ806x
 | |
| # and IPQ807x use FIT format together with 'dumpimage' tool from U-Boot
 | |
| # for verifying and extracting them. Based on 'images' sections names,
 | |
| # corresponding mtd partitions are flashed.
 | |
| # This is a simple script for generating FIT images tree source files,
 | |
| # compatible with the QSDK sysupgrade format. Resulting images can be
 | |
| # used for initial (factory -> OpenWrt) installation and would work
 | |
| # both in CLI and GUI. The script is also universal in a way it allows
 | |
| # to include as many sections as needed.
 | |
| #
 | |
| 
 | |
| usage() {
 | |
| 	echo "Usage: `basename $0` output img0_name img0_file [[img1_name img1_file] ...]"
 | |
| 	exit 1
 | |
| }
 | |
| 
 | |
| # We need at least 3 arguments
 | |
| [ "$#" -lt 3 ] && usage
 | |
| 
 | |
| # Target output file
 | |
| OUTPUT="$1"; shift
 | |
| 
 | |
| # Create a default, fully populated DTS file
 | |
| echo "\
 | |
| /dts-v1/;
 | |
| 
 | |
| / {
 | |
| 	description = \"OpenWrt factory image\";
 | |
| 	#address-cells = <1>;
 | |
| 
 | |
| 	images {" > ${OUTPUT}
 | |
| 
 | |
| while [ -n "$1" -a -n "$2" ]; do
 | |
| 	[ -f "$2" ] || usage
 | |
| 
 | |
| 	name="$1"; shift
 | |
| 	file="$1"; shift
 | |
| 
 | |
| 	echo \
 | |
| "		${name} {
 | |
| 			description = \"${name}\";
 | |
| 			data = /incbin/(\"${file}\");
 | |
| 			type = \"Firmware\";
 | |
| 			arch = \"ARM\";
 | |
| 			compression = \"none\";
 | |
| 			hash@1 {
 | |
| 				algo = \"crc32\";
 | |
| 			};
 | |
| 		};" >> ${OUTPUT}
 | |
| done
 | |
| 
 | |
| echo \
 | |
| "	};
 | |
| };" >> ${OUTPUT}
 |