From 29752454e1984039ba34c0c6f67f8606028e8a21 Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Lanka Date: Mon, 9 May 2022 14:39:25 -0700 Subject: [PATCH 1/4] build.config.msm.pineapple: Enable system_dlkm partition Enable system_dlkm.img generation and add modules list and blocklist related to system_dlkm. Change-Id: Ie6ceab1e8ecd2f5052121f5cb3471eca80116841 Signed-off-by: Vamsi Krishna Lanka --- build.config.msm.kalama | 3 +++ build.config.msm.pineapple | 3 +++ modules.systemdlkm_blocklist.msm.pineapple | 3 +++ 3 files changed, 9 insertions(+) create mode 100644 modules.systemdlkm_blocklist.msm.pineapple diff --git a/build.config.msm.kalama b/build.config.msm.kalama index 38d61d6038ce..f50138d90e18 100644 --- a/build.config.msm.kalama +++ b/build.config.msm.kalama @@ -14,6 +14,9 @@ BOOT_IMAGE_HEADER_VERSION=4 BASE_ADDRESS=0x80000000 PAGE_SIZE=4096 BUILD_VENDOR_DLKM=1 +BUILD_SYSTEM_DLKM=1 +SYSTEM_DLKM_MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules +SYSTEM_DLKM_MODULES_ORDER=android/gki_aarch64_modules SUPER_IMAGE_SIZE=0x10000000 TRIM_UNUSED_MODULES=1 BUILD_INIT_BOOT_IMG=1 diff --git a/build.config.msm.pineapple b/build.config.msm.pineapple index 960b7f8b54b2..b8e5196997ac 100644 --- a/build.config.msm.pineapple +++ b/build.config.msm.pineapple @@ -14,6 +14,9 @@ BOOT_IMAGE_HEADER_VERSION=4 BASE_ADDRESS=0x80000000 PAGE_SIZE=4096 BUILD_VENDOR_DLKM=1 +BUILD_SYSTEM_DLKM=1 +SYSTEM_DLKM_MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules +SYSTEM_DLKM_MODULES_ORDER=android/gki_aarch64_modules SUPER_IMAGE_SIZE=0x10000000 TRIM_UNUSED_MODULES=1 BUILD_INIT_BOOT_IMG=1 diff --git a/modules.systemdlkm_blocklist.msm.pineapple b/modules.systemdlkm_blocklist.msm.pineapple new file mode 100644 index 000000000000..85698d918b21 --- /dev/null +++ b/modules.systemdlkm_blocklist.msm.pineapple @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only +# Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved. + From 3b138f9259fb7830c0fc2c7001968232551b16cd Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Lanka Date: Mon, 9 May 2022 14:31:40 -0700 Subject: [PATCH 2/4] build.config.msm.common: Add support to generate system_dlkm.img Add support to create system_dlkm.img. When BUILD_SYSTEM_DLKM=1, gki modules are included in the super.img. Change-Id: I47dfe90890ae045e7c0c47319401258e3cc35f5c Signed-off-by: Vamsi Krishna Lanka --- build.config.msm.common | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/build.config.msm.common b/build.config.msm.common index 4c58c8b02bc0..62d6e11f248b 100644 --- a/build.config.msm.common +++ b/build.config.msm.common @@ -161,10 +161,23 @@ if [ -e "${KERNEL_DIR}/modules.blocklist.${CONFIG_TARGET}" ]; then VENDOR_DLKM_MODULES_BLOCKLIST="${KERNEL_DIR}/modules.blocklist.${CONFIG_TARGET}" fi +if [ "${BUILD_VENDOR_DLKM}" == "1" ]; then + COMBINED_MODULE_LIST=$(mktemp) +fi + +if [[ "${BUILD_SYSTEM_DLKM}" == "1" && ! -z "${SYSTEM_DLKM_MODULES_LIST}" ]]; then + { + awk -F'/' '{print $NF}' ${SYSTEM_DLKM_MODULES_LIST} + [ -f "${MODULES_LIST}" ] && cat "${MODULES_LIST}" + } > ${COMBINED_MODULE_LIST} +fi + function prepare_vendor_dlkm() { if [ -z "${VENDOR_DLKM_MODULES_LIST}" ]; then local module_list_flag= - if [ -e "${MODULES_LIST}" ]; then + if [ -s "${COMBINED_MODULE_LIST}" ]; then + module_list_flag="-f ${COMBINED_MODULE_LIST}" + elif [ -e "${MODULES_LIST}" ]; then module_list_flag="-f ${MODULES_LIST}" else module_list_flag="-e ''" @@ -175,8 +188,10 @@ function prepare_vendor_dlkm() { VENDOR_DLKM_MODULES_LIST="${MODULES_STAGING_DIR}/vendor_dlkm.modules.load" fi - SUPER_IMAGE_CONTENTS+="${DIST_DIR}/vendor_dlkm.img" + SUPER_IMAGE_CONTENTS+=("${DIST_DIR}/vendor_dlkm.img") + rm ${COMBINED_MODULE_LIST} } + if [ "${BUILD_VENDOR_DLKM}" == "1" ]; then append_cmd DIST_CMDS 'prepare_vendor_dlkm' if [ -e "${KERNEL_DIR}/modules.vendor_blocklist.${CONFIG_TARGET}" ]; then @@ -184,6 +199,18 @@ if [ "${BUILD_VENDOR_DLKM}" == "1" ]; then fi fi +function prepare_system_dlkm() { + if [ -e "${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" ]; then + SYSTEM_DLKM_MODULES_BLOCKLIST="${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" + cp $SYSTEM_DLKM_MODULES_BLOCKLIST ${DIST_DIR}/system_dlkm.modules.blocklist + fi + SUPER_IMAGE_CONTENTS+=("${DIST_DIR}/system_dlkm.img") +} + +if [ "${BUILD_SYSTEM_DLKM}" == "1" ]; then + append_cmd DIST_CMDS 'prepare_system_dlkm' +fi + KERNEL_BINARY=Image ################################################################################ @@ -222,7 +249,7 @@ fi ################################################################################ ## Miscellaneous if [ -n "${EXTRA_CONFIGS}" ]; then - for extra_config in "${EXTRA_CONFIGS}" + for extra_config in "${EXTRA_CONFIGS[@]}" do . ${extra_config} done From 352835c8499f78840be5a59a19d954de9413289f Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Lanka Date: Fri, 10 Jun 2022 12:38:48 -0700 Subject: [PATCH 3/4] build.config: Remove the generation of system_dlkm twice This commits avoids the generation of system_dlkm image in msm-kernel as it is already being generated in common kernel. Change-Id: I98a612ec611947f373e8facc29e407d74b832ca8 Signed-off-by: Vamsi Krishna Lanka --- build.config.msm.common | 17 ++++++++--------- build.config.msm.gki | 1 + build.config.msm.kalama | 3 +-- build.config.msm.pineapple | 3 +-- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/build.config.msm.common b/build.config.msm.common index 62d6e11f248b..fbdabbc5049e 100644 --- a/build.config.msm.common +++ b/build.config.msm.common @@ -165,7 +165,7 @@ if [ "${BUILD_VENDOR_DLKM}" == "1" ]; then COMBINED_MODULE_LIST=$(mktemp) fi -if [[ "${BUILD_SYSTEM_DLKM}" == "1" && ! -z "${SYSTEM_DLKM_MODULES_LIST}" ]]; then +if [[ "${PREPARE_SYSTEM_DLKM}" == "1" && ! -z "${SYSTEM_DLKM_MODULES_LIST}" ]]; then { awk -F'/' '{print $NF}' ${SYSTEM_DLKM_MODULES_LIST} [ -f "${MODULES_LIST}" ] && cat "${MODULES_LIST}" @@ -200,16 +200,15 @@ if [ "${BUILD_VENDOR_DLKM}" == "1" ]; then fi function prepare_system_dlkm() { - if [ -e "${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" ]; then - SYSTEM_DLKM_MODULES_BLOCKLIST="${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" - cp $SYSTEM_DLKM_MODULES_BLOCKLIST ${DIST_DIR}/system_dlkm.modules.blocklist + if [ "${PREPARE_SYSTEM_DLKM}" == "1" ]; then + if [ -e "${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" ]; then + SYSTEM_DLKM_MODULES_BLOCKLIST="${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" + cp $SYSTEM_DLKM_MODULES_BLOCKLIST ${DIST_DIR}/system_dlkm.modules.blocklist + fi + SUPER_IMAGE_CONTENTS+=("${DIST_DIR}/system_dlkm.img") fi - SUPER_IMAGE_CONTENTS+=("${DIST_DIR}/system_dlkm.img") } - -if [ "${BUILD_SYSTEM_DLKM}" == "1" ]; then - append_cmd DIST_CMDS 'prepare_system_dlkm' -fi +append_cmd DIST_CMDS 'prepare_system_dlkm' KERNEL_BINARY=Image diff --git a/build.config.msm.gki b/build.config.msm.gki index c80d4c2606a3..061b89286df0 100644 --- a/build.config.msm.gki +++ b/build.config.msm.gki @@ -34,6 +34,7 @@ function sanity_check_abi() { # In that case, turn on some options for trimming and strict mode # which would normally be disabled because they conflict with # mixed build + PREPARE_SYSTEM_DLKM=0 if [ "${VARIANT}" = gki ]; then TRIM_NONLISTED_KMI=1 KMI_SYMBOL_LIST_STRICT_MODE=1 diff --git a/build.config.msm.kalama b/build.config.msm.kalama index f50138d90e18..356cb96322c9 100644 --- a/build.config.msm.kalama +++ b/build.config.msm.kalama @@ -14,9 +14,8 @@ BOOT_IMAGE_HEADER_VERSION=4 BASE_ADDRESS=0x80000000 PAGE_SIZE=4096 BUILD_VENDOR_DLKM=1 -BUILD_SYSTEM_DLKM=1 +PREPARE_SYSTEM_DLKM=1 SYSTEM_DLKM_MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules -SYSTEM_DLKM_MODULES_ORDER=android/gki_aarch64_modules SUPER_IMAGE_SIZE=0x10000000 TRIM_UNUSED_MODULES=1 BUILD_INIT_BOOT_IMG=1 diff --git a/build.config.msm.pineapple b/build.config.msm.pineapple index b8e5196997ac..c0304ba0d4d5 100644 --- a/build.config.msm.pineapple +++ b/build.config.msm.pineapple @@ -14,9 +14,8 @@ BOOT_IMAGE_HEADER_VERSION=4 BASE_ADDRESS=0x80000000 PAGE_SIZE=4096 BUILD_VENDOR_DLKM=1 -BUILD_SYSTEM_DLKM=1 +PREPARE_SYSTEM_DLKM=1 SYSTEM_DLKM_MODULES_LIST=${ROOT_DIR}/${KERNEL_DIR}/android/gki_system_dlkm_modules -SYSTEM_DLKM_MODULES_ORDER=android/gki_aarch64_modules SUPER_IMAGE_SIZE=0x10000000 TRIM_UNUSED_MODULES=1 BUILD_INIT_BOOT_IMG=1 From 643f4e4c92c4983928b8d5eb315d6815eb1a8ede Mon Sep 17 00:00:00 2001 From: Vamsi Krishna Lanka Date: Fri, 24 Jun 2022 14:37:41 -0700 Subject: [PATCH 4/4] build.config: Add system_dlkm blocklist to vendor ramdisk Create a cpio with system_dlkm blocklist and add it to vendor_ramdisk. Change-Id: I3513eed0cb748939522e19a8a5ab979e66fd2b29 Signed-off-by: Vamsi Krishna Lanka --- build.config.msm.common | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build.config.msm.common b/build.config.msm.common index fbdabbc5049e..a53c846c8dbc 100644 --- a/build.config.msm.common +++ b/build.config.msm.common @@ -204,6 +204,17 @@ function prepare_system_dlkm() { if [ -e "${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" ]; then SYSTEM_DLKM_MODULES_BLOCKLIST="${KERNEL_DIR}/modules.systemdlkm_blocklist.${CONFIG_TARGET}" cp $SYSTEM_DLKM_MODULES_BLOCKLIST ${DIST_DIR}/system_dlkm.modules.blocklist + + if [ "${APPEND_SYSTEM_DLKM_BLOCKLIST_TO_VENDOR_RAMDISK}" == "1" ]; then + (cd ${DIST_DIR} && find -name system_dlkm.modules.blocklist | cpio -H newc -o) > ${DIST_DIR}/system_dlkm_blocklist.cpio + if [ -n "${TARGET_HAS_SEPARATE_RD}" ]; then + ${RAMDISK_COMPRESS} "${DIST_DIR}/system_dlkm_blocklist.cpio" >"${DIST_DIR}/system_dlkm_blocklist.${RAMDISK_EXT}" + cat "${DIST_DIR}/system_dlkm_blocklist.${RAMDISK_EXT}" >>"${VENDOR_RAMDISK_BINARY}" + else + VENDOR_RAMDISK_BINARY+=" ${DIST_DIR}/system_dlkm_blocklist.cpio" + fi + fi + fi SUPER_IMAGE_CONTENTS+=("${DIST_DIR}/system_dlkm.img") fi