aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/linux/linux-dtb.inc
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2011-02-09 00:45:23 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-09 11:16:34 +0000
commit970f3959d39708f3da3e5c181e645c1f9a010628 (patch)
treea0df45c8653983f3303be4d28d906832e97975e7 /meta/recipes-kernel/linux/linux-dtb.inc
parent1de7185d8ee3c432ea4262d795e340b79ad9795d (diff)
downloadopenembedded-core-contrib-970f3959d39708f3da3e5c181e645c1f9a010628.tar.gz
linux: factor dts/dtc/dtb handling into a specific include
Fixes [BUGID #610] The powerpc linux-yocto kernels were not creating dtb images in the deploy directories. This was due to two problems: - the dtb generation rules were not being configured - the boards were not specifying a device tree in their config This change addresses the first point by factoring out the dtb generation routines into a new include that can be used by multiple recipes. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta/recipes-kernel/linux/linux-dtb.inc')
-rw-r--r--meta/recipes-kernel/linux/linux-dtb.inc27
1 files changed, 27 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-dtb.inc b/meta/recipes-kernel/linux/linux-dtb.inc
new file mode 100644
index 00000000000..0b27d18deda
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-dtb.inc
@@ -0,0 +1,27 @@
+# Support for device tree generation
+FILES_kernel_devicetree = "/boot/devicetree*"
+KERNEL_DEVICETREE_FLAGS = "-R 8 -p 0x3000"
+
+python __anonymous () {
+ import bb
+
+ devicetree = bb.data.getVar("KERNEL_DEVICETREE", d, 1) or ''
+ if devicetree:
+ depends = bb.data.getVar("DEPENDS", d, 1)
+ bb.data.setVar("DEPENDS", "%s dtc-native" % depends, d)
+ packages = bb.data.getVar("PACKAGES", d, 1)
+ bb.data.setVar("PACKAGES", "%s kernel-devicetree" % packages, d)
+}
+
+do_install_append() {
+ if test -n "${KERNEL_DEVICETREE}"; then
+ dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree ${KERNEL_DEVICETREE}
+ install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION}
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 devicetree ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb
+ cd ${DEPLOY_DIR_IMAGE}
+ rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
+ ln -sf ${KERNEL_IMAGE_BASE_NAME}.dtb ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
+ fi
+}
+