]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/meta-ti-glsdk.git/blobdiff - classes/sdcard_image.bbclass
U-boot 2011.10rc: Refresh PMIC patch with Rev A1 fixes
[glsdk/meta-ti-glsdk.git] / classes / sdcard_image.bbclass
index 2bbf4c47cf61fa6e9f8ae3ccb524fa8080f8dda8..adf026a901211c250da2be10410a51271bc3801d 100644 (file)
@@ -12,12 +12,17 @@ LOOPDEV ?= "/dev/loop1"
 LOOPDEV_BOOT ?= "/dev/loop2"
 LOOPDEV_FS ?= "/dev/loop3"
 
-# Default to 4GiB images, but use 2GiB images for beaglebone
+# Default to 4GiB images
 SDIMG_SIZE ?= "444" 
-SDIMG_SIZE_beaglebone = "222"
 
+BOOTPARTNAME_beaglebone = "BEAGLE_BONE"
 BOOTPARTNAME ?= "${MACHINE}"
 
+IMAGEDATESTAMP = "${@time.strftime('%Y.%m.%d',time.gmtime())}"
+
+# Files and/or directories to be copied into the vfat partition
+FATPAYLOAD ?= ""
+
 IMAGE_CMD_sdimg () {
        SDIMG=${WORKDIR}/sd.img
 
@@ -92,7 +97,8 @@ IMAGE_CMD_sdimg () {
                suffix=bin
        fi
 
-       cp -v ${IMAGE_ROOTFS}/boot/{user.txt,uEnv.txt} ${WORKDIR}/tmp-mnt-boot || true
+       cp -v ${IMAGE_ROOTFS}/boot/uEnv.txt ${WORKDIR}/tmp-mnt-boot || true
+       cp -v ${IMAGE_ROOTFS}/boot/user.txt ${WORKDIR}/tmp-mnt-boot || true
 
        if [ -e ${IMAGE_ROOTFS}/boot/u-boot.$suffix ] ; then
                cp -v ${IMAGE_ROOTFS}/boot/{u-boot.$suffix} ${WORKDIR}/tmp-mnt-boot || true
@@ -100,6 +106,14 @@ IMAGE_CMD_sdimg () {
                cp -v ${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.$suffix ${WORKDIR}/tmp-mnt-boot/u-boot.$suffix 
        fi
 
+       if [ -n ${FATPAYLOAD} ] ; then
+               echo "Copying payload into VFAT"
+               for entry in ${FATPAYLOAD} ; do
+                               # add the || true to stop aborting on vfat issues like not supporting .~lock files
+                               cp -av ${IMAGE_ROOTFS}$entry ${WORKDIR}/tmp-mnt-boot || true
+               done
+       fi
+
        # Cleanup VFAT mount
        echo "Cleaning up VFAT mount"
        umount ${WORKDIR}/tmp-mnt-boot
@@ -112,13 +126,14 @@ IMAGE_CMD_sdimg () {
        # should use fdisk info
        echo "Creating ext3 image"
        touch ${WORKDIR}/${IMAGE_NAME}.rootfs.ext3
-       genext2fs -b $FS_SIZE_BLOCKS -d ${IMAGE_ROOTFS} ${WORKDIR}/${IMAGE_NAME}.rootfs.ext3
+       # lots of small files, so use 8k per inode, not 64k
+       genext2fs -i 8192 -b $FS_SIZE_BLOCKS -d ${IMAGE_ROOTFS} ${WORKDIR}/${IMAGE_NAME}.rootfs.ext3
        tune2fs -L ${IMAGE_NAME} -j ${WORKDIR}/${IMAGE_NAME}.rootfs.ext3
 
        dd if=${WORKDIR}/${IMAGE_NAME}.rootfs.ext3 of=${LOOPDEV_FS}
 
        ${LOSETUP} -d ${LOOPDEV_FS} || true
 
-       gzip -c ${WORKDIR}/sd.img > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-${PR}.img.gz
+       gzip -c ${WORKDIR}/sd.img > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-${IMAGEDATESTAMP}.img.gz
        rm -f ${WORKDIR}/sd.img
 }