diff options
Diffstat (limited to 'meta-ti-bsp/recipes-kernel')
46 files changed, 714 insertions, 0 deletions
diff --git a/meta-ti-bsp/recipes-kernel/linux/files/0001-gcc-plugins-Fix-build-for-upcoming-GCC-release.patch b/meta-ti-bsp/recipes-kernel/linux/files/0001-gcc-plugins-Fix-build-for-upcoming-GCC-release.patch new file mode 100644 index 00000000..3dfa31a1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/files/0001-gcc-plugins-Fix-build-for-upcoming-GCC-release.patch @@ -0,0 +1,46 @@ +From 3cd29a3d7c25cca9989e7d8966141f725fa99c68 Mon Sep 17 00:00:00 2001 +From: Palmer Dabbelt <palmer@rivosinc.com> +Date: Fri, 13 Jan 2023 09:30:33 -0800 +Subject: [PATCH] gcc-plugins: Fix build for upcoming GCC release + +The upcoming GCC release has refactored the gimple plugin interface a +bit and unless gimple-iterator.h is included before gimple-fold.h I end +up with a bunch of missing declarations when building the stack +protector plugin. + +Upstream-Status: Backport [https://lore.kernel.org/all/20230113173033.4380-1-palmer@rivosinc.com/] +Reported-by: Palmer Dabbelt <palmer@rivosinc.com> +Acked-by: Palmer Dabbelt <palmer@rivosinc.com> +Link: https://lore.kernel.org/all/20230113173033.4380-1-palmer@rivosinc.com/ +Cc: linux-hardening@vger.kernel.org +Signed-off-by: Kees Cook <keescook@chromium.org> +--- + scripts/gcc-plugins/gcc-common.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/scripts/gcc-plugins/gcc-common.h ++++ b/scripts/gcc-plugins/gcc-common.h +@@ -108,7 +108,9 @@ + #include "varasm.h" + #include "stor-layout.h" + #include "internal-fn.h" ++#include "gimple.h" + #include "gimple-expr.h" ++#include "gimple-iterator.h" + #include "gimple-fold.h" + #include "context.h" + #include "tree-ssa-alias.h" +@@ -124,13 +126,10 @@ + #include "gimplify.h" + #endif + +-#include "gimple.h" +- + #if BUILDING_GCC_VERSION >= 4009 + #include "tree-ssa-operands.h" + #include "tree-phinodes.h" + #include "tree-cfg.h" +-#include "gimple-iterator.h" + #include "gimple-ssa.h" + #include "ssa-iterators.h" + #endif diff --git a/meta-ti-bsp/recipes-kernel/linux/files/configs/empty b/meta-ti-bsp/recipes-kernel/linux/files/configs/empty new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/files/configs/empty diff --git a/meta-ti-bsp/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch b/meta-ti-bsp/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch new file mode 100644 index 00000000..e1e04c34 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/files/init_disassemble_info-signature-changes-causes-compile-failures.patch @@ -0,0 +1,111 @@ + +Adaption of a patch [A] applied to meta-arm for the kernel. But since TI has it's own +kernel we have to "adjust" the patch to match our files. + +[A] https://patchwork.yoctoproject.org/project/arm/patch/20220824025819.4888-1-jon.mason@arm.com/#5104 + +Upstream-Status: Pending + +Signed-off-by: Ryan Eatmon <reatmon@ti.com> + + + +From 1b2013986271de39360cf79e62ed9b7d2cc59f9b Mon Sep 17 00:00:00 2001 +From: Andres Freund <andres@anarazel.de> +Date: Wed, 22 Jun 2022 11:19:18 -0700 +Subject: [PATCH] init_disassemble_info() signature changes causes compile + failures +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Hi, + +binutils changed the signature of init_disassemble_info(), which now causes +perf and bpftool to fail to compile (e.g. on debian unstable). + +Relevant binutils commit: https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac + +util/annotate.c: In function ?symbol__disassemble_bpf?: +util/annotate.c:1765:9: error: too few arguments to function ?init_disassemble_info? + 1765 | init_disassemble_info(&info, s, + | ^~~~~~~~~~~~~~~~~~~~~ +In file included from util/annotate.c:1718: +/usr/include/dis-asm.h:472:13: note: declared here + 472 | extern void init_disassemble_info (struct disassemble_info *dinfo, void *stream, + | ^~~~~~~~~~~~~~~~~~~~~ + +with equivalent failures in + +tools/bpf/bpf_jit_disasm.c +tools/bpf/bpftool/jit_disasm.c + +The fix is easy enough, add a wrapper around fprintf() that conforms to the +new signature. + +However I assume the necessary feature test and wrapper should only be added +once? I don't know the kernel stuff well enough to choose the right structure +here. + +Attached is my local fix for perf. Obviously would need work to be a real +solution. + +Greetings, + +Andres Freund +--- + +binutils 2.39 changed the signature of init_disassemble_info(), +which now causes perf and bpftool to fail to compile. + +Relevant binutils commit: [1] + +There is a proper fix in development upstream[2]. +This is a work-around for older kernels. + +[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=60a3da00bd5407f07d64dff82a4dae98230dfaac +[2] https://patchwork.kernel.org/project/netdevbpf/cover/20220801013834.156015-1-andres@anarazel.de/ + +Upstream-Status: Pending +Signed-off-by: Anton Antonov <Anton.Antonov@arm.com> + + + tools/perf/util/annotate.c | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c +index 308189454788..6573d2b07548 100644 +--- a/tools/perf/util/annotate.c ++++ b/tools/perf/util/annotate.c +@@ -1685,6 +1685,18 @@ + #include <bfd.h> + #include <dis-asm.h> + ++static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...) ++{ ++ va_list args; ++ int r; ++ ++ va_start(args, fmt); ++ r = vprintf(fmt, args); ++ va_end(args); ++ ++ return r; ++} ++ + static int symbol__disassemble_bpf(struct symbol *sym, + struct annotate_args *args) + { +@@ -1727,7 +1739,8 @@ static int symbol__disassemble_bpf(struct symbol *sym, + goto out; + } + init_disassemble_info(&info, s, +- (fprintf_ftype) fprintf); ++ (fprintf_ftype) fprintf, ++ fprintf_styled); + + info.arch = bfd_get_arch(bfdf); + info.mach = bfd_get_mach(bfdf); +-- +2.17.1 + diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-blk-iocost-avoid-64-bit-division-in-ioc_timer_fn.patch b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-blk-iocost-avoid-64-bit-division-in-ioc_timer_fn.patch new file mode 100644 index 00000000..a7806c22 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-blk-iocost-avoid-64-bit-division-in-ioc_timer_fn.patch @@ -0,0 +1,56 @@ +From 5f2779dfa7b8cc7dfd4a1b6586d86e0d193266f3 Mon Sep 17 00:00:00 2001 +From: Arnd Bergmann <arnd@arndb.de> +Date: Wed, 18 Jan 2023 09:07:01 +0100 +Subject: [PATCH] blk-iocost: avoid 64-bit division in ioc_timer_fn + +The behavior of 'enum' types has changed in gcc-13, so now the +UNBUSY_THR_PCT constant is interpreted as a 64-bit number because +it is defined as part of the same enum definition as some other +constants that do not fit within a 32-bit integer. This in turn +leads to some inefficient code on 32-bit architectures as well +as a link error: + +arm-linux-gnueabi/bin/arm-linux-gnueabi-ld: block/blk-iocost.o: in function `ioc_timer_fn': +blk-iocost.c:(.text+0x68e8): undefined reference to `__aeabi_uldivmod' +arm-linux-gnueabi-ld: blk-iocost.c:(.text+0x6908): undefined reference to `__aeabi_uldivmod' + +Split the enum definition to keep the 64-bit timing constants in +a separate enum type from those constants that can clearly fit +within a smaller type. + +Signed-off-by: Arnd Bergmann <arnd@arndb.de> +Acked-by: Tejun Heo <tj@kernel.org> +Link: https://lore.kernel.org/r/20230118080706.3303186-1-arnd@kernel.org +Signed-off-by: Jens Axboe <axboe@kernel.dk> +--- + block/blk-iocost.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/block/blk-iocost.c b/block/blk-iocost.c +index 6955605629e4..b691b6bb498f 100644 +--- a/block/blk-iocost.c ++++ b/block/blk-iocost.c +@@ -258,6 +258,11 @@ enum { + VRATE_MIN = VTIME_PER_USEC * VRATE_MIN_PPM / MILLION, + VRATE_CLAMP_ADJ_PCT = 4, + ++ /* switch iff the conditions are met for longer than this */ ++ AUTOP_CYCLE_NSEC = 10LLU * NSEC_PER_SEC, ++}; ++ ++enum { + /* if IOs end up waiting for requests, issue less */ + RQ_WAIT_BUSY_PCT = 5, + +@@ -296,9 +301,6 @@ enum { + /* don't let cmds which take a very long time pin lagging for too long */ + MAX_LAGGING_PERIODS = 10, + +- /* switch iff the conditions are met for longer than this */ +- AUTOP_CYCLE_NSEC = 10LLU * NSEC_PER_SEC, +- + /* + * Count IO size in 4k pages. The 12bit shift helps keeping + * size-proportional components of cost calculation in closer +-- +2.40.1 diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-block-blk-iocost-gcc13-keep-large-values-in-a-new-en.patch b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-block-blk-iocost-gcc13-keep-large-values-in-a-new-en.patch new file mode 100644 index 00000000..f5d0f476 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/0001-block-blk-iocost-gcc13-keep-large-values-in-a-new-en.patch @@ -0,0 +1,54 @@ +From ff1cc97b1f4c10db224f276d9615b22835b8c424 Mon Sep 17 00:00:00 2001 +From: "Jiri Slaby (SUSE)" <jirislaby@kernel.org> +Date: Tue, 13 Dec 2022 13:08:26 +0100 +Subject: [PATCH] block/blk-iocost (gcc13): keep large values in a new enum + +Since gcc13, each member of an enum has the same type as the enum [1]. And +that is inherited from its members. Provided: + VTIME_PER_SEC_SHIFT = 37, + VTIME_PER_SEC = 1LLU << VTIME_PER_SEC_SHIFT, + ... + AUTOP_CYCLE_NSEC = 10LLU * NSEC_PER_SEC, +the named type is unsigned long. + +This generates warnings with gcc-13: + block/blk-iocost.c: In function 'ioc_weight_prfill': + block/blk-iocost.c:3037:37: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' + + block/blk-iocost.c: In function 'ioc_weight_show': + block/blk-iocost.c:3047:34: error: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' + +So split the anonymous enum with large values to a separate enum, so +that they don't affect other members. + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36113 + +Cc: Martin Liska <mliska@suse.cz> +Cc: Tejun Heo <tj@kernel.org> +Cc: Josef Bacik <josef@toxicpanda.com> +Cc: Jens Axboe <axboe@kernel.dk> +Cc: cgroups@vger.kernel.org +Cc: linux-block@vger.kernel.org +Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> +Link: https://lore.kernel.org/r/20221213120826.17446-1-jirislaby@kernel.org +Signed-off-by: Jens Axboe <axboe@kernel.dk> +--- + block/blk-iocost.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/block/blk-iocost.c b/block/blk-iocost.c +index d1bdc12deaa7..549ddc9e0c6f 100644 +--- a/block/blk-iocost.c ++++ b/block/blk-iocost.c +@@ -232,7 +232,9 @@ enum { + + /* 1/64k is granular enough and can easily be handled w/ u32 */ + WEIGHT_ONE = 1 << 16, ++}; + ++enum { + /* + * As vtime is used to calculate the cost of each IO, it needs to + * be fairly high precision. For example, it should be able to +-- +2.40.1 diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/defconfig new file mode 100644 index 00000000..a5de2e24 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org/defconfig @@ -0,0 +1 @@ +use-kernel-config=bb.org_defconfig diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-bb.org_git.bb b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org_git.bb new file mode 100644 index 00000000..144028e5 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-bb.org_git.bb @@ -0,0 +1,35 @@ +SECTION = "kernel" +SUMMARY = "BeagleBoard.org Linux kernel" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +COMPATIBLE_MACHINE = "beagle.*" + +inherit kernel + +require recipes-kernel/linux/setup-defconfig.inc +require recipes-kernel/linux/ti-kernel.inc + +# BB.org hasn't switched to "vendored" DTB layout by default yet +KERNEL_DTBVENDORED = "0" + +DEPENDS += "gmp-native libmpc-native" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} ${EXTRA_DTC_ARGS}" + +S = "${WORKDIR}/git" + +# 6.1.69 version for 32-bit +SRCREV:armv7a = "a1f26a19581970f76220c68c438981796ce5b767" +PV:armv7a = "6.1.69+git" +BRANCH:armv7a = "v6.1.69-ti-r22" + +# 6.1.69 version for 64-bit +SRCREV:aarch64 = "bc76b5d278271f66a6faeb2d09cb09fc6c57dd3c" +PV:aarch64 = "6.1.69+git" +BRANCH:aarch64 = "v6.1.69-ti-arm64-r24" + +SRC_URI = " \ + git://github.com/beagleboard/linux.git;protocol=https;branch=${BRANCH} \ + file://defconfig \ +" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb new file mode 100644 index 00000000..5c495d46 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-mainline_git.bb @@ -0,0 +1,42 @@ +SECTION = "kernel" +SUMMARY = "Mainline Linux kernel for TI devices" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +inherit kernel + +require recipes-kernel/linux/ti-kernel.inc + +DEPENDS += "gmp-native libmpc-native" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \ + ${EXTRA_DTC_ARGS}" + +S = "${WORKDIR}/git" + +# 6.6 Mainline version +SRCREV = "ffc253263a1375a65fa6c9f62a893e9767fbebfa" +PV = "6.6+git" + +# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild +MACHINE_KERNEL_PR:append = "b" +PR = "${MACHINE_KERNEL_PR}" + +KERNEL_GIT_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git" +KERNEL_GIT_PROTOCOL = "https" +KERNEL_GIT_BRANCH = "master" +SRC_URI += " \ + ${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${KERNEL_GIT_BRANCH} \ +" + +DEFCONFIG_NAME = "multi_v7_defconfig" +DEFCONFIG_NAME:omapl138 = "davinci_all_defconfig" +DEFCONFIG_NAME:k3 = "defconfig" +KERNEL_CONFIG_COMMAND = "oe_runmake -C ${S} O=${B} ${DEFCONFIG_NAME}" + +do_shared_workdir:prepend() { + cd ${B} + echo >> Module.symvers +} + +FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/*.itb" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb new file mode 100644 index 00000000..f1a14ab1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-next_git.bb @@ -0,0 +1,26 @@ +SECTION = "kernel" +SUMMARY = "Linux-next kernel for TI devices" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +inherit kernel + +require recipes-kernel/linux/ti-kernel.inc +include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''} + +DEPENDS += "gmp-native libmpc-native" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} ${EXTRA_DTC_ARGS}" + +S = "${WORKDIR}/git" + +# 6.6.0-rc3+ version +SRCREV = "6465e260f48790807eef06b583b38ca9789b6072" +PV = "6.6.0-rc3+git" + +SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git;protocol=https;branch=master" + +DEFCONFIG_NAME = "multi_v7_defconfig" +DEFCONFIG_NAME:omapl138 = "davinci_all_defconfig" +DEFCONFIG_NAME:k3 = "defconfig" +KERNEL_CONFIG_COMMAND = "oe_runmake -C ${S} O=${B} ${DEFCONFIG_NAME}" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/defconfig new file mode 100644 index 00000000..24b53cf7 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/k3/defconfig new file mode 100644 index 00000000..ef1d3efd --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/omapl138/defconfig new file mode 100644 index 00000000..099493af --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/omapl138/defconfig @@ -0,0 +1 @@ +use-kernel-config=davinci_all_defconfig diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti33x/defconfig new file mode 100644 index 00000000..e6a967e1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti33x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti43x/defconfig new file mode 100644 index 00000000..e6a967e1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.1/ti43x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/defconfig new file mode 100644 index 00000000..24b53cf7 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/k3/defconfig new file mode 100644 index 00000000..ef1d3efd --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/omapl138/defconfig new file mode 100644 index 00000000..099493af --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/omapl138/defconfig @@ -0,0 +1 @@ +use-kernel-config=davinci_all_defconfig diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti33x/defconfig new file mode 100644 index 00000000..e6a967e1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti33x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti43x/defconfig new file mode 100644 index 00000000..e6a967e1 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-6.6/ti43x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/defconfig new file mode 100644 index 00000000..43089dc8 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/k3/defconfig new file mode 100644 index 00000000..47d78664 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/omapl138/defconfig new file mode 100644 index 00000000..2c829c0b --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/omapl138/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=davinci_all_defconfig +config-fragment=kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti33x/defconfig new file mode 100644 index 00000000..5de2b229 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti33x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti43x/defconfig new file mode 100644 index 00000000..5de2b229 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.1/ti43x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/defconfig new file mode 100644 index 00000000..43089dc8 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/k3/defconfig new file mode 100644 index 00000000..47d78664 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/omapl138/defconfig new file mode 100644 index 00000000..2c829c0b --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/omapl138/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=davinci_all_defconfig +config-fragment=kernel/configs/ti_rt.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti33x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti33x/defconfig new file mode 100644 index 00000000..5de2b229 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti33x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti43x/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti43x/defconfig new file mode 100644 index 00000000..5de2b229 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt-6.6/ti43x/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config kernel/configs/ti_rt.config kernel/configs/no_smp.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.1.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.1.bb new file mode 100644 index 00000000..80277aac --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.1.bb @@ -0,0 +1,15 @@ +require linux-ti-staging_6.1.bb + +KERNEL_LOCALVERSION:append = "-rt" + +# Look in the generic major.minor directory for files +# This will have priority over generic non-rt path +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.1:" + +BRANCH = "ti-rt-linux-6.1.y" + +SRCREV = "96b0ebd82722d16e9ab646cd3a73080e6f790747" + +include ${@ 'recipes-kernel/linux/ti-extras-rt.inc' if d.getVar('TI_EXTRAS') else ''} + +PV = "6.1.83+git" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.6.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.6.bb new file mode 100644 index 00000000..bccd856c --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-rt_6.6.bb @@ -0,0 +1,17 @@ +require linux-ti-staging_6.6.bb + +DEFAULT_PREFERENCE = "-1" + +KERNEL_LOCALVERSION:append = "-rt" + +# Look in the generic major.minor directory for files +# This will have priority over generic non-rt path +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.6:" + +BRANCH = "ti-rt-linux-6.6.y" + +SRCREV = "7cceac93947da35755935827cd675925400d0102" + +include ${@ 'recipes-kernel/linux/ti-extras-rt.inc' if d.getVar('TI_EXTRAS') else ''} + +PV = "6.6.25+git" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/defconfig new file mode 100644 index 00000000..24b53cf7 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/k3/defconfig new file mode 100644 index 00000000..ef1d3efd --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/omapl138/defconfig new file mode 100644 index 00000000..099493af --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.1/omapl138/defconfig @@ -0,0 +1 @@ +use-kernel-config=davinci_all_defconfig diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/defconfig new file mode 100644 index 00000000..24b53cf7 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=multi_v7_defconfig +config-fragment=kernel/configs/ti_multi_v7_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/k3/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/k3/defconfig new file mode 100644 index 00000000..ef1d3efd --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/k3/defconfig @@ -0,0 +1,2 @@ +use-kernel-config=defconfig +config-fragment=kernel/configs/ti_arm64_prune.config diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/omapl138/defconfig b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/omapl138/defconfig new file mode 100644 index 00000000..099493af --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest-6.6/omapl138/defconfig @@ -0,0 +1 @@ +use-kernel-config=davinci_all_defconfig diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.1.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.1.bb new file mode 100644 index 00000000..9c170e65 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.1.bb @@ -0,0 +1,5 @@ +require linux-ti-staging_6.1.bb + +# Look in the generic major.minor directory for files +# This will have priority over generic non-rt path +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.1:" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.6.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.6.bb new file mode 100644 index 00000000..21090904 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging-systest_6.6.bb @@ -0,0 +1,7 @@ +require linux-ti-staging_6.6.bb + +DEFAULT_PREFERENCE = "-1" + +# Look in the generic major.minor directory for files +# This will have priority over generic non-rt path +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.6:" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb new file mode 100644 index 00000000..51d0a6a5 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb @@ -0,0 +1,42 @@ +SECTION = "kernel" +SUMMARY = "Linux kernel for TI devices" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +inherit ti-secdev +inherit kernel + +require recipes-kernel/linux/setup-defconfig.inc +require recipes-kernel/linux/ti-kernel.inc +include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''} +include ${@ 'recipes-kernel/linux/ti-extras.inc' if d.getVar('TI_EXTRAS') else ''} + +DEPENDS += "gmp-native libmpc-native" + +# Look in the generic major.minor directory for files +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.1:" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \ + ${EXTRA_DTC_ARGS}" + +S = "${WORKDIR}/git" + +BRANCH ?= "ti-linux-6.1.y" + +SRCREV ?= "c1c2f1971fbf6ddad93a8c94314fe8221e7aa6be" +PV = "6.1.83+git" + +# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild +MACHINE_KERNEL_PR:append = "b" +PR = "${MACHINE_KERNEL_PR}" + +KERNEL_GIT_URI ?= "git://git.ti.com/git/ti-linux-kernel/ti-linux-kernel.git" +KERNEL_GIT_PROTOCOL = "https" +SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \ + file://defconfig" + +# Special configuration for remoteproc/rpmsg IPC modules +module_conf_rpmsg_client_sample = "blacklist rpmsg_client_sample" +module_conf_ti_k3_r5_remoteproc = "softdep ti_k3_r5_remoteproc pre: virtio_rpmsg_bus" +module_conf_ti_k3_dsp_remoteproc = "softdep ti_k3_dsp_remoteproc pre: virtio_rpmsg_bus" +KERNEL_MODULE_PROBECONF += "rpmsg_client_sample ti_k3_r5_remoteproc ti_k3_dsp_remoteproc" diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb new file mode 100644 index 00000000..14fabb81 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.6.bb @@ -0,0 +1,44 @@ +SECTION = "kernel" +SUMMARY = "Linux kernel for TI devices" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" + +inherit ti-secdev +inherit kernel + +DEFAULT_PREFERENCE = "-1" + +require recipes-kernel/linux/setup-defconfig.inc +require recipes-kernel/linux/ti-kernel.inc +include ${@ 'recipes-kernel/linux/ti-kernel-devicetree-prefix.inc' if d.getVar('KERNEL_DEVICETREE_PREFIX') else ''} +include ${@ 'recipes-kernel/linux/ti-extras.inc' if d.getVar('TI_EXTRAS') else ''} + +DEPENDS += "gmp-native libmpc-native" + +# Look in the generic major.minor directory for files +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}-6.6:" + +KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT} \ + ${EXTRA_DTC_ARGS}" + +S = "${WORKDIR}/git" + +BRANCH ?= "ti-linux-6.6.y" + +SRCREV ?= "f7f73d9d344c89081db499a2968d9033d7cac45c" +PV = "6.6.25+git" + +# Append to the MACHINE_KERNEL_PR so that a new SRCREV will cause a rebuild +MACHINE_KERNEL_PR:append = "b" +PR = "${MACHINE_KERNEL_PR}" + +KERNEL_GIT_URI ?= "git://git.ti.com/git/ti-linux-kernel/ti-linux-kernel.git" +KERNEL_GIT_PROTOCOL = "https" +SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \ + file://defconfig" + +# Special configuration for remoteproc/rpmsg IPC modules +module_conf_rpmsg_client_sample = "blacklist rpmsg_client_sample" +module_conf_ti_k3_r5_remoteproc = "softdep ti_k3_r5_remoteproc pre: virtio_rpmsg_bus" +module_conf_ti_k3_dsp_remoteproc = "softdep ti_k3_dsp_remoteproc pre: virtio_rpmsg_bus" +KERNEL_MODULE_PROBECONF += "rpmsg_client_sample ti_k3_r5_remoteproc ti_k3_dsp_remoteproc" diff --git a/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc b/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc new file mode 100644 index 00000000..213f6871 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/setup-defconfig.inc @@ -0,0 +1,84 @@ +KERNEL_LOCALVERSION = "-ti" + +# Check the defconfig file and see if it points to an in kernel +# defconfig that should be used, or if it is a complete config file +# Or if it points to a combined defconfig that lists both in kernel +# defconfig and associated config fragments. + +do_configure() { + # Always copy the defconfig file to .config to keep consistency + # between the case where there is a real config and the in kernel + # tree config + cp ${UNPACKDIR}/defconfig ${B}/.config + + scm_version=$(printf '%s%s' -g $(git -C ${S} rev-parse --verify HEAD 2>/dev/null | cut -c1-12)) + + echo ${scm_version} > ${B}/.scmversion + echo ${scm_version} > ${S}/.scmversion + + # Zero, when using "tisdk" configs, pass control to defconfig_builder + config=`cat ${B}/.config | grep use-tisdk-config | cut -d= -f2` + if [ -n "$config" ] + then + ${DEFCONFIG_BUILDER} -w ${S} -t $config + oe_runmake -C ${S} O=${B} "$config"_defconfig + else + # First, check if pointing to a combined config with config fragments + config=`cat ${B}/.config | grep use-combined-config | cut -d= -f2` + if [ -n "$config" ] + then + cp ${S}/$config ${B}/.config + fi + + # Second, extract any config fragments listed in the defconfig + config=`cat ${B}/.config | grep config-fragment | cut -d= -f2` + if [ -n "$config" ] + then + configfrags="" + for f in $config + do + # Check if the config fragment is available + if [ ! -e "${S}/$f" ] + then + echo "Could not find kernel config fragment $f" + exit 1 + else + # Sanitize config fragment files to be relative to sources + configfrags="$configfrags ${S}/$f" + fi + done + fi + + # Third, check if pointing to a known in kernel defconfig + config=`cat ${B}/.config | grep use-kernel-config | cut -d= -f2` + if [ -n "$config" ] + then + oe_runmake -C ${S} O=${B} $config + else + yes '' | oe_runmake -C ${S} O=${B} oldconfig + fi + fi + + # Fourth, handle config fragments specified in the recipe + # The assumption is that the config fragment will be specified with the absolute path. + # E.g. ${WORKDIR}/config1.cfg or ${S}/config2.cfg + if [ -n "${KERNEL_CONFIG_FRAGMENTS}" ] + then + for f in ${KERNEL_CONFIG_FRAGMENTS} + do + # Check if the config fragment is available + if [ ! -e "$f" ] + then + echo "Could not find kernel config fragment $f" + exit 1 + fi + done + fi + + # Now that all the fragments are located merge them + if [ -n "${KERNEL_CONFIG_FRAGMENTS}" -o -n "$configfrags" ] + then + ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config $configfrags ${KERNEL_CONFIG_FRAGMENTS} 1>&2 ) + yes '' | oe_runmake -C ${S} O=${B} oldconfig + fi +} diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-extras-rt.inc b/meta-ti-bsp/recipes-kernel/linux/ti-extras-rt.inc new file mode 100644 index 00000000..530a1783 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/ti-extras-rt.inc @@ -0,0 +1,11 @@ + +# Use different commit, repo and branch for TI extras build +# This will have priority over generic rt path + +COMPATIBLE_MACHINE = "am62xx|am62pxx" + +BRANCH = "ti-rt-linux-6.1.y" +BRANCH:tie-jailhouse = "ti-rt-linux-6.1.y-jailhouse" + +SRCREV = "685e77152461bd6b791500f717bec62d17c1b36d" +SRCREV:tie-jailhouse = "a74088b40b4d27478a2af5c20cdc0b4ec8ed9470" diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-extras.inc b/meta-ti-bsp/recipes-kernel/linux/ti-extras.inc new file mode 100644 index 00000000..0b22aca9 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/ti-extras.inc @@ -0,0 +1,14 @@ + +# Use different commit, repo and branch for TI extras build +# This will have priority over generic rt path + +COMPATIBLE_MACHINE = "am62xx|am62pxx" + +BRANCH = "ti-linux-6.1.y" +BRANCH:tie-jailhouse = "ti-linux-6.1.y-jailhouse" + +SRCREV = "ec058c3ddc5377c629e988a95ef84826b14a3307" +SRCREV:tie-jailhouse = "d035e0cc72399f1c087a63c4210d29e79a7a66e4" + +KERNEL_GIT_URI = "git://git.ti.com/git/processor-sdk/linux.git" + diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc b/meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc new file mode 100644 index 00000000..04c91004 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/ti-kernel-devicetree-prefix.inc @@ -0,0 +1,42 @@ + +def get_dtbs_from_kernel(dts_dir, dts_prefix): + import os + import glob + matches = [] + + for prefix in dts_prefix.split(): + filenames = glob.glob(dts_dir + prefix + '*.dts') + filenames += glob.glob(dts_dir + prefix + '*.dtso') + for filename in filenames: + # Before v6.2 kernels DTB Overlays shared the same name as DTB files + # so we need to search the file to find the type + with open(filename) as f: + file_postfix = '.dtbo' if '/plugin/;' in f.read() else '.dtb' + filename = os.path.split(filename)[1] + filename = os.path.splitext(filename)[0] + file_postfix + filename = os.path.join(os.path.split(prefix)[0], filename) + matches.append(filename) + return ' '.join(matches) + +def get_merge_dtbs_from_kernel(dts_dir, dts_pattern): + import os + matches = [] + if dts_dir == "": + return ' ' + for pattern in dts_pattern.split(): + pattern_dir = os.path.split(pattern)[0] + pattern_target = os.path.split(pattern)[1].replace(".","-") + "s" + makefile = dts_dir + "/" + pattern_dir + "/Makefile" + if os.path.exists(makefile): + with open(makefile) as f: + if pattern_target in f.read(): + matches.append(pattern) + return ' '.join(matches) + +KERNEL_DEVICETREE_DTBMERGE ?= "" + +KERNEL_DEVICETREE = " \ + ${@get_dtbs_from_kernel('${S}/arch/${ARCH}/boot/dts/', '${KERNEL_DEVICETREE_PREFIX}')} \ + ${@get_merge_dtbs_from_kernel('${S}/arch/${ARCH}/boot/dts/', '${KERNEL_DEVICETREE_DTBMERGE}')} \ +" + diff --git a/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc new file mode 100644 index 00000000..dd5578f5 --- /dev/null +++ b/meta-ti-bsp/recipes-kernel/linux/ti-kernel.inc @@ -0,0 +1,14 @@ +# Add DTC FLAGS -@ when KERNEL_DTB_OVERLAY_SUPPORT is enabled + +def get_extra_dtc_args(d): + if d.getVar('KERNEL_DTB_OVERLAY_SUPPORT') == "1": + return "DTC_FLAGS=-@" + else: + return "" + +EXTRA_DTC_ARGS += "${@get_extra_dtc_args(d)}" + +# Tell the kernel class to install the DTBs in the same directory structure as +# the kernel. +KERNEL_DTBDEST = "${KERNEL_IMAGEDEST}/dtb" +KERNEL_DTBVENDORED = "1" |