meta-digi-arm: build images for different memory variants

https://jira.digi.com/browse/DEL-181 #resolve

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2013-01-15 10:49:28 +01:00
parent 37d7439d98
commit 48029a0605
3 changed files with 101 additions and 21 deletions

View File

@ -1,3 +1,103 @@
inherit image_types_fsl
# Customize class here
###################################################
## Platform data to be used in different scripts ##
###################################################
#
# <platform> <max_leb_cnt> <peb (KiB)> <leb (bytes)> <min-io-size (bytes)> <sub-page-size (bytes)>
# mlc, peb, leb, mio and sub might be a list of values (separated by commas)
#
# Values verified from actual modules with:
# ubiattach -m <rootfs_part_number> /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}"

View File

@ -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"

View File

@ -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"