mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-30 05:51:45 -09:00
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>
This commit is contained in:
committed by
Thomas Petazzoni
parent
a5033dd7fa
commit
f645f914ac
40
board/freescale/common/genimage.cfg.template
Normal file
40
board/freescale/common/genimage.cfg.template
Normal file
@@ -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"
|
||||
}
|
||||
}
|
||||
54
board/freescale/common/post-image.sh
Executable file
54
board/freescale/common/post-image.sh
Executable file
@@ -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 $@
|
||||
Reference in New Issue
Block a user