From 4a4373c02d3d8355a2e5faa10af61450e5b093d8 Mon Sep 17 00:00:00 2001 From: Petter Mabäcker Date: Mon, 25 May 2015 16:59:21 +0200 Subject: devicetree: auto-disable dts for old kernels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was introduced, kernel versions < 3.18 might not be buildable. Since full device tree support was introduced in 3.18 this change ensures that all kernel < 3.18 will automatically disable device tree. Signed-off-by: Petter Mabäcker --- classes/linux-raspberrypi-base.bbclass | 39 ++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 classes/linux-raspberrypi-base.bbclass (limited to 'classes/linux-raspberrypi-base.bbclass') diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-raspberrypi-base.bbclass new file mode 100644 index 0000000..40beef1 --- /dev/null +++ b/classes/linux-raspberrypi-base.bbclass @@ -0,0 +1,39 @@ +inherit linux-kernel-base + + +def get_dts(d, ver): + staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True) + dts = d.getVar("KERNEL_DEVICETREE", True) + + # d.getVar() might return 'None' as a normal string + # leading to 'is None' check isn't enough. + # TODO: Investigate if this is a bug in bitbake + if ver is None or ver == "None": + ''' if 'ver' isn't set try to grab the kernel version + from the kernel staging ''' + ver = get_kernelversion_file(staging_dir) + + if ver is not None: + min_ver = ver.split('.', 3) + else: + return dts + + # 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 = "" + except IndexError: + min_ver = None + + return dts + + +def split_overlays(d, out): + dts = get_dts(d, None) + if out: + overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) + else: + overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) + + return overlays -- cgit v1.2.3-54-g00ecf