title: Building .dtbo overlay for BBB using bitbake
body: <p>I built a yocto distro (rocko) for my BBB using kernel linux-ti-staging-4.14 with a custom device tree. Since I need to port an old project from Debian to Yocto, I also needed to enable the UIO features in the kernel, which works fine too.</p>
  <p>Now I need to also create an additonal device-tree-overlay for the UIO PRUSS. I use a dts file from <a href="https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/AM335X-PRU-UIO-00A0.dts" rel="nofollow noreferrer">here</a> and extended the kernel recipe via bbappend:</p>
  <pre><code>inherit kernel-devicetree
  
  FILESEXTRAPATHS_prepend := &quot;${THISDIR}/files/dts:${THISDIR}/files/beaglebone:&quot;
  
  # Make custom kernel with PRU enabled
  SRC_URI += &quot; \
      file://bbb-pru-minimal.dts;subdir=git/arch/${ARCH}/boot/dts \
      file://AM335X-PRU-UIO-00A0-overlay.dts;subdir=git/arch/${ARCH}/boot/dts/overlays \
      file://0001-add-UIO-dtbo.patch \
      file://defconfig \
  &quot;
  
  KERNEL_DEVICETREE = &quot; \
     AM335X-PRU-UIO-00A0.dtbo \
     bbb-pru-minimal.dtb \
  &quot;
  </code></pre>
  <p>The above listed patch file contains:</p>
  <pre><code>diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
  index 7949c213a434..fe2513074893 100644
  --- a/arch/arm/boot/dts/Makefile
  +++ b/arch/arm/boot/dts/Makefile
  @@ -610,6 +610,7 @@ dtb-$(CONFIG_SOC_TI81XX) += \
      dm8168-evm.dtb \
      dra62x-j5eco-evm.dtb
   dtb-$(CONFIG_SOC_AM33XX) += \
  +   AM335X-PRU-UIO-00A0.dtbo \
      am335x-baltos-ir2110.dtb \
      am335x-baltos-ir3220.dtb \
      am335x-baltos-ir5221.dtb \
  
  </code></pre>
  <p>However, the kernel build fails as it seems there is no rule for .dtbo targets:</p>
  <pre><code>|   CC      scripts/mod/empty.o
  |   CC      scripts/mod/devicetable-offsets.s
  |   MKELF   scripts/mod/elfconfig.h
  |   HOSTCC  scripts/mod/modpost.o
  |   HOSTCC  scripts/mod/sumversion.o
  |   CHK     scripts/mod/devicetable-offsets.h
  |   HOSTCC  scripts/mod/file2alias.o
  |   HOSTLD  scripts/mod/modpost
  | NOTE: make -j 24 HOSTCC=gcc  -isystem[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/usr/include -O2 -pipe -L[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/usr/lib -L[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/lib -Wl,-rpath-link,[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/usr/lib -Wl,-rpath-link,[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/lib -Wl,-rpath,[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/usr/lib -Wl,-rpath,[TOPDIR]/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.14.79+gitAUTOINC+3438de3474-c/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=[TOPDIR]/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 HOSTCPP=gcc  -E AM335X-PRU-UIO-00A0.dtbo
  |   CHK     scripts/mod/devicetable-offsets.h
  | make[3]: *** No rule to make target 'arch/arm/boot/dts/AM335X-PRU-UIO-00A0.dtbo'.  Stop.
  | arch/arm/Makefile:345: recipe for target 'AM335X-PRU-UIO-00A0.dtbo' failed
  | make[2]: *** [AM335X-PRU-UIO-00A0.dtbo] Error 2
  | Makefile:146: recipe for target 'sub-make' failed
  | make[1]: *** [sub-make] Error 2
  | Makefile:24: recipe for target '__sub-make' failed
  | make: *** [__sub-make] Error 2
  | ERROR: oe_runmake failed
  </code></pre>
  <p>Please note, I replaced the absolute paths in the error message with [TOPDIR] due to privacy reasons.</p>
  <p>Since I am fairly new to overlay creation I don't really know what I am missing or how to fix it. Any hints?</p>
  <p>Thank you in advance!</p>
  <p><strong>Update</strong>: Added patch file to description above.</p>