summaryrefslogtreecommitdiffstats
path: root/board/freescale/common
diff options
context:
space:
mode:
authorGeorges Savoundararadj <savoundg@gmail.com>2016-09-07 15:29:08 -0700
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-09-11 23:24:04 +0200
commitf645f914ac026504bfe4f966bfe620cc3f91e04c (patch)
tree07a25489161e003f79cb96da42a7e6700adb7b61 /board/freescale/common
parenta5033dd7facaec3cd8d0d129b1f457a2f55f6d7e (diff)
downloadbuildroot-f645f914ac026504bfe4f966bfe620cc3f91e04c.tar.gz
buildroot-f645f914ac026504bfe4f966bfe620cc3f91e04c.zip
board/freescale: factorize genimage logic
For the boards imx6ulevk, imx6sabresd, mx25pdk, mx51evk, mx53loco, warpboard: * Replace genimage.cfg with a common Freescale genimage template named genimage.cfg.template because they all use the same layout. The only difference comes from the device tree blobs. * Replace each post-image.sh script with a generic post-image.sh script which is able to generate the right genimage.cfg depending on: ** the image type (zImage or uImage) from BR2_LINUX_KERNEL_UIMAGE ** the device tree blobs from BR2_LINUX_KERNEL_INTREE_DTS_NAME ** the rootfs type (ext2, ext3 or ext4) from BR2_TARGET_ROOTFS_EXT2 * Fix the readme.txt files accordingly Signed-off-by: Georges Savoundararadj <savoundg@gmail.com> Cc: Fabio Estevam <festevam@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Yann E. MORIN <yann.morin.1998@free.fr> [Thomas: remove handling of rootfs type, using rootfs.ext2 in all cases is fine, rootfs.ext3 and rootfs.ext4 are just symbolic links to it.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'board/freescale/common')
-rw-r--r--board/freescale/common/genimage.cfg.template40
-rwxr-xr-xboard/freescale/common/post-image.sh54
2 files changed, 94 insertions, 0 deletions
diff --git a/board/freescale/common/genimage.cfg.template b/board/freescale/common/genimage.cfg.template
new file mode 100644
index 0000000000..acce058b2a
--- /dev/null
+++ b/board/freescale/common/genimage.cfg.template
@@ -0,0 +1,40 @@
+# Minimal SD card image for the Freescale boards Template
+#
+# We mimic the .sdcard Freescale's image format:
+# * the SD card must have 1 kB free space at the beginning,
+# * U-Boot is dumped as is,
+# * a FAT partition at offset 8 MB is containing zImage/uImage and DTB files
+# * a single root filesystem partition is required (ext2, ext3 or ext4)
+#
+
+image boot.vfat {
+ vfat {
+ files = {
+ %FILES%
+ }
+ }
+ size = 16M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition u-boot {
+ in-partition-table = "no"
+ image = "u-boot.imx"
+ offset = 1024
+ }
+
+ partition boot {
+ partition-type = 0xC
+ bootable = "true"
+ image = "boot.vfat"
+ offset = 8M
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext2"
+ }
+}
diff --git a/board/freescale/common/post-image.sh b/board/freescale/common/post-image.sh
new file mode 100755
index 0000000000..7d48550a5a
--- /dev/null
+++ b/board/freescale/common/post-image.sh
@@ -0,0 +1,54 @@
+#!/usr/bin/env bash
+
+#
+# dtb_list extracts the list of DTB files from BR2_LINUX_KERNEL_INTREE_DTS_NAME
+# in ${BR_CONFIG}, then prints the corresponding list of file names for the
+# genimage configuration file
+#
+dtb_list()
+{
+ local DTB_LIST="$(sed -n 's/^BR2_LINUX_KERNEL_INTREE_DTS_NAME="\([a-z0-9 \-]*\)"$/\1/p' ${BR2_CONFIG})"
+
+ for dt in $DTB_LIST; do
+ echo -n "\"$dt.dtb\", "
+ done
+}
+
+#
+# linux_image extracts the Linux image format from BR2_LINUX_KERNEL_UIMAGE in
+# ${BR_CONFIG}, then prints the corresponding file name for the genimage
+# configuration file
+#
+linux_image()
+{
+ if grep -Eq "^BR2_LINUX_KERNEL_UIMAGE=y$" ${BR2_CONFIG}; then
+ echo "\"uImage\""
+ else
+ echo "\"zImage\""
+ fi
+}
+
+main()
+{
+ local FILES="$(dtb_list) $(linux_image)"
+ local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
+ local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
+
+ sed -e "s/%FILES%/${FILES}/" \
+ board/freescale/common/genimage.cfg.template > ${GENIMAGE_CFG}
+
+ rm -rf "${GENIMAGE_TMP}"
+
+ genimage \
+ --rootpath "${TARGET_DIR}" \
+ --tmppath "${GENIMAGE_TMP}" \
+ --inputpath "${BINARIES_DIR}" \
+ --outputpath "${BINARIES_DIR}" \
+ --config "${GENIMAGE_CFG}"
+
+ rm -f ${GENIMAGE_CFG}
+
+ exit $?
+}
+
+main $@
OpenPOWER on IntegriCloud