From 9619df0969036320ae01bdddade59cfd21407c6d Mon Sep 17 00:00:00 2001 From: Adrian Alonso Date: Thu, 9 Sep 2010 09:25:58 -0500 Subject: linux: add binary devicetree generation * Add binary devicetree generation support * Taken from OE * v2 reorder patch set * v3 remove package_stagefile_shell * v4 rename devicetree_image function to install_append * remove pkg_postinst_kernel-devicetree, pkg_postrm_kernel-devicetree functions * Update KERNEL_DEVICETREE_FLAGS use "-p" option instead of "-S" which is deprecated Signed-off-by: Adrian Alonso Signed-off-by: Richard Purdie --- meta/recipes-kernel/linux/linux.inc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'meta/recipes-kernel/linux/linux.inc') diff --git a/meta/recipes-kernel/linux/linux.inc b/meta/recipes-kernel/linux/linux.inc index 6f4db987d..93859bb5a 100644 --- a/meta/recipes-kernel/linux/linux.inc +++ b/meta/recipes-kernel/linux/linux.inc @@ -15,6 +15,21 @@ 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 @@ -89,3 +104,15 @@ do_install_prepend() { ln -f arch/${ARCH}/kernel/vmlinux.lds arch/${ARCH}/boot/vmlinux 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