meta-digi-arm: implement 'boot.vfat' image type
At the moment this image is a VFAT file system containing the kernel and the device tree blobs. https://jira.digi.com/browse/DEL-932 Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
parent
4c79ce2429
commit
2660a0da27
|
|
@ -73,3 +73,52 @@ runimagecmd_jffs2() {
|
||||||
|
|
||||||
runimagecmd_sum.jffs2 = "${runimagecmd_jffs2}"
|
runimagecmd_sum.jffs2 = "${runimagecmd_jffs2}"
|
||||||
runimagecmd_ubifs = "${runimagecmd_jffs2}"
|
runimagecmd_ubifs = "${runimagecmd_jffs2}"
|
||||||
|
|
||||||
|
runimagecmd_boot.vfat() {
|
||||||
|
#
|
||||||
|
# Image generation code for image type 'boot.vfat'
|
||||||
|
#
|
||||||
|
BOOTIMG_FILES="$(readlink -e ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE})"
|
||||||
|
BOOTIMG_FILES_SYMLINK="${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}"
|
||||||
|
if [ -n "${KERNEL_DEVICETREE}" ]; then
|
||||||
|
for DTB in ${KERNEL_DEVICETREE}; do
|
||||||
|
if [ -e "${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB}" ]; then
|
||||||
|
BOOTIMG_FILES="${BOOTIMG_FILES} $(readlink -e ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB})"
|
||||||
|
BOOTIMG_FILES_SYMLINK="${BOOTIMG_FILES_SYMLINK} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Size of kernel and device tree + 10% extra space (in bytes)
|
||||||
|
BOOTIMG_FILES_SIZE="$(expr $(du -bc ${BOOTIMG_FILES} | tail -n1 | cut -f1) \* \( 100 + 10 \) / 100)"
|
||||||
|
|
||||||
|
# 1KB blocks for mkfs.vfat
|
||||||
|
BOOTIMG_BLOCKS="$(expr ${BOOTIMG_FILES_SIZE} / 1024)"
|
||||||
|
if [ -n "${BOARD_BOOTIMAGE_PARTITION_SIZE}" ]; then
|
||||||
|
BOOTIMG_BLOCKS="$(expr ${BOARD_BOOTIMAGE_PARTITION_SIZE} / 1024)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# POKY: Ensure total sectors is a multiple of sectors per track or mcopy will
|
||||||
|
# complain. Blocks are 1024 bytes, sectors are 512 bytes, and we generate
|
||||||
|
# images with 32 sectors per track. This calculation is done in blocks, thus
|
||||||
|
# the use of 16 instead of 32.
|
||||||
|
BOOTIMG_BLOCKS="$(expr \( \( ${BOOTIMG_BLOCKS} + 15 \) / 16 \) \* 16)"
|
||||||
|
|
||||||
|
# Build VFAT boot image in copy the contents
|
||||||
|
mkfs.vfat -n "Boot ${MACHINE}" -S 512 -C ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.vfat ${BOOTIMG_BLOCKS}
|
||||||
|
# Copy files into the FAT image (renaming DTB's on the fly)
|
||||||
|
for i in ${BOOTIMG_FILES_SYMLINK}; do
|
||||||
|
mcopy -i ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.vfat ${i} ::/$(basename ${i} | sed -e '/dtb$/s,^${KERNEL_IMAGETYPE}-,,g')
|
||||||
|
done
|
||||||
|
|
||||||
|
# Truncate the image to speed up the downloading/writing to the EMMC
|
||||||
|
if [ -n "${BOARD_BOOTIMAGE_PARTITION_SIZE}" ]; then
|
||||||
|
# U-Boot writes 512 bytes sectors so truncate the image at a sector boundary
|
||||||
|
truncate -s $(expr \( \( ${BOOTIMG_FILES_SIZE} + 511 \) / 512 \) \* 512) ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.vfat
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create the symlink
|
||||||
|
if [ -n "${IMAGE_LINK_NAME}" ] && [ -e ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.boot.vfat ]; then
|
||||||
|
ln -s ${IMAGE_NAME}.boot.vfat ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.boot.vfat
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,3 +8,11 @@ include conf/machine/include/ccimx6.inc
|
||||||
KERNEL_DEVICETREE = "imx6-${MACHINE}.dtb imx6-${MACHINE}-ldo.dtb imx6-${MACHINE}-hdcp.dtb"
|
KERNEL_DEVICETREE = "imx6-${MACHINE}.dtb imx6-${MACHINE}-ldo.dtb imx6-${MACHINE}-hdcp.dtb"
|
||||||
|
|
||||||
SERIAL_CONSOLES = "115200;ttymxc0"
|
SERIAL_CONSOLES = "115200;ttymxc0"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Partition sizes
|
||||||
|
# ---------------
|
||||||
|
# boot: 64 MiB
|
||||||
|
# system: 512 MiB
|
||||||
|
#
|
||||||
|
BOARD_BOOTIMAGE_PARTITION_SIZE ?= "67108864"
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ IMAGE_FSTYPES ?= "sum.jffs2 tar.bz2 ubifs"
|
||||||
|
|
||||||
# MX6 does not have flash memory so build sdcard images
|
# MX6 does not have flash memory so build sdcard images
|
||||||
SDCARD_ROOTFS_mx6 ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4"
|
SDCARD_ROOTFS_mx6 ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext4"
|
||||||
IMAGE_FSTYPES_mx6 ?= "ext4 sdcard tar.bz2"
|
IMAGE_FSTYPES_mx6 ?= "boot.vfat ext4 sdcard tar.bz2"
|
||||||
|
|
||||||
KERNEL_IMAGETYPE = "uImage"
|
KERNEL_IMAGETYPE = "uImage"
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue