]> code.ossystems Code Review - openembedded-core.git/commitdiff
linux: add binary devicetree generation
authorAdrian Alonso <aalonso00@gmail.com>
Thu, 9 Sep 2010 14:25:58 +0000 (09:25 -0500)
committerRichard Purdie <rpurdie@linux.intel.com>
Fri, 10 Sep 2010 12:00:15 +0000 (13:00 +0100)
* 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>
meta/recipes-kernel/linux/linux.inc

index 6f4db987d4e8079c608bd87023d6262db03a72cc..93859bb5a8f3aa19926d56a2f221cd0ef4c19eb2 100644 (file)
@@ -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
+}