From 3b62b79a1d96bc7025edccb2997db7d4397cf633 Mon Sep 17 00:00:00 2001 From: Peng Yang Date: Wed, 6 Jul 2022 04:54:57 -0700 Subject: [PATCH] build: config: Adding build configs for vm and pineapple tuivm Add build related configs for vm and pineapple tuivm. This is just snapshot of kalama's vm build config from 'commit 5beb98404269 ("Merge "i3c: i3c-master-msm-geni: Fix IBI for invalid device OR handler"")'from msm-5.15 branch. Change-Id: Ib50008461b1a22d4018e74185375f06acf93ffd3 Signed-off-by: Peng Yang --- build.config.msm.common | 12 ++++++++ build.config.msm.pineapple.tuivm | 9 ++++++ build.config.msm.pineapple.vm | 45 +++++++++++++++++++++++++++++ build.config.msm.vm | 49 ++++++++++++++++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 build.config.msm.pineapple.tuivm create mode 100644 build.config.msm.pineapple.vm create mode 100644 build.config.msm.vm diff --git a/build.config.msm.common b/build.config.msm.common index b32abb51b8ad..4c58c8b02bc0 100644 --- a/build.config.msm.common +++ b/build.config.msm.common @@ -207,6 +207,18 @@ if [ ! -z $DTB_IMG_CREATE ] && [ ! $DTB_IMG_CREATE -eq "0" ]; then append_cmd DIST_CMDS 'make_dtb_img' fi +################################################################################ +## Cating all the DTBs and create a dtb.img for a virtual machine +function make_vm_dtb_img() { + mkdir -p ${DIST_DIR}/ + for i in "${!MKDTIMGDTBS[@]}"; do + mkdtboimg.py create ${DIST_DIR}/${i}-dtb.img --page_size=${PAGE_SIZE} ${DIST_DIR}/${MKDTIMGDTBS[$i]}*.dtb + done +} +if [ -n "$VM_DTB_IMG_CREATE" ] && [ ! "$VM_DTB_IMG_CREATE" -eq "0" ]; then + append_cmd DIST_CMDS 'make_vm_dtb_img' +fi + ################################################################################ ## Miscellaneous if [ -n "${EXTRA_CONFIGS}" ]; then diff --git a/build.config.msm.pineapple.tuivm b/build.config.msm.pineapple.tuivm new file mode 100644 index 000000000000..81c187010ad1 --- /dev/null +++ b/build.config.msm.pineapple.tuivm @@ -0,0 +1,9 @@ +################################################################################ +## Inheriting MSM configs +. ${KERNEL_DIR}/build.config.msm.pineapple.vm +################################################################################ + +MKDTIMGDTBS=() +MKDTIMGDTBS["pineapple_tuivm"]="pineapple-vm" + +################################################################################ diff --git a/build.config.msm.pineapple.vm b/build.config.msm.pineapple.vm new file mode 100644 index 000000000000..652aac9b7c4c --- /dev/null +++ b/build.config.msm.pineapple.vm @@ -0,0 +1,45 @@ +################################################################################ +## Inheriting configs from ACK +. ${ROOT_DIR}/common/build.config.common +. ${ROOT_DIR}/common/build.config.aarch64 + +################################################################################ +## Variant setup +MSM_ARCH=pineapple_tuivm +VARIANTS=(defconfig debug_defconfig) +[ -z "${VARIANT}" ] && VARIANT=debug_defconfig + +if [ -e "${ROOT_DIR}/msm-kernel" -a "${KERNEL_DIR}" = "common" ]; then + KERNEL_DIR="msm-kernel" +fi + +BOOT_IMAGE_HEADER_VERSION=3 +BASE_ADDRESS=0x80000000 +PAGE_SIZE=4096 +VM_DTB_IMG_CREATE=1 + +declare -A MKDTIMGDTBS + +################################################################################ +## Define TUI VM parameters +TUIVM_KERNEL_OFFSET=0x0 +TUIVM_DTB_OFFSET=0x2000000 +TUIVM_RAMDISK_OFFSET=0x2100000 + +MKDTIMGDTBS["pineapple_tuivm"]="pineapple-vm" + +################################################################################ +## Define OEM VM parameters +OEMVM_KERNEL_OFFSET=0x0 +OEMVM_DTB_OFFSET=0x2000000 +OEMVM_RAMDISK_OFFSET=0x2100000 + +MKDTIMGDTBS["pineapple_oemvm"]="pineapple-oemvm" + +VM_SIZE_EXT4=270000000 +DUMMY_IMG_SIZE=4096 + +################################################################################ +## Inheriting MSM configs +. ${KERNEL_DIR}/build.config.msm.common +. ${KERNEL_DIR}/build.config.msm.vm diff --git a/build.config.msm.vm b/build.config.msm.vm new file mode 100644 index 000000000000..5b1aa21077c8 --- /dev/null +++ b/build.config.msm.vm @@ -0,0 +1,49 @@ +################################################################################ +# Common configuration for building kernel for Virtual Machines +DEFCONFIG="generic_vm_defconfig" +OPENSSL_DIR=${KERNEL_DIR}/../build/build-tools/path/linux-x86/openssl + +append_cmd POST_DEFCONFIG_CMDS 'update_signing_keys_config' + +function update_signing_keys_config() { + if test -f "${OPENSSL_DIR}"; then + ${OPENSSL_DIR} req -new -nodes -utf8 -newkey rsa:1024 -days 36500 \ + -batch -x509 -config ${KERNEL_DIR}/certs/qcom_x509.genkey \ + -outform PEM -out ${OUT_DIR}/verity_cert.pem -keyout ${OUT_DIR}/verity_key.pem + + ${OPENSSL_DIR} req -new -nodes -utf8 -sha256 -days 36500 \ + -batch -x509 -config ${KERNEL_DIR}/certs/qcom_x509.genkey \ + -outform PEM -out ${OUT_DIR}/signing_key.pem -keyout ${OUT_DIR}/signing_key.pem + + ${KERNEL_DIR}/scripts/config --file ${OUT_DIR}/.config \ + --set-str CONFIG_MODULE_SIG_KEY "${OUT_DIR}/signing_key.pem" \ + --set-str CONFIG_SYSTEM_TRUSTED_KEYS "${OUT_DIR}/verity_cert.pem" + + (cd ${OUT_DIR} && \ + make ${CC_LD_ARG} O=${OUT_DIR} ${MAKE_ARGS} olddefconfig) + fi +} + +append_cmd POST_KERNEL_BUILD_CMDS 'move_signing_keys' + +function move_signing_keys() { + cp ${OUT_DIR}/signing_key.pem ${OUT_DIR}/certs + cp ${OUT_DIR}/verity_key.pem ${OUT_DIR}/certs + cp ${OUT_DIR}/verity_cert.pem ${OUT_DIR}/certs +} + +function build_defconfig_fragments() { + if [[ "${VARIANT}" =~ ^(defconfig|debug_defconfig)$ ]]; then + apply_defconfig_fragment ${KERNEL_DIR}/arch/${ARCH}/configs/vendor/${MSM_ARCH}.config vendor/${MSM_ARCH}_defconfig + + if [ "${VARIANT}" = defconfig ]; then + return + fi + + apply_defconfig_fragment ${KERNEL_DIR}/arch/${ARCH}/configs/vendor/${MSM_ARCH}_debug.config vendor/${MSM_ARCH}-debug_defconfig + else + echo "Variant '${VARIANT}' unsupported by gki" + exit 1 + fi +} +build_defconfig_fragments