From f8f8228d67b2bf2984bf345718a9bcf99deb9912 Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Fri, 28 Aug 2020 11:15:48 +0200 Subject: [PATCH] recipes-kernel: use Linux v5.4 on the ccimx6/6qp Remove all v4.9 recipes and build Linux using the same branch on all platforms. The .inc files were only needed because of the existence of multiple Linux versions, but that's not the case anymore, so remove them. https://jira.digi.com/browse/DEL-7221 Signed-off-by: Gabriel Valcazar --- meta-digi-arm/conf/machine/include/ccimx6.inc | 3 - .../recipes-kernel/linux/linux-dey-src.inc | 1 - .../recipes-kernel/linux/linux-dey.inc | 89 ------------------ .../recipes-kernel/linux/linux-dey_4.9.bb | 5 - .../recipes-kernel/linux/linux-dey_5.4.bb | 92 ++++++++++++++++++- .../linux/linux-imx-headers.inc | 54 ----------- .../linux/linux-imx-headers_4.9.bb | 5 - .../linux/linux-imx-headers_5.4.bb | 57 +++++++++++- 8 files changed, 143 insertions(+), 163 deletions(-) delete mode 100644 meta-digi-arm/recipes-kernel/linux/linux-dey.inc delete mode 100644 meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb delete mode 100644 meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc delete mode 100644 meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb diff --git a/meta-digi-arm/conf/machine/include/ccimx6.inc b/meta-digi-arm/conf/machine/include/ccimx6.inc index d646fa6f0..89abccc94 100644 --- a/meta-digi-arm/conf/machine/include/ccimx6.inc +++ b/meta-digi-arm/conf/machine/include/ccimx6.inc @@ -20,9 +20,6 @@ STORAGE_MEDIA = "mmc" # Wireless external module WIRELESS_MODULE ?= "" -# Use our recipe of linux-imx-headers instead of the meta-freescale one -PREFERRED_VERSION_linux-imx-headers ?= "4.9" - # Firmware MACHINE_FIRMWARE ?= "firmware-imx-sdma" MACHINE_FIRMWARE_append_mx6q = " firmware-imx-vpu-imx6q" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc b/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc index 3fe0b2f82..0774cb146 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey-src.inc @@ -5,7 +5,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" LOCALVERSION = "-dey" SRCBRANCH = "v5.4/dey-3.0/maint" -SRCBRANCH_ccimx6 = "v4.9/dey-2.6/maint" SRCREV = "${AUTOREV}" # Select internal or Github Linux repo diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey.inc b/meta-digi-arm/recipes-kernel/linux/linux-dey.inc deleted file mode 100644 index 07015ad45..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey.inc +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright (C) 2013-2018 Digi International - -SUMMARY = "Linux kernel for Digi boards" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" - -DEPENDS += "lzop-native bc-native" -DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" - -inherit kernel fsl-kernel-localversion - -require recipes-kernel/linux/linux-dey-src.inc -require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-virtualization.inc', '', d)} - -# Use custom provided 'defconfig' if variable KERNEL_DEFCONFIG is cleared -SRC_URI += "${@oe.utils.conditional('KERNEL_DEFCONFIG', '', 'file://defconfig', '', d)}" - -do_deploy[postfuncs] += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence_sign', '', d)}" - -trustfence_sign() { - # Set environment variables for trustfence configuration - export CONFIG_SIGN_KEYS_PATH="${TRUSTFENCE_SIGN_KEYS_PATH}" - [ -n "${TRUSTFENCE_KEY_INDEX}" ] && export CONFIG_KEY_INDEX="${TRUSTFENCE_KEY_INDEX}" - [ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && export CONFIG_DEK_PATH="${TRUSTFENCE_DEK_PATH}" - [ -n "${TRUSTFENCE_SIGN_MODE}" ] && export CONFIG_SIGN_MODE="${TRUSTFENCE_SIGN_MODE}" - - # Sign/encrypt the kernel images - for type in ${KERNEL_IMAGETYPES}; do - KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" - if [ "${type}" = "Image.gz" ]; then - # Sign the uncompressed Image - KERNEL_IMAGE=${WORKDIR}/build/arch/arm64/boot/Image - fi - - TMP_KERNEL_IMAGE_SIGNED="$(mktemp ${KERNEL_IMAGE}-signed.XXXXXX)" - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -l "${KERNEL_IMAGE}" "${TMP_KERNEL_IMAGE_SIGNED}" - - if [ "${type}" = "Image.gz" ]; then - # Compress the signed Image and restore the original filename - gzip "${TMP_KERNEL_IMAGE_SIGNED}" - mv "${TMP_KERNEL_IMAGE_SIGNED}.gz" "${TMP_KERNEL_IMAGE_SIGNED}" - KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" - fi - - mv "${TMP_KERNEL_IMAGE_SIGNED}" "${KERNEL_IMAGE}" - done - - # Sign/encrypt the device tree blobs - for DTB in ${KERNEL_DEVICETREE}; do - DTB=`normalize_dtb "${DTB}"` - DTB_EXT=${DTB##*.} - DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` - DTB_IMAGE="${DTB_BASE_NAME}-${KERNEL_IMAGE_NAME}.${DTB_EXT}" - - TMP_DTB_IMAGE_SIGNED="$(mktemp ${DTB_IMAGE}-signed.XXXXXX)" - if [ "${DTB_EXT}" = "dtbo" ]; then - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -o "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" - else - trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -d "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" - fi - mv "${TMP_DTB_IMAGE_SIGNED}" "${DTB_IMAGE}" - done -} -trustfence_sign[dirs] = "${DEPLOYDIR}" - -do_deploy[vardeps] += "TRUSTFENCE_SIGN_KEYS_PATH TRUSTFENCE_KEY_INDEX TRUSTFENCE_DEK_PATH" - -FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/config-${KERNEL_VERSION}" - -# Don't include kernels in standard images -RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" - -# A user can provide his own kernel 'defconfig' file by: -# - setting the variable KERNEL_DEFCONFIG to a custom kernel configuration file -# inside the kernel repository. -# - setting the variable KERNEL_DEFCONFIG to a kernel configuration file using -# the full path to the file. -# - clearing the variable KERNEL_DEFCONFIG and providing a kernel configuration -# file in the layer (in this case the file must be named 'defconfig'). -# Otherwise the default platform's kernel configuration file will be taken from -# the Linux source code tree. -do_copy_defconfig[vardeps] += "KERNEL_DEFCONFIG" -do_copy_defconfig[dirs] = "${S}" -do_copy_defconfig () { - if [ -n "${KERNEL_DEFCONFIG}" ]; then - cp -f ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig - fi -} -addtask copy_defconfig after do_patch before do_preconfigure diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb b/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb deleted file mode 100644 index 3669cb577..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey_4.9.bb +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2019 Digi International - -require recipes-kernel/linux/linux-dey.inc - -COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb b/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb index 5d06efec1..19dad04c0 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey_5.4.bb @@ -1,5 +1,91 @@ -# Copyright (C) 2020 Digi International +# Copyright (C) 2013-2020 Digi International -require recipes-kernel/linux/linux-dey.inc +SUMMARY = "Linux kernel for Digi boards" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m)" +DEPENDS += "lzop-native bc-native" +DEPENDS += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" + +inherit kernel fsl-kernel-localversion + +require recipes-kernel/linux/linux-dey-src.inc +require ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', 'linux-virtualization.inc', '', d)} + +# Use custom provided 'defconfig' if variable KERNEL_DEFCONFIG is cleared +SRC_URI += "${@oe.utils.conditional('KERNEL_DEFCONFIG', '', 'file://defconfig', '', d)}" + +do_deploy[postfuncs] += "${@oe.utils.conditional('TRUSTFENCE_SIGN', '1', 'trustfence_sign', '', d)}" + +trustfence_sign() { + # Set environment variables for trustfence configuration + export CONFIG_SIGN_KEYS_PATH="${TRUSTFENCE_SIGN_KEYS_PATH}" + [ -n "${TRUSTFENCE_KEY_INDEX}" ] && export CONFIG_KEY_INDEX="${TRUSTFENCE_KEY_INDEX}" + [ -n "${TRUSTFENCE_DEK_PATH}" ] && [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && export CONFIG_DEK_PATH="${TRUSTFENCE_DEK_PATH}" + [ -n "${TRUSTFENCE_SIGN_MODE}" ] && export CONFIG_SIGN_MODE="${TRUSTFENCE_SIGN_MODE}" + + # Sign/encrypt the kernel images + for type in ${KERNEL_IMAGETYPES}; do + KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" + if [ "${type}" = "Image.gz" ]; then + # Sign the uncompressed Image + KERNEL_IMAGE=${WORKDIR}/build/arch/arm64/boot/Image + fi + + TMP_KERNEL_IMAGE_SIGNED="$(mktemp ${KERNEL_IMAGE}-signed.XXXXXX)" + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -l "${KERNEL_IMAGE}" "${TMP_KERNEL_IMAGE_SIGNED}" + + if [ "${type}" = "Image.gz" ]; then + # Compress the signed Image and restore the original filename + gzip "${TMP_KERNEL_IMAGE_SIGNED}" + mv "${TMP_KERNEL_IMAGE_SIGNED}.gz" "${TMP_KERNEL_IMAGE_SIGNED}" + KERNEL_IMAGE="${type}-${KERNEL_IMAGE_NAME}.bin" + fi + + mv "${TMP_KERNEL_IMAGE_SIGNED}" "${KERNEL_IMAGE}" + done + + # Sign/encrypt the device tree blobs + for DTB in ${KERNEL_DEVICETREE}; do + DTB=`normalize_dtb "${DTB}"` + DTB_EXT=${DTB##*.} + DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` + DTB_IMAGE="${DTB_BASE_NAME}-${KERNEL_IMAGE_NAME}.${DTB_EXT}" + + TMP_DTB_IMAGE_SIGNED="$(mktemp ${DTB_IMAGE}-signed.XXXXXX)" + if [ "${DTB_EXT}" = "dtbo" ]; then + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -o "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" + else + trustfence-sign-artifact.sh -p "${DIGI_FAMILY}" -d "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" + fi + mv "${TMP_DTB_IMAGE_SIGNED}" "${DTB_IMAGE}" + done +} +trustfence_sign[dirs] = "${DEPLOYDIR}" + +do_deploy[vardeps] += "TRUSTFENCE_SIGN_KEYS_PATH TRUSTFENCE_KEY_INDEX TRUSTFENCE_DEK_PATH" + +FILES_${KERNEL_PACKAGE_NAME}-image += "/boot/config-${KERNEL_VERSION}" + +# Don't include kernels in standard images +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +# A user can provide his own kernel 'defconfig' file by: +# - setting the variable KERNEL_DEFCONFIG to a custom kernel configuration file +# inside the kernel repository. +# - setting the variable KERNEL_DEFCONFIG to a kernel configuration file using +# the full path to the file. +# - clearing the variable KERNEL_DEFCONFIG and providing a kernel configuration +# file in the layer (in this case the file must be named 'defconfig'). +# Otherwise the default platform's kernel configuration file will be taken from +# the Linux source code tree. +do_copy_defconfig[vardeps] += "KERNEL_DEFCONFIG" +do_copy_defconfig[dirs] = "${S}" +do_copy_defconfig () { + if [ -n "${KERNEL_DEFCONFIG}" ]; then + cp -f ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig + fi +} +addtask copy_defconfig after do_patch before do_preconfigure + +COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m|ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc deleted file mode 100644 index 6449c3c40..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers.inc +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 2017-2018 NXP -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "Installs i.MX-specific kernel headers" -DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ -New headers are installed in ${includedir}/imx." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" - -require recipes-kernel/linux/linux-dey-src.inc - -S = "${WORKDIR}/git" - -do_compile[noexec] = "1" - -IMX_UAPI_HEADERS = " \ - dma-buf.h \ - hantrodec.h \ - hx280enc.h \ - ion.h \ - ipu.h \ - isl29023.h \ - mxc_asrc.h \ - mxc_dcic.h \ - mxc_mlb.h \ - mxc_sim_interface.h \ - mxc_v4l2.h \ - mxcfb.h \ - pxp_device.h \ - pxp_dma.h \ - videodev2.h \ -" - -do_install() { - # We install all headers inside of B so we can copy only the - # whitelisted ones, and there is no risk of a new header to be - # installed by mistake. - oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix} - - # FIXME: The ion.h is still on staging so "promote" it for now - cp ${S}/drivers/staging/android/uapi/ion.h ${B}${includedir}/linux - - # Install whitelisted headers only - for h in ${IMX_UAPI_HEADERS}; do - install -D -m 0644 ${B}${includedir}/linux/$h \ - ${D}${includedir}/imx/linux/$h - done -} - -DEPENDS += "rsync-native" - -ALLOW_EMPTY_${PN} = "1" - -PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb deleted file mode 100644 index b2479c47f..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_4.9.bb +++ /dev/null @@ -1,5 +0,0 @@ -# Copyright (C) 2019 Digi International - -require recipes-kernel/linux/linux-imx-headers.inc - -COMPATIBLE_MACHINE = "(ccimx6)" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb index ee876eaf0..bf3d9eb6e 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb +++ b/meta-digi-arm/recipes-kernel/linux/linux-imx-headers_5.4.bb @@ -1,5 +1,56 @@ -# Copyright (C) 2020 Digi International +# Copyright 2017-2018 NXP +# Released under the MIT license (see COPYING.MIT for the terms) -require recipes-kernel/linux/linux-imx-headers.inc +SUMMARY = "Installs i.MX-specific kernel headers" +DESCRIPTION = "Installs i.MX-specific kernel headers to userspace. \ +New headers are installed in ${includedir}/imx." +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" -COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m)" +require recipes-kernel/linux/linux-dey-src.inc + +S = "${WORKDIR}/git" + +do_compile[noexec] = "1" + +IMX_UAPI_HEADERS = " \ + dma-buf.h \ + hantrodec.h \ + hx280enc.h \ + ion.h \ + ipu.h \ + isl29023.h \ + mxc_asrc.h \ + mxc_dcic.h \ + mxc_mlb.h \ + mxc_sim_interface.h \ + mxc_v4l2.h \ + mxcfb.h \ + pxp_device.h \ + pxp_dma.h \ + videodev2.h \ +" + +do_install() { + # We install all headers inside of B so we can copy only the + # whitelisted ones, and there is no risk of a new header to be + # installed by mistake. + oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix} + + # FIXME: The ion.h is still on staging so "promote" it for now + cp ${S}/drivers/staging/android/uapi/ion.h ${B}${includedir}/linux + + # Install whitelisted headers only + for h in ${IMX_UAPI_HEADERS}; do + install -D -m 0644 ${B}${includedir}/linux/$h \ + ${D}${includedir}/imx/linux/$h + done +} + +DEPENDS += "rsync-native" + +ALLOW_EMPTY_${PN} = "1" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8x|ccimx8m|ccimx6)"