[meta-freescale] [PATCH 13/24] dpdk: Upgrade from version 17.11 to 18.11

C.r. Guo chunrong.guo at nxp.com
Fri Jul 5 01:43:51 PDT 2019


From: Chunrong Guo <chunrong.guo at nxp.com>

*update to lsdk 1906 tag
include the following changes:
0123ced - Merge pull request #966 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq
9e58741 - Merge pull request #965 in GITAM/dpdk from 18.11-qoriq-dev-ppfe to 18.11-qoriq-dev
87b8c52 - net/ppfe: add checksum offload in capability
ae172a2 - bus/dpaa: fix incorrect rte_free of malloc memory
866adf5 - Merge pull request #961 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq
0b36cdd - Merge pull request #953 in GITAM/dpdk from DPDK-1790 to 18.11-qoriq-dev
7dfce10 - PVT: nxp: supress warnings from performance script
4e26967 - PVT: nxp/README: update with loopback and no prefetch devargs option
71f3ebd - PVT: net/dpaa2: add optional non-prefetch rx mode
025c689 - PVT: eth/dpaa2: reset frc and ctrl in sg tx fd
6e8d2fe - net/ppfe: fix no ports available issue
28bfd64 - PVT: examples: l3fwd: Fix spec creation for traffic split scenario
279901c - Merge pull request #946 in GITAM/dpdk from DPDK-1799-pdcp-security to 18.11-qoriq-dev
066ff8d - crypto/dpaa_sec: update dpovrd for hfn override in PDCP
73c6c39 - Merge pull request #947 in GITAM/dpdk from DPDK-1795-ecpri to 18.11-qoriq-dev
ef48961 - bus/dpaa: fix static initialization to 0
29235c3 - Merge pull request #948 in GITAM/dpdk from 18.11-qoriq-dev to 18.11-qoriq
c3a19c0 - PVT: test: restructure PDCP test cases into new file
627fc3d - Merge pull request #943 in GITAM/dpdk from feature/DPDK-1595-ovs-2.11-migration to 18.11-qoriq-dev
7b9db20 - PVT: examples/l3fwd: add support for ethtype based traffic splitting

Signed-off-by: Chunrong Guo <chunrong.guo at nxp.com>
---
 recipes-extended/dpdk/dpdk.inc                     | 121 +++++++++++++++++++++
 .../dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch     |  28 +++++
 .../dpdk/0001-add-Wno-cast-function-type.patch     |   2 +-
 .../dpdk/dpdk/0004-update-WERROR_FLAGS.patch       |  41 +++++++
 recipes-extended/dpdk/dpdk_17.11.bb                | 107 ------------------
 recipes-extended/dpdk/dpdk_18.11.bb                |   7 ++
 6 files changed, 198 insertions(+), 108 deletions(-)
 create mode 100644 recipes-extended/dpdk/dpdk.inc
 create mode 100644 recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch
 create mode 100644 recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch
 delete mode 100644 recipes-extended/dpdk/dpdk_17.11.bb
 create mode 100644 recipes-extended/dpdk/dpdk_18.11.bb

diff --git a/recipes-extended/dpdk/dpdk.inc b/recipes-extended/dpdk/dpdk.inc
new file mode 100644
index 0000000..d70932c
--- /dev/null
+++ b/recipes-extended/dpdk/dpdk.inc
@@ -0,0 +1,121 @@
+DESCRIPTION = "Data Plane Development Kit"
+HOMEPAGE = "http://dpdk.org"
+LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2"
+LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492"
+
+SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \
+           file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
+           file://0001-add-Wno-cast-function-type.patch \
+           file://0001-Add-RTE_KERNELDIR_OUT.patch \
+           file://0004-update-WERROR_FLAGS.patch \
+"
+SRCREV = "0123ced10233e7de8a72f743e2ae7e9791124f07"
+
+# Don't use the default value of datadir and let the dpdk set it to a dpdk
+# specific directory
+datadir[unexport] = "1"
+
+RDEPENDS_${PN} += "python-subprocess"
+DEPENDS = "virtual/kernel openssl"
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit module
+
+export MODULE_DIR="/lib/modules/${KERNEL_VERSION}/kernel/drivers/net"
+export RTE_SDK = "${S}"
+export RTE_TARGET = "${ARCH}-dpaa-linuxapp-gcc"
+export ICP_ROOT = "${PKG_CONFIG_SYSROOT_DIR}/usr/include"
+export ICP_LIB_ROOT= "${PKG_CONFIG_SYSROOT_DIR}/usr/lib"
+export RTE_KERNELDIR = "${STAGING_KERNEL_DIR}"
+export RTE_KERNELDIR_OUT = "${STAGING_KERNEL_BUILDDIR}"
+export INSTALL_PATH = "${prefix}/share/dpdk"
+export RTE_OUTPUT = "${S}/${RTE_TARGET}"
+export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
+export SYSROOTPATH = "--sysroot=${STAGING_DIR_HOST}"
+export ICP_LAC_API_DIR = "${STAGING_DIR_TARGET}${includedir}/lac"
+export OPENSSL_PATH = "${STAGING_DIR_HOST}"
+export EXAMPLES_BUILD_DIR = "${RTE_TARGET}"
+
+S = "${WORKDIR}/git"
+
+do_configure () {
+	#############################################################
+	### default value for prefix is "usr", unsetting it, so it
+	### will not be concatenated in ${RTE_TARGET}/Makefile
+	### which will cause compilation failure
+	#############################################################
+	unset prefix
+
+	make O=$RTE_TARGET T=$RTE_TARGET config
+}
+
+do_compile () {
+	unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
+
+	cd ${S}/${RTE_TARGET}
+	oe_runmake  CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y \
+	            CONFIG_RTE_LIBRTE_PMD_OPENSSL=y \
+                   EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" \
+		   EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+		   CROSS="${TARGET_PREFIX}" \
+		   prefix=""  LDFLAGS="${TUNE_LDARGS}"  WERROR_FLAGS="-w" V=1
+
+	cd ${S}/examples/
+        for APP in l2fwd l3fwd cmdif l2fwd-qdma l2fwd-crypto ipsec-secgw vhost kni ip_fragmentation ip_reassembly; do
+            temp=`basename ${APP}`
+            if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then
+	        oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
+		       EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+		       CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}"
+            else
+                oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu -fuse-ld=bfd" \
+                       EXTRA_CFLAGS="${HOST_CC_ARCH} ${TOOLCHAIN_OPTIONS} -I${STAGING_INCDIR}" \
+                       CROSS="${TARGET_PREFIX}" -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y O="${S}/examples/${temp}/"
+            fi
+        done
+
+}
+
+do_install () {
+	oe_runmake O=${RTE_OUTPUT} T= install-runtime DESTDIR=${D}
+	oe_runmake O=${RTE_OUTPUT} T= install-kmod DESTDIR=${D} kerneldir=${MODULE_DIR}
+	oe_runmake O=${RTE_OUTPUT} T= install-sdk DESTDIR=${D}
+
+	# Install examples
+        install -d 0644 ${D}/usr/share/dpdk/cmdif/include
+        install -d 0644 ${D}/usr/share/dpdk/cmdif/lib
+        cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \
+            examples/cmdif/lib/shbp/fsl_shbp.h      ${D}/usr/share/dpdk/cmdif/include
+        cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/usr/share/dpdk/cmdif/lib
+        install -d 0644 ${D}/usr/share/dpdk/examples/ipsec_secgw
+	cp -r ${S}/examples/ipsec-secgw/*.cfg  ${D}/usr/share/dpdk/examples/ipsec_secgw
+        cp -rf ${S}/nxp/* ${D}/usr/share/dpdk
+}
+
+PACKAGES += "${PN}-examples"
+
+FILES_${PN}-dbg += " \
+	${INSTALL_PATH}/.debug \
+	${INSTALL_PATH}/examples/*/.debug \
+	"
+FILES_${PN}-staticdev += "/usr/share/dpdk/cmdif/lib/*.a \
+"
+FILES_${PN}-dev += " \
+	${INSTALL_PATH}/${RTE_TARGET}/.config \
+	${includedir} \
+	${includedir}/${ARCHDIR} \
+	${includedir}/exec-env \
+	${INSTALL_PATH}/buildtools/ \
+	${INSTALL_PATH}/${RTE_TARGET}/include \
+	${INSTALL_PATH}/${RTE_TARGET}/lib \
+	${INSTALL_PATH}/mk \
+	"
+
+FILES_${PN} += " ${INSTALL_PATH}/ \
+		 ${prefix}/sbin/ \
+		 ${prefix}/bin/ \
+		 ${libdir}/ \
+		 "
+FILES_${PN}-examples += " \
+	${INSTALL_PATH}/examples/* \
+	"
diff --git a/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch b/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch
new file mode 100644
index 0000000..20a05c4
--- /dev/null
+++ b/recipes-extended/dpdk/dpdk/0001-Add-RTE_KERNELDIR_OUT.patch
@@ -0,0 +1,28 @@
+From 4ea737c1d5a185d56ee1d6da18172b389ea90760 Mon Sep 17 00:00:00 2001
+From: Chunrong Guo <chunrong.guo at nxp.com>
+Date: Wed, 3 Jul 2019 08:50:45 +0200
+Subject: [PATCH] Add RTE_KERNELDIR_OUT
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: C.r. Guo <nxa13725 at lsv07004.swis.us-cdc01.nxp.com>
+---
+ kernel/linux/kni/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile
+index 282be7b..dfbebdc 100644
+--- a/kernel/linux/kni/Makefile
++++ b/kernel/linux/kni/Makefile
+@@ -20,7 +20,7 @@ MODULE_CFLAGS += -Wall -Werror
+ 
+ ifeq ($(DISTRIB_ID),Ubuntu)
+ MODULE_CFLAGS += -DUBUNTU_RELEASE_CODE=$(subst .,,$(DISTRIB_RELEASE))
+-UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR)/include/generated/utsrelease.h \
++UBUNTU_KERNEL_CODE := $(shell echo `grep UTS_RELEASE $(RTE_KERNELDIR_OUT)/include/generated/utsrelease.h \
+ 	 | cut -d '"' -f2 | cut -d- -f1,2 | tr .- ,`,1)
+ MODULE_CFLAGS += -D"UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION($(UBUNTU_KERNEL_CODE))"
+ endif
+-- 
+2.7.4
+
diff --git a/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch b/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch
index 0c84682..c074eac 100644
--- a/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch
+++ b/recipes-extended/dpdk/dpdk/0001-add-Wno-cast-function-type.patch
@@ -18,7 +18,7 @@ index d28badf..4e9851c 100644
  
  CFLAGS += -O3
 -CFLAGS += $(WERROR_FLAGS)
-+CFLAGS += $(WERROR_FLAGS) -Wno-cast-function-type
++CFLAGS += $(WERROR_FLAGS) -Wno-cast-function-type -Wno-missing-attributes
  CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib
  CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib/client
  CFLAGS += -I$(RTE_SDK)/examples/cmdif/lib/server
diff --git a/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch b/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch
new file mode 100644
index 0000000..672d976
--- /dev/null
+++ b/recipes-extended/dpdk/dpdk/0004-update-WERROR_FLAGS.patch
@@ -0,0 +1,41 @@
+From 3828a36fa537a187127a1c9b82ce2f5959b88367 Mon Sep 17 00:00:00 2001
+From: Chunrong Guo <chunrong.guo at nxp.com>
+Date: Thu, 4 Jul 2019 08:03:56 +0200
+Subject: [PATCH] update WERROR_FLAGS
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: C.r. Guo <nxa13725 at lsv07004.swis.us-cdc01.nxp.com>
+---
+ kernel/linux/kni/Makefile    | 2 +-
+ mk/toolchain/gcc/rte.vars.mk | 1 +
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/linux/kni/Makefile b/kernel/linux/kni/Makefile
+index dfbebdc..8b5c13e 100644
+--- a/kernel/linux/kni/Makefile
++++ b/kernel/linux/kni/Makefile
+@@ -14,7 +14,7 @@ MODULE = rte_kni
+ MODULE_CFLAGS += -I$(SRCDIR) --param max-inline-insns-single=50
+ MODULE_CFLAGS += -I$(RTE_OUTPUT)/include -I$(SRCDIR)/ethtool/ixgbe -I$(SRCDIR)/ethtool/igb
+ MODULE_CFLAGS += -include $(RTE_OUTPUT)/include/rte_config.h
+-MODULE_CFLAGS += -Wall -Werror
++MODULE_CFLAGS += -Wall -Werror -Wno-missing-attributes
+ 
+ -include /etc/lsb-release
+ 
+diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
+index aa94344..81efa1c 100644
+--- a/mk/toolchain/gcc/rte.vars.mk
++++ b/mk/toolchain/gcc/rte.vars.mk
+@@ -49,6 +49,7 @@ WERROR_FLAGS += -Wcast-align -Wnested-externs -Wcast-qual
+ WERROR_FLAGS += -Wformat-nonliteral -Wformat-security
+ WERROR_FLAGS += -Wundef -Wwrite-strings -Wdeprecated
+ WERROR_FLAGS += -Wno-error=pedantic
++WERROR_FLAGS += -Wno-address-of-packed-member 
+ 
+ ifeq ($(RTE_DEVEL_BUILD),y)
+ WERROR_FLAGS += -Werror
+-- 
+2.7.4
+
diff --git a/recipes-extended/dpdk/dpdk_17.11.bb b/recipes-extended/dpdk/dpdk_17.11.bb
deleted file mode 100644
index 2eceebe..0000000
--- a/recipes-extended/dpdk/dpdk_17.11.bb
+++ /dev/null
@@ -1,107 +0,0 @@
-DESCRIPTION = "Data Plane Development Kit"
-HOMEPAGE = "http://dpdk.org"
-LICENSE = "BSD-3-Clause & LGPLv2 & GPLv2"
-LIC_FILES_CHKSUM = "file://license/README;md5=3383def2d4c82237df281174e981a492"
-
-DEPENDS += "virtual/kernel openssl"
-RDEPENDS_${PN} = "bash python"
-RDEPENDS_${PN}-examples = "bash python-core"
-
-inherit module
-
-SRC_URI = "git://source.codeaurora.org/external/qoriq/qoriq-components/dpdk;nobranch=1 \
-    file://add-RTE_KERNELDIR_OUT-to-split-kernel-bu.patch \
-    file://0001-add-Wno-cast-function-type.patch \
-"
-SRCREV = "c0fe1b99b562a4015423e8ff748bfb0f55a68c05"
-
-S = "${WORKDIR}/git"
-
-DPAA_VER ?= "dpaa"
-export RTE_TARGET = "${ARCH}-${DPAA_VER}-linuxapp-gcc"
-export ETHTOOL_LIB_PATH = "${S}/examples/ethtool/lib/${RTE_TARGET}/"
-
-EXTRA_OEMAKE += 'ARCH="${ARCH}" CROSS="${TARGET_PREFIX}" \
-    CPU_CFLAGS="-fPIC --sysroot=${STAGING_DIR_HOST}" RTE_SDK="${S}" \
-    OPENSSL_PATH="${STAGING_DIR_HOST}" RTE_KERNELDIR="${STAGING_KERNEL_DIR}" \
-    RTE_KERNELDIR_OUT="${STAGING_KERNEL_BUILDDIR}" \
-'
-
-do_configure[noexec] = "1"
-
-do_compile[depends] += "virtual/kernel:do_shared_workdir"
-do_compile() {
-    oe_runmake O="${RTE_TARGET}" T="${RTE_TARGET}" config
-}
-
-do_install() {
-    unset LDFLAGS TARGET_LDFLAGS BUILD_LDFLAGS
-
-    oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu"  WERROR_FLAGS="-w" V=1  T="${RTE_TARGET}" DESTDIR="${D}" install CONFIG_RTE_EAL_IGB_UIO=n CONFIG_RTE_KNI_KMOD=y CONFIG_RTE_LIBRTE_PMD_OPENSSL=y 
-
-    # Build and install the DPDK examples
-    for APP in examples/l2fwd examples/l3fwd  examples/l2fwd-qdma examples/l2fwd-crypto examples/ipsec-secgw examples/kni examples/ip_fragmentation examples/ip_reassembly; do
-        temp=`basename ${APP}` 
-        if [ ${temp} = "ipsec-secgw" ] || [ ${temp} = "l2fwd-crypto" ]; then 
-            oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu"  -C ${APP} CONFIG_RTE_LIBRTE_PMD_OPENSSL=y
-        else 
-            oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu" EXTRA_CFLAGS="--sysroot=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" -C ${APP}
-        fi
-
-        [ ! -d ${D}/${bindir}/dpdk-example ] && install -d 0644 ${D}/${bindir}/dpdk-example
-        install -m 0755 ${S}/examples/`basename ${APP}`/build/`basename ${APP}` \
-            ${D}/${bindir}/dpdk-example/
-    done
-    oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu"  -C examples/vhost
-    install -m 0755 ${S}/examples/vhost/build/vhost-switch ${D}/${bindir}/dpdk-example/
-    oe_runmake EXTRA_LDFLAGS="-L${STAGING_LIBDIR} --hash-style=gnu"  -C examples/cmdif
-    
-    install -d 0644 ${D}/usr/share/dpdk/cmdif/include
-    install -d 0644 ${D}/usr/share/dpdk/cmdif/lib
-    cp examples/cmdif/lib/client/fsl_cmdif_client.h examples/cmdif/lib/server/fsl_cmdif_server.h \
-        examples/cmdif/lib/shbp/fsl_shbp.h      ${D}/usr/share/dpdk/cmdif/include 
-    cp examples/cmdif/lib/${RTE_TARGET}/librte_cmdif.a ${D}/usr/share/dpdk/cmdif/lib
-
-    install -m 0755 ${S}/${RTE_TARGET}/app/testpmd ${D}/${bindir}/dpdk-example/
-    rm -fr ${D}/lib/modules/*
-    install -d ${D}/lib/modules/${KERNEL_VERSION}/dpdk
-    install -m 0755 ${S}/${RTE_TARGET}/kmod/rte_kni.ko ${D}/lib/modules/${KERNEL_VERSION}/dpdk/
-    install -d ${D}/${bindir}/dpdk-example/extras
-    cp -rf  ${S}/nxp/* ${D}/${bindir}/dpdk-example/extras/
-    rm ${D}/${datadir}/${RTE_TARGET}/app/dpdk-pmdinfogen
-
-    chown root:root -R ${D}
-}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-PACKAGES += "${PN}-examples"
-
-FILES_${PN} += "${datadir}/* ${bindir}/* ${sbindir}/* /usr/share/dpdk/cmdif/include/*"
-FILES_${PN}-dbg += "${bindir}/dpdk-example/.debug \
-    ${datadir}/examples/kni/build/.debug \
-    ${datadir}/examples/kni/build/app/.debug \
-    ${datadir}/examples/l2fwd/build/.debug \
-    ${datadir}/examples/l2fwd/build/app/.debug \
-    ${datadir}/examples/l2fwd-crypto/build/.debug \
-    ${datadir}/examples/l2fwd-crypto/build/app/.debug \
-    ${datadir}/examples/l3fwd/build/.debug \
-    ${datadir}/examples/l3fwd/build/app/.debug \
-    ${datadir}/examples/ipsec-secgw/build/.debug \
-    ${datadir}/examples/ipsec-secgw/build/app/.debug \
-    ${datadir}/examples/ip_fragmentation/build/.debug \
-    ${datadir}/examples/ip_fragmentation/build/app/.debug \
-    ${datadir}/examples/ip_reassembly/build/.debug \
-    ${datadir}/examples/ip_reassembly/build/app/.debug \
-"
-FILES_${PN}-dev += "${datadir}/mk ${datadir}/scripts \
-    ${datadir}/${RTE_TARGET} \
-    ${includedir} \
-"
-FILES_${PN}-examples += "${datadir}/examples"
-
-FILES_${PN}-staticdev += "/usr/share/dpdk/cmdif/lib/*.a \ 
-    /usr/share/examples/cmdif/lib/arm64-dpaa-linuxapp-gcc/*.a \
-    /usr/share/examples/cmdif/lib/arm64-dpaa-linuxapp-gcc/lib/*.a \
-"
-COMPATIBLE_MACHINE = "(qoriq)"
diff --git a/recipes-extended/dpdk/dpdk_18.11.bb b/recipes-extended/dpdk/dpdk_18.11.bb
new file mode 100644
index 0000000..018feba
--- /dev/null
+++ b/recipes-extended/dpdk/dpdk_18.11.bb
@@ -0,0 +1,7 @@
+include dpdk.inc
+
+do_install_append () {
+    # Remove the unneeded dir
+    rm -rf ${D}/${INSTALL_PATH}/${RTE_TARGET}/app
+}
+
-- 
2.7.4



More information about the meta-freescale mailing list