diff --git a/meta-digi-arm/classes/image_types_digi.bbclass b/meta-digi-arm/classes/image_types_digi.bbclass index eede38272..d2db8d49e 100644 --- a/meta-digi-arm/classes/image_types_digi.bbclass +++ b/meta-digi-arm/classes/image_types_digi.bbclass @@ -1,3 +1,103 @@ inherit image_types_fsl -# Customize class here +################################################### +## Platform data to be used in different scripts ## +################################################### +# +# +# mlc, peb, leb, mio and sub might be a list of values (separated by commas) +# +# Values verified from actual modules with: +# ubiattach -m /dev/ubi_ctrl +# +# Max LEB count values calculated assuming following partition sizes: +# +# max_leb_cnt="$(($(power_of_2 $((psize / peb))) - 1))" +# psize = 524288 KiB; peb=128 KiB -> max_leb_cnt = 4095 +# psize = 524288 KiB; peb=512 KiB -> max_leb_cnt = 1023 +# psize = 262144 KiB; peb=128 KiB -> max_leb_cnt = 2047 +# +load_platform_data() { + while read _pl _mlc _peb _leb _mio _sub; do + eval "${_pl}_mlc=\"$(echo ${_mlc} | tr ',' ' ')\"" + eval "${_pl}_peb=\"$(echo ${_peb} | tr ',' ' ')\"" + eval "${_pl}_leb=\"$(echo ${_leb} | tr ',' ' ')\"" + eval "${_pl}_mio=\"$(echo ${_mio} | tr ',' ' ')\"" + eval "${_pl}_sub=\"$(echo ${_sub} | tr ',' ' ')\"" + done<<-_EOF_ + ccardxmx28js 2047 128 126976 2048 - + ccxmx51js 4095,1023 128,512 129024,520192 2048,4096 512,1024 + ccxmx53js 4095,1023 128,512 129024,520192 2048,4096 512,1024 +_EOF_ + # Set generic variables for current MACHINE + nimg="$(eval echo \${${MACHINE}_peb} | wc -w)" + for i in $(seq 1 ${nimg}); do + eval mlc${i}="$(eval echo \${${MACHINE}_mlc} | cut -d' ' -f${i})" + eval peb${i}="$(eval echo \${${MACHINE}_peb} | cut -d' ' -f${i})" + eval leb${i}="$(eval echo \${${MACHINE}_leb} | cut -d' ' -f${i})" + eval mio${i}="$(eval echo \${${MACHINE}_mio} | cut -d' ' -f${i})" + eval sub${i}="$(eval echo \${${MACHINE}_sub} | cut -d' ' -f${i})" + done +} + +IMAGE_CMD_jffs2() { + # Source platform data + load_platform_data + + for i in $(seq 1 ${nimg}); do + eval peb_it="\${peb${i}}" + mkfs.jffs2 -r ${IMAGE_ROOTFS} -f -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.jffs2 -n -p -l -e ${peb_it} + done +} + +IMAGE_CMD_sum.jffs2() { + # Source platform data + load_platform_data + + for i in $(seq 1 ${nimg}); do + eval peb_it="\${peb${i}}" + mkfs.jffs2 -r ${IMAGE_ROOTFS} -f -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.jffs2 -n -p -l -e ${peb_it} + sumtool -i ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.jffs2 -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.sum.jffs2 -n -p -l -e ${peb_it} + rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.jffs2 + done +} + +IMAGE_CMD_ubifs() { + # Source platform data + load_platform_data + + for i in $(seq 1 ${nimg}); do + eval mlc_it="\${mlc${i}}" + eval peb_it="\${peb${i}}" + eval leb_it="\${leb${i}}" + eval mio_it="\${mio${i}}" + mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.${peb_it}.rootfs.ubifs -m ${mio_it} -e ${leb_it} -c ${mlc_it} + done +} + + +# +# A copy of the original function in 'image_types.bbclass', just overriding the +# part of the symlinks generation so we can create more than one symlink (one per +# JFFS2 image) +# +runimagecmd_jffs2() { + ROOTFS_SIZE=`du -ks ${IMAGE_ROOTFS} | awk '{base_size = $1 * ${IMAGE_OVERHEAD_FACTOR}; base_size = ((base_size > ${IMAGE_ROOTFS_SIZE} ? base_size : ${IMAGE_ROOTFS_SIZE}) + ${IMAGE_ROOTFS_EXTRA_SPACE}); if (base_size != int(base_size)) base_size = int(base_size + 1); base_size = base_size + ${IMAGE_ROOTFS_ALIGNMENT} - 1; base_size -= base_size % ${IMAGE_ROOTFS_ALIGNMENT}; print base_size }'` + ${cmd} + + # And create the symlinks + # + # The previous $\{cmd} expands to IMAGE_CMD_jffs2 so we have all the + # needed variables available (nimg, pebX, etc) + if [ -n "${IMAGE_LINK_NAME}" ]; then + for type in ${subimages}; do + for i in $(seq 1 ${nimg}); do + eval peb_it="\${peb${i}}" + ln -s ${IMAGE_NAME}.${peb_it}.rootfs.$type ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.${peb_it}.$type + done + done + fi +} + +runimagecmd_sum.jffs2 = "${runimagecmd_jffs2}" +runimagecmd_ubifs = "${runimagecmd_jffs2}" diff --git a/meta-digi-arm/conf/machine/include/imx-digi-base.inc b/meta-digi-arm/conf/machine/include/imx-digi-base.inc index fcfaefc8c..e77519d18 100644 --- a/meta-digi-arm/conf/machine/include/imx-digi-base.inc +++ b/meta-digi-arm/conf/machine/include/imx-digi-base.inc @@ -12,14 +12,4 @@ UBOOT_SUFFIX = "bin" # Flash image types IMAGE_FSTYPES += "sum.jffs2 ubifs" -# Sector size 128 KiB -JFFS2_ERASEBLOCK = "0x20000" - -# Use the common short option for 'mkfs.jffs2' and 'sumtool' -JFFS2_ENDIANNESS = "-l" -EXTRA_IMAGECMD_sum.jffs2 = "${EXTRA_IMAGECMD_jffs2}" - -# mkfs.ubifs parameters -MKUBIFS_ARGS = "-m 2048 -e 129024 -c 4095" - PREFERRED_VERSION_wpa-supplicant = "1.0" diff --git a/meta-digi-arm/conf/machine/include/mxs-digi-base.inc b/meta-digi-arm/conf/machine/include/mxs-digi-base.inc index 1814603fe..c6fa8c5ab 100644 --- a/meta-digi-arm/conf/machine/include/mxs-digi-base.inc +++ b/meta-digi-arm/conf/machine/include/mxs-digi-base.inc @@ -14,14 +14,4 @@ SDCARD_ROOTFS ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3" IMAGE_FSTYPES ?= "tar.bz2" IMAGE_FSTYPES += "sum.jffs2 ubifs" -# Sector size 128 KiB -JFFS2_ERASEBLOCK = "0x20000" - -# Use the common short option for 'mkfs.jffs2' and 'sumtool' -JFFS2_ENDIANNESS = "-l" -EXTRA_IMAGECMD_sum.jffs2 = "${EXTRA_IMAGECMD_jffs2}" - -# mkfs.ubifs parameters -MKUBIFS_ARGS = "-m 2048 -e 126976 -c 2047" - PREFERRED_VERSION_wpa-supplicant = "6ffdc2f"