2024-09-09 08:57:42 +00:00
|
|
|
inherit kernel
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
DESCRIPTION = "QuIC Linux Kernel"
|
|
|
|
LICENSE = "GPLv2"
|
|
|
|
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
|
2024-09-09 08:57:42 +00:00
|
|
|
COMPATIBLE_MACHINE = "(mdm9640|mdm9640-perf|mdm9607|mdm9607-perf|mdmcalifornium|apq8009)"
|
|
|
|
BASEMACHINE = "${@d.getVar('MACHINE', True).replace('-perf', '')}"
|
|
|
|
EXTRA_KERNEL_CMD_PARAMS ?= ""
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
# Default image type is zImage, change here if needed.
|
|
|
|
#KERNEL_IMAGETYPE = "zImage"
|
|
|
|
# Where built kernel lies in the kernel tree
|
|
|
|
#KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}"
|
|
|
|
#KERNEL_IMAGEDEST = "boot"
|
|
|
|
KERNEL_IMAGETYPE_FOR_MAKE = ""
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
# Provide a config baseline for things so the kernel will build...
|
2024-09-09 08:57:42 +00:00
|
|
|
KERNEL_DEFCONFIG = "mdm_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_mdmcalifornium = "mdm_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_mdmcalifornium-perf = "mdm-perf_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_apq8009 = "msm8909_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_mdm9607 = "mdm9607_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_mdm9607-perf = "mdm9607-perf_defconfig"
|
|
|
|
KERNEL_DEFCONFIG_mdm9607-psm = "mdm9607-128mb-perf_defconfig"
|
|
|
|
KERNEL_PRIORITY = "9001"
|
|
|
|
# Add V=1 to KERNEL_EXTRA_ARGS for verbose
|
|
|
|
KERNEL_EXTRA_ARGS += "O=${B}"
|
|
|
|
|
|
|
|
#PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
|
FILESPATH =+ "${WORKSPACE}:"
|
|
|
|
SRC_URI = "file://kernel"
|
|
|
|
SRC_DIR = "${WORKSPACE}/kernel"
|
|
|
|
S = "${WORKDIR}/kernel"
|
|
|
|
GITVER = "${@base_get_metadata_git_revision('${SRC_DIR}',d)}"
|
|
|
|
PV = "git-${GITVER}"
|
|
|
|
PR = "r3"
|
|
|
|
|
|
|
|
DEPENDS += "dtbtool-native mkbootimg-native"
|
|
|
|
PACKAGES = "kernel kernel-base kernel-vmlinux kernel-dev kernel-modules"
|
|
|
|
RDEPENDS_kernel-base = ""
|
|
|
|
|
|
|
|
# Put the zImage in the kernel-dev pkg
|
|
|
|
FILES_kernel-dev += "/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}"
|
2024-09-09 08:52:07 +00:00
|
|
|
|
|
|
|
do_configure () {
|
2024-09-09 08:57:42 +00:00
|
|
|
oe_runmake_call -C ${S} ARCH=${ARCH} ${KERNEL_EXTRA_ARGS} ${KERNEL_DEFCONFIG}
|
2024-09-09 08:52:07 +00:00
|
|
|
}
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
|
|
|
|
do_shared_workdir () {
|
|
|
|
cd ${B}
|
|
|
|
|
|
|
|
kerneldir=${STAGING_KERNEL_BUILDDIR}
|
|
|
|
install -d $kerneldir
|
|
|
|
|
|
|
|
#
|
|
|
|
# Store the kernel version in sysroots for module-base.bbclass
|
|
|
|
#
|
|
|
|
|
|
|
|
echo "${KERNEL_VERSION}" > $kerneldir/kernel-abiversion
|
|
|
|
|
|
|
|
# Copy files required for module builds
|
|
|
|
cp System.map $kerneldir/System.map-${KERNEL_VERSION}
|
|
|
|
cp Module.symvers $kerneldir/Module.symvers
|
|
|
|
cp Makefile $kerneldir/
|
|
|
|
cp .config $kerneldir/
|
|
|
|
cp -fR usr $kerneldir/
|
|
|
|
|
|
|
|
# Signing keys may not be present
|
|
|
|
[ -f signing_key.priv ] && cp signing_key.priv $kerneldir/
|
|
|
|
[ -f signing_key.x509 ] && cp signing_key.x509 $kerneldir/
|
|
|
|
|
|
|
|
# include/config
|
|
|
|
mkdir -p $kerneldir/include/config
|
|
|
|
cp include/config/kernel.release $kerneldir/include/config/kernel.release
|
|
|
|
cp include/config/auto.conf $kerneldir/include/config/auto.conf
|
|
|
|
|
|
|
|
# We can also copy over all the generated files and avoid special cases
|
|
|
|
# like version.h, but we've opted to keep this small until file creep starts
|
|
|
|
# to happen
|
|
|
|
if [ -e include/linux/version.h ]; then
|
|
|
|
mkdir -p $kerneldir/include/linux
|
|
|
|
cp include/linux/version.h $kerneldir/include/linux/version.h
|
2024-09-09 08:52:07 +00:00
|
|
|
fi
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
mkdir -p $kerneldir/include/generated/
|
|
|
|
cp -fR include/generated/* $kerneldir/include/generated/
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
if [ -d arch/${ARCH}/include ]; then
|
|
|
|
mkdir -p $kerneldir/arch/${ARCH}/include/
|
|
|
|
cp -fR arch/${ARCH}/include/* $kerneldir/arch/${ARCH}/include/
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d arch/${ARCH}/boot ]; then
|
|
|
|
mkdir -p $kerneldir/arch/${ARCH}/boot/
|
|
|
|
cp -fR arch/${ARCH}/boot/* $kerneldir/arch/${ARCH}/boot/
|
|
|
|
fi
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
if [ -d scripts ]; then
|
|
|
|
for i in \
|
|
|
|
scripts/basic/bin2c \
|
|
|
|
scripts/basic/fixdep \
|
|
|
|
scripts/conmakehash \
|
|
|
|
scripts/dtc/dtc \
|
|
|
|
scripts/kallsyms \
|
|
|
|
scripts/kconfig/conf \
|
|
|
|
scripts/mod/mk_elfconfig \
|
|
|
|
scripts/mod/modpost \
|
|
|
|
scripts/sign-file \
|
|
|
|
scripts/sortextable;
|
|
|
|
do
|
|
|
|
if [ -e $i ]; then
|
|
|
|
mkdir -p $kerneldir/`dirname $i`
|
|
|
|
cp $i $kerneldir/$i
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
fi
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
cp ${STAGING_KERNEL_DIR}/scripts/gen_initramfs_list.sh $kerneldir/scripts/
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
# Make vmlinux available as soon as possible
|
|
|
|
install -d ${STAGING_DIR_TARGET}/${KERNEL_IMAGEDEST}
|
|
|
|
install -m 0644 ${KERNEL_OUTPUT} ${STAGING_DIR_TARGET}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}
|
|
|
|
install -m 0644 vmlinux ${STAGING_DIR_TARGET}/${KERNEL_IMAGEDEST}/vmlinux-${KERNEL_VERSION}
|
|
|
|
install -m 0644 vmlinux ${STAGING_DIR_TARGET}/${KERNEL_IMAGEDEST}/vmlinux
|
2024-09-09 08:52:07 +00:00
|
|
|
}
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
do_install_append() {
|
|
|
|
oe_runmake_call -C ${STAGING_KERNEL_DIR} ARCH=${ARCH} CC="${KERNEL_CC}" LD="${KERNEL_LD}" headers_install O=${STAGING_KERNEL_BUILDDIR}
|
2024-09-09 08:52:07 +00:00
|
|
|
}
|
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
do_deploy () {
|
|
|
|
# Make bootimage
|
|
|
|
|
|
|
|
dtb_files=`find ${B}/arch/arm/boot/dts -iname *${MACHINE_DTS_NAME}*.dtb | awk -Fdts/ '{print $NF}' | awk -F[.][d] '{print $1}'`
|
|
|
|
|
|
|
|
# Create separate images with dtb appended to zImage for all targets.
|
|
|
|
for d in ${dtb_files}; do
|
|
|
|
#Strip qcom from the result if its present.
|
|
|
|
targets=`echo ${d#${MACHINE_DTS_NAME}-}| awk '{split($0,a, "/");print a[2]}'`
|
|
|
|
#If dtb are stored inside qcom then we need to search for them inside qcom, else inside dts.
|
|
|
|
qcom_check=`echo ${d}| awk '{split($0,a, "/");print a[1]}'`
|
|
|
|
if [ ${qcom_check} == "qcom" ]; then
|
|
|
|
cat ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${B}/arch/arm/boot/dts/${d}.dtb > ${B}/arch/arm/boot/dts/qcom/dtb-${KERNEL_IMAGETYPE}-${KERNEL_VERSION}-${targets}
|
|
|
|
${STAGING_BINDIR_NATIVE}/dtbtool ${B}/arch/arm/boot/dts/qcom/ -s ${PAGE_SIZE} -o ${D}/${KERNEL_IMAGEDEST}/masterDTB -p ${B}/scripts/dtc/ -v
|
|
|
|
else
|
|
|
|
cat ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${B}/arch/arm/boot/dts/${d}.dtb > ${B}/arch/arm/boot/dts/dtb-${KERNEL_IMAGETYPE}-${KERNEL_VERSION}-${targets}
|
|
|
|
${STAGING_BINDIR_NATIVE}/dtbtool ${B}/arch/arm/boot/dts/ -s ${PAGE_SIZE} -o ${D}/${KERNEL_IMAGEDEST}/masterDTB -p ${B}/scripts/dtc/ -v
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
mkdir -p ${DEPLOY_DIR_IMAGE}
|
|
|
|
cmdparams='noinitrd rw console=ttyHSL0,115200,n8 androidboot.hardware=qcom ehci-hcd.park=3 msm_rtb.filter=0x37 lpm_levels.sleep_disabled=1 ${EXTRA_KERNEL_CMD_PARAMS}'
|
|
|
|
|
|
|
|
# Updated base address according to new memory map.
|
|
|
|
${STAGING_BINDIR_NATIVE}/mkbootimg --kernel ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} \
|
|
|
|
--dt ${D}/${KERNEL_IMAGEDEST}/masterDTB \
|
|
|
|
--ramdisk /dev/null \
|
|
|
|
--cmdline "${cmdparams}" \
|
|
|
|
--pagesize ${PAGE_SIZE} \
|
|
|
|
--base ${MACHINE_KERNEL_BASE} \
|
|
|
|
--tags-addr ${MACHINE_KERNEL_TAGS_OFFSET} \
|
|
|
|
--ramdisk_offset 0x0 \
|
|
|
|
--output ${DEPLOY_DIR_IMAGE}/${MACHINE}-boot.img
|
2024-09-09 08:52:07 +00:00
|
|
|
|
2024-09-09 08:57:42 +00:00
|
|
|
}
|