[meta-freescale] [meta-fsl-arm][PATCH] linux-ls1: add support for kernel configuration fragments

b40527 at freescale.com b40527 at freescale.com
Tue Oct 14 00:50:11 PDT 2014


From: Zongchun Yu <Zongchun.Yu at freescale.com>

Using the metadata which is stored in recipe-space, and adding the .scc
files on the SRC_URI. BitBake can parses them and fetches any files
referenced in the .scc files by the include, patch, or kconf
commands. these commands can achieve kernel fragmentation configuration,
appliying patch and so on.

Signed-off-by: Zongchun Yu <Zongchun.Yu at freescale.com>
---
 recipes-kernel/linux/linux-ls1.inc                 | 27 ++++++++++++++++++++--
 .../linux/linux-ls1/{defconfig => base.cfg}        |  0
 recipes-kernel/linux/linux-ls1/base.scc            |  2 ++
 recipes-kernel/linux/linux-ls1_3.12.bb             |  1 -
 4 files changed, 27 insertions(+), 3 deletions(-)
 rename recipes-kernel/linux/linux-ls1/{defconfig => base.cfg} (100%)
 create mode 100644 recipes-kernel/linux/linux-ls1/base.scc

diff --git a/recipes-kernel/linux/linux-ls1.inc b/recipes-kernel/linux/linux-ls1.inc
index 19614fd..c68a2c5 100644
--- a/recipes-kernel/linux/linux-ls1.inc
+++ b/recipes-kernel/linux/linux-ls1.inc
@@ -1,13 +1,36 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
 
-inherit kernel fsl-kernel-localversion
+require recipes-kernel/linux/linux-yocto.inc
+SCMVERSION ??= "y"
 LOCALVERSION ?= "+ls1"
 
 SRC_URI = "git://git.freescale.com/layerscape/ls1021a/linux.git;branch=${SRCBRANCH} \
-    file://defconfig \
+    file://base.scc \
 "
 
 KERNEL_EXTRA_ARGS += "LOADADDR=${UBOOT_ENTRYPOINT}"
 
 S = "${WORKDIR}/git"
+
+kernel_conf_variable() {
+	if test "$2" = "n"
+	then
+		echo "# CONFIG_$1 is not set" >> ${B}/.config
+	else
+		echo "CONFIG_$1=$2" >> ${B}/.config
+	fi
+}
+
+do_configure_prepend() {
+	kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\""
+	kernel_conf_variable LOCALVERSION_AUTO y
+
+	if [ "${SCMVERSION}" = "y" ]; then
+		# Add GIT revision to the local version
+		cd source
+		head=`git rev-parse --verify --short HEAD 2> /dev/null`
+		cd -
+		printf "%s%s" +g $head > ${S}/.scmversion
+	fi
+}
diff --git a/recipes-kernel/linux/linux-ls1/defconfig b/recipes-kernel/linux/linux-ls1/base.cfg
similarity index 100%
rename from recipes-kernel/linux/linux-ls1/defconfig
rename to recipes-kernel/linux/linux-ls1/base.cfg
diff --git a/recipes-kernel/linux/linux-ls1/base.scc b/recipes-kernel/linux/linux-ls1/base.scc
new file mode 100644
index 0000000..cd12200
--- /dev/null
+++ b/recipes-kernel/linux/linux-ls1/base.scc
@@ -0,0 +1,2 @@
+# Force the base configuration
+force kconf non-hardware base.cfg
diff --git a/recipes-kernel/linux/linux-ls1_3.12.bb b/recipes-kernel/linux/linux-ls1_3.12.bb
index 7aa5bd8..2279c2e 100644
--- a/recipes-kernel/linux/linux-ls1_3.12.bb
+++ b/recipes-kernel/linux/linux-ls1_3.12.bb
@@ -3,7 +3,6 @@ DESCRIPTION = "Linux Kernel provided and supported by Freescale with focus on \
 Layerscape1 Family Boards. "
 
 require recipes-kernel/linux/linux-ls1.inc
-require recipes-kernel/linux/linux-dtb.inc
 
 SRCBRANCH = "ls1-dev"
 SRCREV = "de1cb4b3c16be38cf3981fd0afa143ad24283d07"
-- 
1.8.3.2



More information about the meta-freescale mailing list