From 3ec69a6051a9a9192dee585a01ee7370dff50597 Mon Sep 17 00:00:00 2001 From: Daiane Angolini Date: Fri, 21 Dec 2012 12:10:25 -0600 Subject: [PATCH] image_types_fsl: Fix .dtb file deploy .dtb file is copied to 'Boot' partition, the same partition uImage is placed. Now, more than one .dtb can be copied, if board conf file determinates more than one .dts file. Signed-off-by: Daiane Angolini --- meta-fsl-arm/classes/image_types_fsl.bbclass | 34 +++++++++++++------- 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/meta-fsl-arm/classes/image_types_fsl.bbclass b/meta-fsl-arm/classes/image_types_fsl.bbclass index 8a9fde4f..6bbbc0ed 100644 --- a/meta-fsl-arm/classes/image_types_fsl.bbclass +++ b/meta-fsl-arm/classes/image_types_fsl.bbclass @@ -129,12 +129,17 @@ generate_imx_sdcard () { done # Copy device tree file - if [ -e "${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]; then - kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" - kernel_dtb="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.dtb`" - if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb ::/machine.dtb - fi + if test -n "${KERNEL_DEVICETREE}"; then + for DTS_FILE in ${KERNEL_DEVICETREE}; do + DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` + if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then + kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" + kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`" + if [ $kernel_bin = $kernel_bin_for_dtb ]; then + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb + fi + fi + done fi # Burn Partition @@ -217,12 +222,17 @@ generate_mxs_sdcard () { mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin ::/uImage - if [ -e "${KERNEL_IMAGETYPE}-${MACHINE}.dtb" ]; then - kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" - kernel_dtb="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.dtb`" - if [ `basename $kernel_bin .bin` = `basename $kernel_dtb .dtb` ]; then - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}.dtb ::/machine.dtb - fi + if test -n "${KERNEL_DEVICETREE}"; then + for DTS_FILE in ${KERNEL_DEVICETREE}; do + DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'` + if [ -e "${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb" ]; then + kernel_bin="`readlink ${KERNEL_IMAGETYPE}-${MACHINE}.bin`" + kernel_bin_for_dtb="`readlink ${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb | sed "s,$DTS_BASE_NAME,${MACHINE},g;s,\.dtb$,.bin,g"`" + if [ $kernel_bin = $kernel_bin_for_dtb ]; then + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTS_BASE_NAME}.dtb ::/${DTS_BASE_NAME}.dtb + fi + fi + done fi dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=2 bs=$(expr 1024 \* 1024) -- 2.40.1