|
| 1 | +SECTION = "kernel" |
| 2 | + |
| 3 | +DESCRIPTION = "Linux ${PV} staging kernel for QCOM devices" |
| 4 | +LICENSE = "GPL-2.0-only" |
| 5 | +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" |
| 6 | + |
| 7 | +inherit kernel |
| 8 | + |
| 9 | +COMPATIBLE_MACHINE = "(qcom)" |
| 10 | + |
| 11 | +LINUX_QCOM_GIT ?= "git://git.codelinaro.org/clo/la/kernel/qcom.git;protocol=https" |
| 12 | +SRCBRANCH ?= "qclinux.6.12.y" |
| 13 | +SRC_URI = "${LINUX_QCOM_GIT};branch=${SRCBRANCH}" |
| 14 | + |
| 15 | +# To build bleeding edge qcom staging kernel set preferred |
| 16 | +# provider of virtual/kernel to 'linux-qcom-staging-tip' |
| 17 | +BBCLASSEXTEND = "devupstream:target" |
| 18 | +PN:class-devupstream = "linux-qcom-staging-tip" |
| 19 | +SRCREV:class-devupstream = "${AUTOREV}" |
| 20 | + |
| 21 | +SRCREV = "10325dc2277dc03687683b9f5f57a472b37de0b4" |
| 22 | +PV = "6.12+git" |
| 23 | + |
| 24 | +S = "${WORKDIR}/git" |
| 25 | + |
| 26 | +KERNEL_CONFIG ?= "qcom_defconfig" |
| 27 | + |
| 28 | +# Additional fragment for qcom value add features |
| 29 | +KERNEL_CONFIG_FRAGMENTS += " ${S}/arch/arm64/configs/qcom_addons.config" |
| 30 | + |
| 31 | +do_configure:prepend() { |
| 32 | + if [ ! -f "${S}/arch/${ARCH}/configs/${KERNEL_CONFIG}" ]; then |
| 33 | + bbfatal "KERNEL_CONFIG '${KERNEL_CONFIG}' was specified, but not present in the source tree" |
| 34 | + else |
| 35 | + cp '${S}/arch/${ARCH}/configs/${KERNEL_CONFIG}' '${B}/.config' |
| 36 | + fi |
| 37 | + |
| 38 | + # Check for kernel config fragments. The assumption is that the config |
| 39 | + # fragment will be specified with the absolute path. For example: |
| 40 | + # * ${WORKDIR}/config1.cfg |
| 41 | + # * ${S}/config2.cfg |
| 42 | + # Iterate through the list of configs and make sure that you can find |
| 43 | + # each one. If not then error out. |
| 44 | + # NOTE: If you want to override a configuration that is kept in the kernel |
| 45 | + # with one from the OE meta data then you should make sure that the |
| 46 | + # OE meta data version (i.e. ${WORKDIR}/config1.cfg) is listed |
| 47 | + # after the in kernel configuration fragment. |
| 48 | + # Check if any config fragments are specified. |
| 49 | + if [ ! -z "${KERNEL_CONFIG_FRAGMENTS}" ] |
| 50 | + then |
| 51 | + for f in ${KERNEL_CONFIG_FRAGMENTS} |
| 52 | + do |
| 53 | + # Check if the config fragment was copied into the WORKDIR from |
| 54 | + # the OE meta data |
| 55 | + if [ ! -e "$f" ] |
| 56 | + then |
| 57 | + echo "Could not find kernel config fragment $f" |
| 58 | + exit 1 |
| 59 | + fi |
| 60 | + done |
| 61 | + |
| 62 | + # Now that all the fragments are located merge them. |
| 63 | + ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 ) |
| 64 | + fi |
| 65 | +} |
0 commit comments