[meta-freescale] [meta-fsl-arm-extra][PATCH 2/2] kernel-module-mcc: provide recipe adapted to a 3.18 based Toradex kernel

Stefan Agner stefan at agner.ch
Wed Mar 18 03:08:14 PDT 2015


From: Stefan Agner <stefan.agner at toradex.com>

This adds a recipe for the forked version of the MCC kernel module. The
fork includes changes to compile and run the module with the 3.18 based
kernel provided by linux-toradex_3.18.bb.

The forked version requires the functionality of the SEMA4 and MSCM
CPU2CPU interrupts exported by the kernel through some Vybrid specific
symbols:
- mscm_request_cpu2cpu_irq
- mscm_free_cpu2cpu_irq
- mscm_trigger_cpu2cpu_irq
- mvf_sema4_assign
- mvf_sema4_deassign

Currently, those symbols are provided by the Toradex Linux kernel only
(linux-toradex_3.18.bb).

Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
---
Not sure this is the right approach to support this fork properly in
meta-fsl-arm/-extra. We could probably also just solve the issue
through versions, and create dependencies on version (e.g. the
Toradex kernel would require a kernel-module-mcc > 1.07....?)
However, this would require Timesys to apply our changes in their
tree again and then create a new release first.

Note that this is likely not the last change to the kernel module,
for instance the SEMA4 driver could be modelled as a proper hwspinlock
driver...

 conf/machine/colibri-vf.conf                         |  2 ++
 conf/machine/pcl052.conf                             |  2 ++
 conf/machine/pcm052.conf                             |  2 ++
 conf/machine/quartz.conf                             |  2 ++
 .../kernel-module-mcc-toradex_1.06+toradex.bb        | 20 ++++++++++++++++++++
 5 files changed, 28 insertions(+)
 create mode 100644 recipes-kernel/kernel-module-mcc-toradex/kernel-module-mcc-toradex_1.06+toradex.bb

diff --git a/conf/machine/colibri-vf.conf b/conf/machine/colibri-vf.conf
index 92d5fd8..2c39b5b 100644
--- a/conf/machine/colibri-vf.conf
+++ b/conf/machine/colibri-vf.conf
@@ -18,6 +18,8 @@ MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-image kernel-devicetree"
 
 PREFERRED_PROVIDER_u-boot = "u-boot-toradex"
 PREFERRED_PROVIDER_virtual/bootloader = "u-boot-toradex"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc = "kernel-module-mcc-toradex"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev = "kernel-module-mcc-toradex"
 
 # U-Boot NAND binary includes 0x400 padding required for NAND boot
 UBOOT_BINARY = "u-boot-nand.imx"
diff --git a/conf/machine/pcl052.conf b/conf/machine/pcl052.conf
index cc6f9af..c0034d9 100644
--- a/conf/machine/pcl052.conf
+++ b/conf/machine/pcl052.conf
@@ -10,6 +10,8 @@ include conf/machine/include/tune-cortexa5.inc
 SOC_FAMILY = "vf:vf60"
 
 PREFERRED_PROVIDER_virtual/kernel = "linux-timesys"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc ?= "kernel-module-mcc"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?= "kernel-module-mcc"
 PREFERRED_PROVIDER_u-boot = "u-boot-timesys"
 
 UBOOT_MACHINE = "pcl052_config"
diff --git a/conf/machine/pcm052.conf b/conf/machine/pcm052.conf
index b57e477..cc96803 100644
--- a/conf/machine/pcm052.conf
+++ b/conf/machine/pcm052.conf
@@ -10,6 +10,8 @@ include conf/machine/include/tune-cortexa5.inc
 SOC_FAMILY = "vf:vf60"
 
 PREFERRED_PROVIDER_virtual/kernel = "linux-timesys"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc ?= "kernel-module-mcc"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?= "kernel-module-mcc"
 PREFERRED_PROVIDER_u-boot = "u-boot-timesys"
 
 UBOOT_MACHINE = "pcm052_config"
diff --git a/conf/machine/quartz.conf b/conf/machine/quartz.conf
index 7762fc0..698dfd1 100644
--- a/conf/machine/quartz.conf
+++ b/conf/machine/quartz.conf
@@ -10,6 +10,8 @@ include conf/machine/include/tune-cortexa5.inc
 SOC_FAMILY = "vf:vf60"
 
 PREFERRED_PROVIDER_virtual/kernel = "linux-timesys"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc ?= "kernel-module-mcc"
+PREFERRED_PROVIDER_virtual/kernel-module-mcc-dev ?= "kernel-module-mcc"
 PREFERRED_PROVIDER_u-boot = "u-boot-timesys"
 
 # The quartz_nand_config target supports both SD and NAND boot.
diff --git a/recipes-kernel/kernel-module-mcc-toradex/kernel-module-mcc-toradex_1.06+toradex.bb b/recipes-kernel/kernel-module-mcc-toradex/kernel-module-mcc-toradex_1.06+toradex.bb
new file mode 100644
index 0000000..c169023
--- /dev/null
+++ b/recipes-kernel/kernel-module-mcc-toradex/kernel-module-mcc-toradex_1.06+toradex.bb
@@ -0,0 +1,20 @@
+# Copyright (C) 2015 Toradex AG
+# Copyright (C) 2013 Timesys Corporation
+SUMMARY = "Multicore communication kernel module for linux-toradex kernel"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c8959abcbbe4d6676c58eab9354019e6"
+
+PROVIDES = "virtual/kernel-module-mcc"
+RPROVIDES_${PN} = "virtual/kernel-module-mcc"
+RPROVIDES_${PN}-dev = "virtual/kernel-module-mcc-dev"
+
+inherit module
+
+SRC_URI = "git://github.com/toradex/mcc-kmod.git;protocol=git;branch=${SRCBRANCH}"
+
+SRCBRANCH = "master"
+SRCREV = "6a089386787e0540c30cc12fe774f3481c82051c"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_MACHINE = "(vf60)"
-- 
1.9.3



More information about the meta-freescale mailing list