# Copyright (C) 2013-2018 Digi International SUMMARY = "Linux kernel for Digi boards" DEPENDS += "lzop-native bc-native" DEPENDS += "${@base_conditional('TRUSTFENCE_SIGN', '1', 'trustfence-sign-tools-native', '', d)}" inherit kernel fsl-kernel-localversion require recipes-kernel/linux/linux-dey-src.inc # Use custom provided 'defconfig' if variable KERNEL_DEFCONFIG is cleared SRC_URI += "${@base_conditional('KERNEL_DEFCONFIG', '', 'file://defconfig', '', d)}" do_deploy[postfuncs] += "${@base_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}" # Sign/encrypt the kernel images for type in ${KERNEL_IMAGETYPES}; do KERNEL_IMAGE="${type}-${KERNEL_IMAGE_BASE_NAME}.bin" TMP_KERNEL_IMAGE_SIGNED="$(mktemp ${KERNEL_IMAGE}-signed.XXXXXX)" trustfence-sign-kernel.sh -p "${DIGI_FAMILY}" -l "${KERNEL_IMAGE}" "${TMP_KERNEL_IMAGE_SIGNED}" 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}"` for type in ${KERNEL_IMAGETYPES}; do DTB_IMAGE="$(echo ${type}-${KERNEL_IMAGE_BASE_NAME} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g").${DTB_EXT}" TMP_DTB_IMAGE_SIGNED="$(mktemp ${DTB_IMAGE}-signed.XXXXXX)" trustfence-sign-kernel.sh -p "${DIGI_FAMILY}" -d "${DTB_IMAGE}" "${TMP_DTB_IMAGE_SIGNED}" mv "${TMP_DTB_IMAGE_SIGNED}" "${DTB_IMAGE}" done done } trustfence_sign[dirs] = "${DEPLOYDIR}" do_deploy[vardeps] += "TRUSTFENCE_SIGN_KEYS_PATH TRUSTFENCE_KEY_INDEX TRUSTFENCE_DEK_PATH" FILES_kernel-image += "/boot/config-${KERNEL_VERSION}" # Don't include kernels in standard images RDEPENDS_kernel-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