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) | 		-n 'ARM OpenWrt Linux-$(LINUX_VERSION)' -d $(2) $(3) | ||||||
| endef | 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 | define Image/mkfs/jffs2/sub | ||||||
| 		# FIXME: removing this line will cause strange behaviour in the foreach loop below | 		# 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 '/^.+$$$$/' | 		$(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() { | usage() { | ||||||
| 	echo "Usage: `basename $0` -A arch -C comp -a addr -e entry" \ | 	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-A ==> set architecture to 'arch'" | ||||||
| 	echo -e "\t-C ==> set compression type 'comp'" | 	echo -e "\t-C ==> set compression type 'comp'" | ||||||
| 	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'" | ||||||
| 	echo -e "\t-k ==> include kernel image 'kernel'" | 	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-d ==> include Device Tree Blob 'dtb'" | ||||||
| 	echo -e "\t-o ==> create output file 'its_file'" | 	echo -e "\t-o ==> create output file 'its_file'" | ||||||
| 	exit 1 | 	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 | do | ||||||
| 	case $OPTION in | 	case $OPTION in | ||||||
| 		A ) ARCH=$OPTARG;; | 		A ) ARCH=$OPTARG;; | ||||||
| 		C ) COMPRESS=$OPTARG;; |  | ||||||
| 		a ) LOAD_ADDR=$OPTARG;; | 		a ) LOAD_ADDR=$OPTARG;; | ||||||
|  | 		C ) COMPRESS=$OPTARG;; | ||||||
|  | 		D ) DEVICE=$OPTARG;; | ||||||
| 		d ) DTB=$OPTARG;; | 		d ) DTB=$OPTARG;; | ||||||
| 		e ) ENTRY_ADDR=$OPTARG;; | 		e ) ENTRY_ADDR=$OPTARG;; | ||||||
| 		k ) KERNEL=$OPTARG;; | 		k ) KERNEL=$OPTARG;; | ||||||
| @@ -51,16 +53,18 @@ if [ -z "${ARCH}" ] || [ -z "${COMPRESS}" ] || [ -z "${LOAD_ADDR}" ] || \ | |||||||
| 	usage | 	usage | ||||||
| fi | fi | ||||||
| 
 | 
 | ||||||
|  | ARCH_UPPER=`echo $ARCH | tr '[:lower:]' '[:upper:]'` | ||||||
|  | 
 | ||||||
| # Create a default, fully populated DTS file | # Create a default, fully populated DTS file | ||||||
| DATA="/dts-v1/; | DATA="/dts-v1/; | ||||||
| 
 | 
 | ||||||
| / { | / { | ||||||
| 	description = \"Linux kernel ${VERSION}\"; | 	description = \"${ARCH_UPPER} OpenWrt FIT (Flattened Image Tree)\"; | ||||||
| 	#address-cells = <1>; | 	#address-cells = <1>; | ||||||
| 
 | 
 | ||||||
| 	images { | 	images { | ||||||
| 		kernel@1 { | 		kernel@1 { | ||||||
| 			description = \"Linux Kernel ${VERSION}\"; | 			description = \"${ARCH_UPPER} OpenWrt Linux-${VERSION}\"; | ||||||
| 			data = /incbin/(\"${KERNEL}\"); | 			data = /incbin/(\"${KERNEL}\"); | ||||||
| 			type = \"kernel\"; | 			type = \"kernel\"; | ||||||
| 			arch = \"${ARCH}\"; | 			arch = \"${ARCH}\"; | ||||||
| @@ -76,8 +80,8 @@ DATA="/dts-v1/; | |||||||
| 			}; | 			}; | ||||||
| 		}; | 		}; | ||||||
| 
 | 
 | ||||||
| 		fdt@1 { /* start fdt */ | 		fdt@1 { | ||||||
| 			description = \"Flattened Device Tree blob\"; | 			description = \"${ARCH_UPPER} OpenWrt ${DEVICE} device tree blob\"; | ||||||
| 			data = /incbin/(\"${DTB}\"); | 			data = /incbin/(\"${DTB}\"); | ||||||
| 			type = \"flat_dt\"; | 			type = \"flat_dt\"; | ||||||
| 			arch = \"${ARCH}\"; | 			arch = \"${ARCH}\"; | ||||||
| @@ -88,13 +92,13 @@ DATA="/dts-v1/; | |||||||
| 			hash@2 { | 			hash@2 { | ||||||
| 				algo = \"sha1\"; | 				algo = \"sha1\"; | ||||||
| 			}; | 			}; | ||||||
| 		}; /* end fdt */ | 		}; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	configurations { | 	configurations { | ||||||
| 		default = \"config@1\"; | 		default = \"config@1\"; | ||||||
| 		config@1 { | 		config@1 { | ||||||
| 			description = \"Default Linux kernel\"; | 			description = \"OpenWrt\"; | ||||||
| 			kernel = \"kernel@1\"; | 			kernel = \"kernel@1\"; | ||||||
| 			fdt = \"fdt@1\"; | 			fdt = \"fdt@1\"; | ||||||
| 		}; | 		}; | ||||||
| @@ -11,22 +11,25 @@ BOARDS := \ | |||||||
| 	imx6dl-wandboard \ | 	imx6dl-wandboard \ | ||||||
| 	imx6q-gw5400-a | 	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 | # emit FIT images, DTB's and generic zImage | ||||||
| define Image/BuildKernel | define Image/BuildKernel | ||||||
| 	$(foreach board,$(BOARDS), | 	$(foreach board,$(BOARDS), | ||||||
| 		$(call mkfit,$(board),0x10008000) | 		cp $(LINUX_DIR)/arch/arm/boot/dts/$(board).dtb $(BIN_DIR)/$(IMG_PREFIX)-$(board).dtb | ||||||
| 		cp $(LINUX_DIR)/arch/arm/boot/dts/$(board).dtb $(BIN_DIR) |  | ||||||
|  | 		$(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 | endef | ||||||
|  |  | ||||||
| # board-specific sysupgrade image | # board-specific sysupgrade image | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Luka Perkov
					Luka Perkov