Hi Hervé, Thanks for the explanation, I actually missed the 2nd pass aspect of the process.
Your patch is running ok for me (4.1.21 and 4.4.13) after having found and applied the required linux-dtb.inc patch you prepared (for the record, it is named "[PATCH v3] Support for .dtbo files for dtb overlays" in oe-core list). Nevertheless, I've some remarks about the process that I'll emit on your latest patch version (v6) for consistency. BR, François Le mercredi 20 juillet 2016 à 16:51 +0200, Herve Jourdain a écrit : > > > > > > > > > > > > > > > Hi François, Sorry for the late response, I’ve > > > > > > > > > > > > > > > been busy on other things recently. Actually, it’s not a typo, it’s just that we’re using the “overlays” variable for storing 2 things, depending on the value of the parameter “out” of the split_overlays() function:1. either all the overlays2. or all the dtb that are not overlays The case you’re mentioning is for “out” being selected, so you want to exclude all the overlays from the dts, and store that in the “overlays” variable (the naming of the variable is a bit unfortunate in this context, I must admit, but I only re-used the existing one).So now, you not only need to exclude the “-overlay.dtb” files, but also the “.dtbo” files.So the second pass takes the output of the first pass, in “overlays”, and filters out the “.dtbo” if any. Hope that helps, Hervé From: yocto-boun...@yoctoproject.org [mailto:yocto- boun...@yoctoproject.org] On Behalf Of Francois Muller > Sent: samedi 25 juin 2016 17:48 > To: yocto@yoctoproject.org > > > Subject: ***SPAM*** Re: [yocto] [meta-raspberrypi][PATCH v5 3/4] linux-raspberrypi-base.bbclass: support for .dtbo files for dtb overlays > > Hi Hervé, > > > I haven't tested your patch yet, but while reviewing the diff I'm a bit surprised about this: > > overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) > > + overlays = oe.utils.str_filter_out('\S+\.dtbo$', overlays, d) > > Shouldn't .dtbo files be filtered out from 'dts' instead of 'overlays' in the added line? > Seems like a typo to me. > > BR, > François > > Le vendredi 17 juin 2016 à 23:35 +0800, Herve Jourdain a écrit : > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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.jourd...@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.bbclassindex 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
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto