From 970f3959d39708f3da3e5c181e645c1f9a010628 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Wed, 9 Feb 2011 00:45:23 -0500 Subject: 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 --- meta/recipes-kernel/linux/linux-dtb.inc | 27 +++++++++++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto.inc | 1 + meta/recipes-kernel/linux/linux.inc | 27 +-------------------------- 3 files changed, 29 insertions(+), 26 deletions(-) create mode 100644 meta/recipes-kernel/linux/linux-dtb.inc (limited to 'meta/recipes-kernel') diff --git a/meta/recipes-kernel/linux/linux-dtb.inc b/meta/recipes-kernel/linux/linux-dtb.inc new file mode 100644 index 0000000000..0b27d18ded --- /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 +} + diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc index 03935fa702..0812144d46 100644 --- a/meta/recipes-kernel/linux/linux-yocto.inc +++ b/meta/recipes-kernel/linux/linux-yocto.inc @@ -18,5 +18,6 @@ addtask kernel_configme before do_configure after do_patch # Pick up shared functions inherit kernel-yocto +require linux-dtb.inc B = "${WORKDIR}/linux-${MACHINE}-${LINUX_KERNEL_TYPE}-build" diff --git a/meta/recipes-kernel/linux/linux.inc b/meta/recipes-kernel/linux/linux.inc index 93859bb5a8..726d3d6904 100644 --- a/meta/recipes-kernel/linux/linux.inc +++ b/meta/recipes-kernel/linux/linux.inc @@ -3,6 +3,7 @@ SECTION = "kernel" LICENSE = "GPL" inherit kernel +require linux-dtb.inc DEPENDS_append_em-x270 = " mtd-utils " @@ -15,21 +16,6 @@ CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfs #boot from nfs #CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=301 root=/dev/nfs nfsroot=172.20.3.1:/data/at91 ip=172.20.0.5:::255.255.0.0" -# 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_configure_prepend() { echo "" > ${S}/.config @@ -105,14 +91,3 @@ do_install_prepend() { fi } -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 -} -- cgit v1.2.3-54-g00ecf