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:
parent
37d7439d98
commit
48029a0605
|
|
@ -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}"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Reference in New Issue