[yocto] [meta-raspberrypi][PATCH v6 3/4] linux-raspberrypi-base.bbclass: support for .dtbo files for dtb overlays
Herve Jourdain
herve.jourdain at neuf.fr
Wed Jul 20 15:00:38 PDT 2016
Kernel 4.4.6+ on RaspberryPi support .dtbo files for overlays, instead of .dtb.
Add support for both variants of overlays ("-overlay.dtb" and ".dtbo")
Change which variant needs to be supported based on the kernel version
CAUTION: when called from IMAGE_CMD_rpi-sdimg, 'TMPDIR' is not set, causing 'STAGING_KERNEL_BUILDDIR' to not be expanded, causing get_kernelversion_file() to fail!
To avoid this problem, get_dts() and split_overlays() MUST be called with the kernel version parameter set, when called from IMAGE_CMD_rpi-sdimg!
Signed-off-by: Herve Jourdain <herve.jourdain at neuf.fr>
---
classes/linux-raspberrypi-base.bbclass | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-raspberrypi-base.bbclass
index 40beef1..930fc44 100644
--- a/classes/linux-raspberrypi-base.bbclass
+++ b/classes/linux-raspberrypi-base.bbclass
@@ -1,7 +1,8 @@
inherit linux-kernel-base
-
def get_dts(d, ver):
+ import re
+
staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
dts = d.getVar("KERNEL_DEVICETREE", True)
@@ -20,20 +21,24 @@ def get_dts(d, ver):
# Always turn off device tree support for kernel's < 3.18
try:
- if int(min_ver[0]) <= 3:
- if int(min_ver[1]) < 18:
- dts = ""
+ if int(min_ver[0]) >= 4:
+ if (int(min_ver[1]) < 4) or (int(min_ver[1]) == 4 and int(min_ver[2]) < 6):
+ dts = ' '.join([(re.sub(r'(.*)\.dtbo$', r'\1-overlay.dtb', x)) for x in dts.split()])
+ elif int(min_ver[1]) < 18:
+ dts = ""
except IndexError:
min_ver = None
return dts
-def split_overlays(d, out):
- dts = get_dts(d, None)
+def split_overlays(d, ver, out):
+ dts = get_dts(d, ver)
if out:
overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d)
else:
- overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d)
+ overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + \
+ " " + oe.utils.str_filter('\S+\.dtbo$', dts, d)
return overlays
--
2.7.4
More information about the yocto
mailing list