1*4882a593Smuzhiyun#!/usr/bin/env bash 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun# 4*4882a593Smuzhiyun# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME 5*4882a593Smuzhiyun# in ${BR_CONFIG}, then prints the corresponding list of file names for the 6*4882a593Smuzhiyun# genimage configuration file 7*4882a593Smuzhiyun# 8*4882a593Smuzhiyundtb_list() 9*4882a593Smuzhiyun{ 10*4882a593Smuzhiyun local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([\/a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun for dt in $DTB_LIST; do 13*4882a593Smuzhiyun echo -n "\"`basename $dt`.dtb\", " 14*4882a593Smuzhiyun done 15*4882a593Smuzhiyun} 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun# 18*4882a593Smuzhiyun# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in 19*4882a593Smuzhiyun# ${BR_CONFIG}, then prints the corresponding file name for the genimage 20*4882a593Smuzhiyun# configuration file 21*4882a593Smuzhiyun# 22*4882a593Smuzhiyunlinux_image() 23*4882a593Smuzhiyun{ 24*4882a593Smuzhiyun if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then 25*4882a593Smuzhiyun echo "\"uImage\"" 26*4882a593Smuzhiyun elif grep -Eq "^BR2_LINUX_KERNEL_IMAGE=y$" ${BR2_CONFIG}; then 27*4882a593Smuzhiyun echo "\"Image\"" 28*4882a593Smuzhiyun elif grep -Eq "^BR2_LINUX_KERNEL_IMAGEGZ=y$" ${BR2_CONFIG}; then 29*4882a593Smuzhiyun echo "\"Image.gz\"" 30*4882a593Smuzhiyun else 31*4882a593Smuzhiyun echo "\"zImage\"" 32*4882a593Smuzhiyun fi 33*4882a593Smuzhiyun} 34*4882a593Smuzhiyun 35*4882a593Smuzhiyungenimage_type() 36*4882a593Smuzhiyun{ 37*4882a593Smuzhiyun if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8=y$" ${BR2_CONFIG}; then 38*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 39*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then 40*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 41*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then 42*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 43*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y$" ${BR2_CONFIG}; then 44*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 45*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MP=y$" ${BR2_CONFIG}; then 46*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 47*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8X=y$" ${BR2_CONFIG}; then 48*4882a593Smuzhiyun echo "genimage.cfg.template_imx8" 49*4882a593Smuzhiyun elif grep -Eq "^BR2_LINUX_KERNEL_INSTALL_TARGET=y$" ${BR2_CONFIG}; then 50*4882a593Smuzhiyun if grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then 51*4882a593Smuzhiyun echo "genimage.cfg.template_no_boot_part_spl" 52*4882a593Smuzhiyun else 53*4882a593Smuzhiyun echo "genimage.cfg.template_no_boot_part" 54*4882a593Smuzhiyun fi 55*4882a593Smuzhiyun elif grep -Eq "^BR2_TARGET_UBOOT_SPL=y$" ${BR2_CONFIG}; then 56*4882a593Smuzhiyun echo "genimage.cfg.template_spl" 57*4882a593Smuzhiyun else 58*4882a593Smuzhiyun echo "genimage.cfg.template" 59*4882a593Smuzhiyun fi 60*4882a593Smuzhiyun} 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunimx_offset() 63*4882a593Smuzhiyun{ 64*4882a593Smuzhiyun if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8M=y$" ${BR2_CONFIG}; then 65*4882a593Smuzhiyun echo "33K" 66*4882a593Smuzhiyun elif grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y$" ${BR2_CONFIG}; then 67*4882a593Smuzhiyun echo "33K" 68*4882a593Smuzhiyun else 69*4882a593Smuzhiyun echo "32K" 70*4882a593Smuzhiyun fi 71*4882a593Smuzhiyun} 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunuboot_image() 74*4882a593Smuzhiyun{ 75*4882a593Smuzhiyun if grep -Eq "^BR2_TARGET_UBOOT_FORMAT_DTB_IMX=y$" ${BR2_CONFIG}; then 76*4882a593Smuzhiyun echo "u-boot-dtb.imx" 77*4882a593Smuzhiyun elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_IMX=y$" ${BR2_CONFIG}; then 78*4882a593Smuzhiyun echo "u-boot.imx" 79*4882a593Smuzhiyun elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_DTB_IMG=y$" ${BR2_CONFIG}; then 80*4882a593Smuzhiyun echo "u-boot-dtb.img" 81*4882a593Smuzhiyun elif grep -Eq "^BR2_TARGET_UBOOT_FORMAT_IMG=y$" ${BR2_CONFIG}; then 82*4882a593Smuzhiyun echo "u-boot.img" 83*4882a593Smuzhiyun fi 84*4882a593Smuzhiyun} 85*4882a593Smuzhiyun 86*4882a593Smuzhiyunmain() 87*4882a593Smuzhiyun{ 88*4882a593Smuzhiyun local FILES="$(dtb_list) $(linux_image)" 89*4882a593Smuzhiyun local IMXOFFSET="$(imx_offset)" 90*4882a593Smuzhiyun local UBOOTBIN="$(uboot_image)" 91*4882a593Smuzhiyun local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)" 92*4882a593Smuzhiyun local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp" 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun sed -e "s/%FILES%/${FILES}/" \ 95*4882a593Smuzhiyun -e "s/%IMXOFFSET%/${IMXOFFSET}/" \ 96*4882a593Smuzhiyun -e "s/%UBOOTBIN%/${UBOOTBIN}/" \ 97*4882a593Smuzhiyun board/freescale/common/imx/$(genimage_type) > ${GENIMAGE_CFG} 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun rm -rf "${GENIMAGE_TMP}" 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun genimage \ 102*4882a593Smuzhiyun --rootpath "${TARGET_DIR}" \ 103*4882a593Smuzhiyun --tmppath "${GENIMAGE_TMP}" \ 104*4882a593Smuzhiyun --inputpath "${BINARIES_DIR}" \ 105*4882a593Smuzhiyun --outputpath "${BINARIES_DIR}" \ 106*4882a593Smuzhiyun --config "${GENIMAGE_CFG}" 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun rm -f ${GENIMAGE_CFG} 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun exit $? 111*4882a593Smuzhiyun} 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunmain $@ 114