summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
authorFrancois Muller <francois@concept-embarque.fr>2015-02-07 20:54:37 +0100
committerFrancois Muller <francois@concept-embarque.fr>2015-02-07 20:54:37 +0100
commit2dbc974596bfc44179f0191c3fbb97d772a3ebb0 (patch)
tree75bc4ede7acf14b9a2cc992c65493791473d43c9 /classes
parent4dc75cedf738989c606766c4090f27da3a7d5cfd (diff)
downloadmeta-raspberrypi-2dbc974596bfc44179f0191c3fbb97d772a3ebb0.tar.gz
devicetree: Add support for DT overlays with RPi bootloader
Compile overlay device trees and put them in 'overlays/' folder on sdcard RPi boot partition. Change-Id: I3da0032b3c2618165008eec1fc94e97824d09099 Signed-off-by: Francois Muller <francois@concept-embarque.fr>
Diffstat (limited to 'classes')
-rw-r--r--classes/sdcard_image-rpi.bbclass20
1 files changed, 15 insertions, 5 deletions
diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass
index 63cd62a..43f1346 100644
--- a/classes/sdcard_image-rpi.bbclass
+++ b/classes/sdcard_image-rpi.bbclass
@@ -66,6 +66,11 @@ SDIMG = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.rpi-sdimg"
66# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS. 66# Additional files and/or directories to be copied into the vfat partition from the IMAGE_ROOTFS.
67FATPAYLOAD ?= "" 67FATPAYLOAD ?= ""
68 68
69# Device Tree Overlays are assumed to be suffixed by '-overlay.dtb' string and will be put in a dedicated folder
70DT_ALL = "${@d.getVar('KERNEL_DEVICETREE', True) or ''}"
71DT_OVERLAYS = "${@oe.utils.str_filter('\S+\-overlay\.dtb$', '${DT_ALL}', d)}"
72DT_ROOT = "${@oe.utils.str_filter_out('\S+\-overlay\.dtb$', '${DT_ALL}', d)}"
73
69IMAGEDATESTAMP = "${@time.strftime('%Y.%m.%d',time.gmtime())}" 74IMAGEDATESTAMP = "${@time.strftime('%Y.%m.%d',time.gmtime())}"
70 75
71IMAGE_CMD_rpi-sdimg () { 76IMAGE_CMD_rpi-sdimg () {
@@ -104,15 +109,20 @@ IMAGE_CMD_rpi-sdimg () {
104 ;; 109 ;;
105 *) 110 *)
106 if test -n "${KERNEL_DEVICETREE}"; then 111 if test -n "${KERNEL_DEVICETREE}"; then
107 for DTB in ${KERNEL_DEVICETREE}; do 112 # Copy board device trees to root folder
108 if echo ${DTB} | grep -q '/dts/'; then 113 for DTB in ${DT_ROOT}; do
109 bbwarn "${DTB} contains the full path to the the dts file, but only the dtb name should be used."
110 DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'`
111 fi
112 DTB_BASE_NAME=`basename ${DTB} .dtb` 114 DTB_BASE_NAME=`basename ${DTB} .dtb`
113 115
114 mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb 116 mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::${DTB_BASE_NAME}.dtb
115 done 117 done
118
119 # Copy device tree overlays to dedicated folder
120 mmd -i ${WORKDIR}/boot.img overlays
121 for DTB in ${DT_OVERLAYS}; do
122 DTB_BASE_NAME=`basename ${DTB} .dtb`
123
124 mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${DTB_BASE_NAME}.dtb ::overlays/${DTB_BASE_NAME}.dtb
125 done
116 fi 126 fi
117 mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::kernel.img 127 mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::kernel.img
118 ;; 128 ;;