[meta-freescale] [meta-fsl-arm][PATCH] image_types_fsl.bbclass: Use FAT 32 for images larger than 512MB

Tzu-Jung Lee roylee17 at gmail.com
Fri Oct 16 11:12:00 PDT 2015


Refers to the following commit of poky for more detail.

commit 722430a488f39bf583e4a557a254fb84fae4d0a7
Author: Darren Hart <dvhart at linux.intel.com>
Date:   Wed Dec 12 14:39:15 2012 -0800

    bootimg: Use FAT 32 for images larger than 512MB

        Fixes [YOCTO #2138]

Signed-off-by: Tzu-Jung Lee <roylee17 at currantlabs.com>

diff --git a/classes/image_types_fsl.bbclass b/classes/image_types_fsl.bbclass
index 77deb74..f323a7d 100644
--- a/classes/image_types_fsl.bbclass
+++ b/classes/image_types_fsl.bbclass
@@ -103,8 +103,15 @@ _generate_boot_image() {
 	BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
 	                  | awk "/ $boot_part / { print substr(\$4, 1, length(\$4 -1)) / 1024 }")
 
+	# mkdosfs will sometimes use FAT16 when it is not appropriate,
+	# resulting in a boot failure from SYSLINUX. Use FAT32 for
+	# images larger than 512MB, otherwise let mkdosfs decide.
+	if [ $(expr $BOOT_BLOCKS / 1024) -gt 512 ]; then
+		FATSIZE="-F 32"
+	fi
+
 	rm -f ${WORKDIR}/boot.img
-	mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -F 32 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
+	mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 ${FATSIZE} -C ${WORKDIR}/boot.img $BOOT_BLOCKS
 
 	mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.bin ::/${KERNEL_IMAGETYPE}
 
-- 
1.9.1



More information about the meta-freescale mailing list