xref: /OK3568_Linux_fs/buildroot/board/freescale/common/mxs/post-image.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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 "\"$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	else
27*4882a593Smuzhiyun		echo "\"zImage\""
28*4882a593Smuzhiyun	fi
29*4882a593Smuzhiyun}
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunmain()
32*4882a593Smuzhiyun{
33*4882a593Smuzhiyun	local FILES="$(dtb_list) $(linux_image)"
34*4882a593Smuzhiyun	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
35*4882a593Smuzhiyun	local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	sed -e "s/%FILES%/${FILES}/" \
38*4882a593Smuzhiyun		board/freescale/common/mxs/genimage.cfg.template > ${GENIMAGE_CFG}
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	rm -rf "${GENIMAGE_TMP}"
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun	genimage \
43*4882a593Smuzhiyun		--rootpath "${TARGET_DIR}" \
44*4882a593Smuzhiyun		--tmppath "${GENIMAGE_TMP}" \
45*4882a593Smuzhiyun		--inputpath "${BINARIES_DIR}" \
46*4882a593Smuzhiyun		--outputpath "${BINARIES_DIR}" \
47*4882a593Smuzhiyun		--config "${GENIMAGE_CFG}"
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	rm -f ${GENIMAGE_CFG}
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	exit $?
52*4882a593Smuzhiyun}
53*4882a593Smuzhiyun
54*4882a593Smuzhiyunmain $@
55