build: move mkits.sh script to more common place
Signed-off-by: Luka Perkov <luka@openwrt.org> SVN-Revision: 38430
This commit is contained in:
		| @@ -87,6 +87,13 @@ define Image/BuildKernel/MkuImageARM | ||||
| 		-n 'ARM OpenWrt Linux-$(LINUX_VERSION)' -d $(2) $(3) | ||||
| endef | ||||
|  | ||||
| define Image/BuildKernel/MkFIT | ||||
| 	$(TOPDIR)/scripts/mkits.sh \ | ||||
| 		-D $(1) -o $(KDIR)/fit-$(1).its -k $(2) -d $(3) -C $(4) -a $(5) -e $(6) \ | ||||
| 		-A $(ARCH) -v $(LINUX_VERSION) | ||||
| 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/fit-$(1).its $(KDIR)/fit-$(1)$(7).itb | ||||
| endef | ||||
|  | ||||
| define Image/mkfs/jffs2/sub | ||||
| 		# FIXME: removing this line will cause strange behaviour in the foreach loop below | ||||
| 		$(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) --pad -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/' | ||||
|   | ||||
							
								
								
									
										22
									
								
								target/linux/imx6/files-3.10/scripts/mkits.sh → scripts/mkits.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							
							
						
						
									
										22
									
								
								target/linux/imx6/files-3.10/scripts/mkits.sh → scripts/mkits.sh
									
									
									
									
									
										
										
										Normal file → Executable file
									
								
							| @@ -16,24 +16,26 @@ | ||||
| 
 | ||||
| usage() { | ||||
| 	echo "Usage: `basename $0` -A arch -C comp -a addr -e entry" \ | ||||
| 		"-v version -k kernel [-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-C ==> set compression type 'comp'" | ||||
| 	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'" | ||||
| 	echo -e "\t-k ==> include kernel image 'kernel'" | ||||
| 	echo -e "\t-D ==> human friendly Device Tree Blob 'name'" | ||||
| 	echo -e "\t-d ==> include Device Tree Blob 'dtb'" | ||||
| 	echo -e "\t-o ==> create output file 'its_file'" | ||||
| 	exit 1 | ||||
| } | ||||
| 
 | ||||
| while getopts ":A:C:a:d:e:k:o:v:" OPTION | ||||
| while getopts ":A:a:C:D:d:e:k:o:v:" OPTION | ||||
| do | ||||
| 	case $OPTION in | ||||
| 		A ) ARCH=$OPTARG;; | ||||
| 		C ) COMPRESS=$OPTARG;; | ||||
| 		a ) LOAD_ADDR=$OPTARG;; | ||||
| 		C ) COMPRESS=$OPTARG;; | ||||
| 		D ) DEVICE=$OPTARG;; | ||||
| 		d ) DTB=$OPTARG;; | ||||
| 		e ) ENTRY_ADDR=$OPTARG;; | ||||
| 		k ) KERNEL=$OPTARG;; | ||||
| @@ -51,16 +53,18 @@ if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ | ||||
| 	usage | ||||
| fi | ||||
| 
 | ||||
| ARCH_UPPER=`echo $ARCH | tr '[:lower:]' '[:upper:]'` | ||||
| 
 | ||||
| # Create a default, fully populated DTS file | ||||
| DATA="/dts-v1/; | ||||
| 
 | ||||
| / { | ||||
| 	description = \"Linux kernel ${VERSION}\"; | ||||
| 	description = \"${ARCH_UPPER} OpenWrt FIT (Flattened Image Tree)\"; | ||||
| 	#address-cells = <1>; | ||||
| 
 | ||||
| 	images { | ||||
| 		kernel@1 { | ||||
| 			description = \"Linux Kernel ${VERSION}\"; | ||||
| 			description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\"; | ||||
| 			data = /incbin/(\"${KERNEL}\"); | ||||
| 			type = \"kernel\"; | ||||
| 			arch = \"${ARCH}\"; | ||||
| @@ -76,8 +80,8 @@ DATA="/dts-v1/; | ||||
| 			}; | ||||
| 		}; | ||||
| 
 | ||||
| 		fdt@1 { /* start fdt */ | ||||
| 			description = \"Flattened Device Tree blob\"; | ||||
| 		fdt@1 { | ||||
| 			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree blob\"; | ||||
| 			data = /incbin/(\"${DTB}\"); | ||||
| 			type = \"flat_dt\"; | ||||
| 			arch = \"${ARCH}\"; | ||||
| @@ -88,13 +92,13 @@ DATA="/dts-v1/; | ||||
| 			hash@2 { | ||||
| 				algo = \"sha1\"; | ||||
| 			}; | ||||
| 		}; /* end fdt */ | ||||
| 		}; | ||||
| 	}; | ||||
| 
 | ||||
| 	configurations { | ||||
| 		default = \"config@1\"; | ||||
| 		config@1 { | ||||
| 			description = \"Default Linux kernel\"; | ||||
| 			description = \"OpenWrt\"; | ||||
| 			kernel = \"kernel@1\"; | ||||
| 			fdt = \"fdt@1\"; | ||||
| 		}; | ||||
| @@ -11,22 +11,25 @@ BOARDS := \ | ||||
| 	imx6dl-wandboard \ | ||||
| 	imx6q-gw5400-a | ||||
|  | ||||
| # board-specific Flattened Image Tree | ||||
| define mkfit | ||||
| 	/bin/sh $(LINUX_DIR)/scripts/mkits.sh -A arm -C none -a $(2) -e $(2) \ | ||||
| 		-v 'OpenWrt Linux-$(LINUX_VERSION)' \ | ||||
| 		-d $(LINUX_DIR)/arch/arm/boot/dts/$(1).dtb -k $(LINUX_DIR)/arch/arm/boot/zImage \ | ||||
| 		-o $(KDIR)/$(1)-uImage.its | ||||
| 	PATH=$(LINUX_DIR)/scripts/dtc:$(PATH) mkimage -f $(KDIR)/$(1)-uImage.its $(BIN_DIR)/openwrt-$(1)-uImage.itb | ||||
| endef | ||||
|  | ||||
| # emit FIT images, DTB's and generic zImage | ||||
| define Image/BuildKernel | ||||
| 	$(foreach board,$(BOARDS), | ||||
| 		$(call mkfit,$(board),0x10008000) | ||||
| 		cp $(LINUX_DIR)/arch/arm/boot/dts/$(board).dtb $(BIN_DIR) | ||||
| 		cp $(LINUX_DIR)/arch/arm/boot/dts/$(board).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb | ||||
|  | ||||
| 		$(call Image/BuildKernel/MkFIT,$(board),$(KDIR)/zImage,$(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb,none,0x10008000,0x10008000) | ||||
| 		cp $(KDIR)/fit-$(board).itb $(BIN_DIR)/$(IMG_PREFIX)-$(board)-uImage.itb | ||||
|  | ||||
|  ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) | ||||
| 		$(call Image/BuildKernel/MkFIT,$(board),$(KDIR)/zImage-initramfs,$(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb,none,0x10008000,0x10008000,-initramfs) | ||||
| 		cp $(KDIR)/fit-$(board)-initramfs.itb $(BIN_DIR)/$(IMG_PREFIX)-$(board)-uImage-initramfs.itb | ||||
|  endif | ||||
| 	) | ||||
| 	cp $(KDIR)/zImage $(BIN_DIR)/openwrt-$(BOARD)-zImage | ||||
|  | ||||
| 	cp $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage | ||||
|  | ||||
|  ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) | ||||
| 	cp $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs | ||||
|  endif | ||||
| endef | ||||
|  | ||||
| # board-specific sysupgrade image | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Luka Perkov
					Luka Perkov