summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Alonso <aalonso00@gmail.com>2010-09-09 09:25:58 -0500
committerRichard Purdie <rpurdie@linux.intel.com>2010-09-10 13:00:15 +0100
commit9619df0969036320ae01bdddade59cfd21407c6d (patch)
tree5566e92a30990879b600d87456fbae67444b16b0
parentbe11510e216ed6f6928fed0b611b2b836c701e0b (diff)
downloadopenembedded-core-contrib-9619df0969036320ae01bdddade59cfd21407c6d.tar.gz
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 <aalonso00@gmail.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/recipes-kernel/linux/linux.inc27
1 files changed, 27 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux.inc b/meta/recipes-kernel/linux/linux.inc
index 6f4db987d4..93859bb5a8 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
+}