diff options
| author | Petter Mabäcker <petter@technux.se> | 2015-05-25 16:59:21 +0200 |
|---|---|---|
| committer | Andrei Gherzan <andrei.gherzan@windriver.com> | 2015-06-05 14:49:46 +0200 |
| commit | 4a4373c02d3d8355a2e5faa10af61450e5b093d8 (patch) | |
| tree | dda67ceb2186e3472ec242693de1887985b2ad90 /classes/linux-raspberrypi-base.bbclass | |
| parent | 6ef9d94a2c2588dcefe442577ef6ae5bbe722dec (diff) | |
| download | meta-raspberrypi-4a4373c02d3d8355a2e5faa10af61450e5b093d8.tar.gz | |
devicetree: auto-disable dts for old kernels
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 <petter@technux.se>
Diffstat (limited to 'classes/linux-raspberrypi-base.bbclass')
| -rw-r--r-- | classes/linux-raspberrypi-base.bbclass | 39 |
1 files changed, 39 insertions, 0 deletions
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 @@ | |||
| 1 | inherit linux-kernel-base | ||
| 2 | |||
| 3 | |||
| 4 | def get_dts(d, ver): | ||
| 5 | staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True) | ||
| 6 | dts = d.getVar("KERNEL_DEVICETREE", True) | ||
| 7 | |||
| 8 | # d.getVar() might return 'None' as a normal string | ||
| 9 | # leading to 'is None' check isn't enough. | ||
| 10 | # TODO: Investigate if this is a bug in bitbake | ||
| 11 | if ver is None or ver == "None": | ||
| 12 | ''' if 'ver' isn't set try to grab the kernel version | ||
| 13 | from the kernel staging ''' | ||
| 14 | ver = get_kernelversion_file(staging_dir) | ||
| 15 | |||
| 16 | if ver is not None: | ||
| 17 | min_ver = ver.split('.', 3) | ||
| 18 | else: | ||
| 19 | return dts | ||
| 20 | |||
| 21 | # Always turn off device tree support for kernel's < 3.18 | ||
| 22 | try: | ||
| 23 | if int(min_ver[0]) <= 3: | ||
| 24 | if int(min_ver[1]) < 18: | ||
| 25 | dts = "" | ||
| 26 | except IndexError: | ||
| 27 | min_ver = None | ||
| 28 | |||
| 29 | return dts | ||
| 30 | |||
| 31 | |||
| 32 | def split_overlays(d, out): | ||
| 33 | dts = get_dts(d, None) | ||
| 34 | if out: | ||
| 35 | overlays = oe.utils.str_filter_out('\S+\-overlay\.dtb$', dts, d) | ||
| 36 | else: | ||
| 37 | overlays = oe.utils.str_filter('\S+\-overlay\.dtb$', dts, d) | ||
| 38 | |||
| 39 | return overlays | ||
