customer: support customized modules loading sequence [1/3]

PD#SWPL-132930

Problem:
support customized modules loading sequence

Solution:
1. priority of module loading order files:
${MODULES_SEQUENCE_LIST} > scripts/amlogic/modules_sequence_list
2. solving the problem of bazel output directory
3. export GKI_MODULES_LIST

Verify:
ohm planck

Change-Id: I31951289377e880017fd49b245641c14e001ffe3
Signed-off-by: Wanwei Jiang <wanwei.jiang@amlogic.com>
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index 39bde58..3182723 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -60,13 +60,12 @@
 	fi
 
 	if [[ -n ${DEV_CONFIGS} ]]; then
-		config_list=$(echo ${DEV_CONFIGS}|sed 's/+/ /g')
-		#verify the extra config is in the right path and merge the config
-		CONFIG_DIR=arch/${ARCH}/configs
+		local config_list=$(echo ${DEV_CONFIGS}|sed 's/+/ /g')
 		for config_name in ${config_list[@]}
 		do
-			if [[ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/${CONFIG_DIR}/${config_name} ]]; then
-				KCONFIG_CONFIG=${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/${CONFIG_DIR}/${config_name}
+			if [[ -f ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/${ARCH}/configs/${config_name} ]]; then
+				config_file=${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/arch/${ARCH}/configs/${config_name}
+				KCONFIG_CONFIG=${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${config_file}
 			elif [[ -f ${config_name} ]]; then
 				KCONFIG_CONFIG=${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${ROOT_DIR}/${KERNEL_DIR}/scripts/kconfig/merge_config.sh -m -r ${ROOT_DIR}/${KCONFIG_DEFCONFIG} ${config_name}
 			else
@@ -370,7 +369,6 @@
 		chips=$1
 	fi
 
-	source ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/modules_sequence_list
 	cp modules.dep modules.dep.temp
 
 	soc_module=()
@@ -423,6 +421,7 @@
 
 	in_line_i=a
 	delete_type_modules=()
+	[[ -z ${TYPE_MODULE_SELECT_MODULE} ]] && TYPE_MODULE_SELECT_MODULE=${TYPE_MODULE_SELECT_MODULE_ANDROID}
 	echo "TYPE_MODULE_SELECT_MODULE=${TYPE_MODULE_SELECT_MODULE}"
 	mkdir temp_dir
 	cd temp_dir
@@ -535,7 +534,7 @@
 		done
 		if [[ ${#match_count[@]} != 0 ]]; then
 			echo "Error ${#match_count[@]} modules depend on ${module}, please modify:"
-			echo ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/modules_sequence_list:MODULES_LOAD_BLACK_LIST
+			echo ${MODULES_SEQUENCE_LIST}:MODULES_LOAD_BLACK_LIST
 			exit
 		fi
 		if [[ -n ${ANDROID_PROJECT} ]]; then
@@ -621,7 +620,6 @@
 	if [[ -n ${ANDROID_PROJECT} ]]; then
 		recovery_install_temp=$2
 	fi
-	source ${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/modules_sequence_list
 	ramdisk_module_i=${#RAMDISK_MODULES_LOAD_LIST[@]}
 	while [ ${ramdisk_module_i} -gt 0 ]; do
 		let ramdisk_module_i--
@@ -706,6 +704,11 @@
 function modules_install() {
 	arg1=$1
 
+	if [[ ! -f ${MODULES_SEQUENCE_LIST} ]]; then
+		MODULES_SEQUENCE_LIST=${ROOT_DIR}/${KERNEL_DIR}/${COMMON_DRIVERS_DIR}/scripts/amlogic/modules_sequence_list
+	fi
+	source ${MODULES_SEQUENCE_LIST}
+
 	export OUT_AMLOGIC_DIR=${OUT_AMLOGIC_DIR:-$(readlink -m ${COMMON_OUT_DIR}/amlogic)}
 	echo $OUT_AMLOGIC_DIR
 	rm -rf ${OUT_AMLOGIC_DIR}
@@ -715,14 +718,7 @@
 	mkdir -p ${OUT_AMLOGIC_DIR}/symbols
 
 	if [[ ${BAZEL} == "1" ]]; then
-		local output="out/bazel/output_user_root"
-		for dir in `ls ${output}`; do
-			if [[ ${dir} =~ ^[0-9A-Fa-f]*$ ]]; then
-				digit_output=${output}/${dir}
-				break
-			fi
-		done
-
+		BAZEL_OUT=bazel-out/
 		while read module
 		do
 			module_name=${module##*/}
@@ -730,7 +726,7 @@
 				if [[ -f ${DIST_DIR}/${module_name} ]]; then
 					cp ${DIST_DIR}/${module_name} ${OUT_AMLOGIC_DIR}/modules
 				else
-					module=`find ${digit_output}/execroot/ -name ${module_name} | grep "amlogic"`
+					module=`find ${BAZEL_OUT} -name ${module_name} | grep "amlogic_modules_install"`
 					cp ${module} ${OUT_AMLOGIC_DIR}/modules
 				fi
 			elif [[ `echo ${module} | grep "^extra\/"` ]]; then
@@ -752,7 +748,7 @@
 			fi
 		done < ${DIST_DIR}/modules.load
 
-		dep_file=`find ${digit_output}/execroot/ -name *.dep | grep "amlogic"`
+		dep_file=`find ${BAZEL_OUT} -name *.dep | grep "amlogic"`
 		cp ${dep_file} ${OUT_AMLOGIC_DIR}/modules/full_modules.dep
 		if [[ -n ${ANDROID_PROJECT} ]]; then
 			grep -E "^kernel\/" ${dep_file} > ${OUT_AMLOGIC_DIR}/modules/modules.dep
@@ -763,7 +759,7 @@
 			done
 
 			touch ${module} ${OUT_AMLOGIC_DIR}/ext_modules/ext_modules.order
-			for order_file in `find ${digit_output}/execroot/ -name "modules.order.*" | grep "amlogic"`; do
+			for order_file in `find ${BAZEL_OUT} -name "modules.order.*" | grep "amlogic"`; do
 				order_file_dir=${order_file#*/extra/}
 				order_file_dir=${order_file_dir%/modules.order.*}
 				if [[ ! "${EXT_MODULES_ANDROID_AUTO_LOAD}" =~ "${order_file_dir}" ]]; then
@@ -887,7 +883,7 @@
 	if [[ ${BAZEL} == "1" ]]; then
 		cp ${DIST_DIR}/vmlinux ${OUT_AMLOGIC_DIR}/symbols
 
-		find ${digit_output}/execroot -name *.ko | grep "unstripped" | while read module; do
+		find ${BAZEL_OUT} -name *.ko | grep "unstripped" | while read module; do
 		        cp ${module} ${OUT_AMLOGIC_DIR}/symbols
 			chmod +w ${OUT_AMLOGIC_DIR}/symbols/$(basename ${module})
 		done