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 overlays 2. 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 <mailto: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.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
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto