summaryrefslogtreecommitdiff
authorHanjie Lin <hanjie.lin@amlogic.com>2020-11-17 02:05:22 (GMT)
committer Xindong Xu <xindong.xu@amlogic.com>2020-11-26 01:01:12 (GMT)
commit44342ec612d032b7dbf9e1dae48053885e3713bb (patch)
treeb49e3f0ceadb4013bf5b1bef1b04ee3d7a41b981
parent1567275a99aa692e1bb4710d6b147034171c612e (diff)
downloadcommon-44342ec612d032b7dbf9e1dae48053885e3713bb.zip
common-44342ec612d032b7dbf9e1dae48053885e3713bb.tar.gz
common-44342ec612d032b7dbf9e1dae48053885e3713bb.tar.bz2
gki: add builtin modules support [1/6]
PD#SWPL-36860 Problem: add builtin modules support add blacklist modules Solution: modify script and mk Verify: SC2 Signed-off-by: Hanjie Lin <hanjie.lin@amlogic.com> Change-Id: Ie1eda4aaa1079aaa148a96cba10ed1b52a6c2178
Diffstat
-rw-r--r--build_kernel_modules.mk40
-rwxr-xr-xkernelbuild/build.sh31
-rwxr-xr-xkernelbuild/mk_script.sh5
3 files changed, 57 insertions, 19 deletions
diff --git a/build_kernel_modules.mk b/build_kernel_modules.mk
index cb65aae..11fd196 100644
--- a/build_kernel_modules.mk
+++ b/build_kernel_modules.mk
@@ -33,25 +33,31 @@ BOARD_PREBUILT_DTBOIMAGE := $(DEVICE_PRODUCT_PATH)-kernel/$(TARGET_KERNEL_DIR)/d
###########################################################
BOARD_DO_NOT_STRIP_VENDOR_RAMDISK_MODULES := true
+RAMDISK_KERNEL_MODULES_LOAD_FIRSTLIST ?= aml_pinctrl.ko \
+ reset-meson.ko \
+ meson_clk.ko \
+ aml_usb2phy.ko \
+ aml_usb3v2phy.ko \
+ aml_usbotg.ko \
+ dwc3-of-simple.ko \
+ dwc3.ko \
+ xhci-plat-hcd.ko \
+ dwc_otg.ko \
+ aml_media.ko
+
+RAMDISK_KERNEL_MODULES_LOAD_BLACKLIST ?= will_not_load.ko
+
ifneq ($(TARGET_BUILD_KERNEL_4_9),true)
ifneq ($(KERNEL_A32_SUPPORT),true)
- RAMDISK_KERNEL_MODULES += \
- $(wildcard device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/*.ko)
-
- RAMDISK_KERNEL_MODULES_LOAD += \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/reset-meson.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/meson_clk.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_pinctrl.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_usb2phy.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_usb3v2phy.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_usb3v3phy.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_usbotg.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/dwc3-of-simple.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/dwc3.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/xhci-plat-hcd.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/dwc_otg.ko \
- device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/aml_media.ko \
- $(RAMDISK_KERNEL_MODULES)
+ RAMDISK_KERNEL_MODULES := $(wildcard device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/*.ko)
+ RAMDISK_KERNEL_MODULES_LOAD := $(RAMDISK_KERNEL_MODULES)
+
+ __LOAD_FIRSTLIST := $(foreach module, $(RAMDISK_KERNEL_MODULES_LOAD_FIRSTLIST), device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/$(module))
+ RAMDISK_KERNEL_MODULES_LOAD := $(filter-out $(__LOAD_FIRSTLIST), $(RAMDISK_KERNEL_MODULES_LOAD))
+ RAMDISK_KERNEL_MODULES_LOAD := $(__LOAD_FIRSTLIST) $(RAMDISK_KERNEL_MODULES_LOAD)
+
+ __LOAD_BLACKLIST := $(foreach module, $(RAMDISK_KERNEL_MODULES_LOAD_BLACKLIST), device/amlogic/$(PRODUCT_DIR)-kernel/$(TARGET_KERNEL_DIR)/ramdisk/lib/modules/$(module))
+ RAMDISK_KERNEL_MODULES_LOAD := $(filter-out $(__LOAD_BLACKLIST), $(RAMDISK_KERNEL_MODULES_LOAD))
ifeq ($(BUILDING_VENDOR_BOOT_IMAGE),true)
BOARD_VENDOR_RAMDISK_KERNEL_MODULES ?= $(RAMDISK_KERNEL_MODULES)
diff --git a/kernelbuild/build.sh b/kernelbuild/build.sh
index 2021d11..9de1763 100755
--- a/kernelbuild/build.sh
+++ b/kernelbuild/build.sh
@@ -304,8 +304,25 @@ set -x
if [ $KERNEL_A32_SUPPORT ]; then
(cd ${KERNEL_DIR} && make "${TOOL_ARGS[@]}" O=${OUT_DIR} ${MAKE_ARGS} meson64_a32_defconfig)
else
-cat ${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${KERNEL_DIR}/arch/arm64/configs/meson64_gki.fragment > ${KERNEL_DIR}/arch/arm64/configs/meson64_a64_gki_defconfig
-(cd ${KERNEL_DIR} && make "${TOOL_ARGS[@]}" O=${OUT_DIR} ${MAKE_ARGS} meson64_a64_gki_defconfig)
+ if [ "$CONFIG_BUILTIN_MODULES" == true ];then
+ echo "builtin_modules defconfig"
+ cat ${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${KERNEL_DIR}/arch/arm64/configs/meson64_gki.fragment $GKI_EXT_MODULE_CFG > ${KERNEL_DIR}/arch/arm64/configs/meson64_a64_gki_defconfig
+ sed -i 's/=m/=y/g' ${KERNEL_DIR}/arch/arm64/configs/meson64_a64_gki_defconfig
+ (cd ${KERNEL_DIR} && make "${TOOL_ARGS[@]}" O=${OUT_DIR} ${MAKE_ARGS} meson64_a64_gki_defconfig)
+
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi.org
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi.32M
+ sed -i ':a;N;$!ba;s/\(boot:boot[^}]*\)size[^;]*;/\1size = <0x0 0x2000000>;/' ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi.32M
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi.32M ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi
+
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi.org
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi.32M
+ sed -i ':a;N;$!ba;s/\(boot_[ab]:boot_[ab][^}]*\)size[^;]*;/\1size = <0x0 0x2000000>;/g' ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi.32M
+ cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi.32M ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi
+ else
+ cat ${KERNEL_DIR}/arch/arm64/configs/gki_defconfig ${KERNEL_DIR}/arch/arm64/configs/meson64_gki.fragment > ${KERNEL_DIR}/arch/arm64/configs/meson64_a64_gki_defconfig
+ (cd ${KERNEL_DIR} && make "${TOOL_ARGS[@]}" O=${OUT_DIR} ${MAKE_ARGS} meson64_a64_gki_defconfig)
+ fi
fi
set +x
@@ -407,10 +424,15 @@ if [ -n "${BUILD_INITRAMFS}" -o -n "${IN_KERNEL_MODULES}" ]; then
fi
# basic common modules build as extern
+if [ "$CONFIG_BUILTIN_MODULES" == true ];then
+cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi.org ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox.dtsi
+cp ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi.org ${KERNEL_DIR}/arch/arm64/boot/dts/amlogic/partition_mbox_ab.dtsi
+else
EXT_MODULES+="common/drivers/amlogic
common/sound/soc/amlogic
common/sound/soc/codecs/amlogic
"
+fi
if [[ -z "${SKIP_EXT_MODULES}" ]] && [[ -n "${EXT_MODULES}" ]]; then
echo "========================================================"
@@ -774,6 +796,11 @@ RAMDISK_TARGET=${ROOT_DIR}/${PRODUCT_DIRNAME}-kernel/5.4/ramdisk/
rm -fr ${RAMDISK_TARGET}/
mkdir -p ${RAMDISK_TARGET}/lib/modules/symbols/
+if [ "$CONFIG_BUILTIN_MODULES" == true ];then
+ echo "builtin modules, skip copy!"
+ exit 0;
+fi
+
for loop in `find ${MODULES_STAGING_DIR}/lib/modules/*/kernel/ -type f | grep "\.ko$"`
do
cp $loop ${RAMDISK_TARGET}/lib/modules/
diff --git a/kernelbuild/mk_script.sh b/kernelbuild/mk_script.sh
index 8dad802..47f1db1 100755
--- a/kernelbuild/mk_script.sh
+++ b/kernelbuild/mk_script.sh
@@ -231,6 +231,11 @@ function bin_path_parser() {
--nonGKI)
CONFIG_NONGKI=true
continue ;;
+ --builtin_modules)
+ CONFIG_BUILTIN_MODULES=true
+ echo "CONFIG_BUILTIN_MODULES: true"
+ export CONFIG_BUILTIN_MODULES
+ continue ;;
*)
esac
done