From 4826d225807850f082d99ba42019023e54215b84 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Mon, 20 Nov 2017 16:38:53 +0000 Subject: sdcard_image-rpi.bbclass: copy the DTB files with canonical name * instead of using ${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb use the entries from KERNEL_DEVICETREE * basename is still needed because raspberrypi3-64 is using: broadcom/bcm2710-rpi-3-b.dtb and the ${DEPLOY_DIR_IMAGE} doesn't contain any directories for DTBs and we cannot remove broadcom/ prefix, because then "make bcm2710-rpi-3-b.dtb" from kernel-devicetree.bbclass will fail with: make[3]: *** No rule to make target 'arch/arm64/boot/dts/bcm2710-rpi-3-b.dtb'. Stop. Signed-off-by: Martin Jansa --- classes/sdcard_image-rpi.bbclass | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass index f03595c..15c1aac 100644 --- a/classes/sdcard_image-rpi.bbclass +++ b/classes/sdcard_image-rpi.bbclass @@ -79,6 +79,7 @@ SDIMG_LINK_VFAT = "${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.vfat" def split_overlays(d, out, ver=None): dts = d.getVar("KERNEL_DEVICETREE") + # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder if out: overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d) @@ -118,24 +119,17 @@ IMAGE_CMD_rpi-sdimg () { mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/bcm2835-bootfiles/* ::/ if test -n "${DTS}"; then - # Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' (4.1.x) or by '.dtbo' (4.4.9+) string and will be put in a dedicated folder - DT_OVERLAYS="${@split_overlays(d, 0)}" - DT_ROOT="${@split_overlays(d, 1)}" - # Copy board device trees to root folder - for DTB in $DT_ROOT; do - DTB_BASE_NAME=`basename ${DTB} .dtb` - - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb + for dtbf in ${@split_overlays(d, True)}; do + dtb=`basename $dtbf` + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::$dtb done # Copy device tree overlays to dedicated folder mmd -i ${WORKDIR}/boot.img overlays - for DTB in $DT_OVERLAYS; do - DTB_EXT=${DTB##*.} - DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` - - mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.${DTB_EXT} ::overlays/${DTB_BASE_NAME}.${DTB_EXT} + for dtbf in ${@split_overlays(d, False)}; do + dtb=`basename $dtbf` + mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/$dtb ::overlays/$dtb done fi if [ "${RPI_USE_U_BOOT}" = "1" ]; then -- cgit v1.2.3-54-g00ecf