ramdump: Use RAMDUMP_TEXTOFFSET to integrate text modifications [1/1]

PD#SWPL-182182
PD#SWPL-190334

Problem:
TEXTOFFSET was changed from 0x00208000 to 0x02008000, causing some
devices to fail to start.
1. t5d Android U upgrade project, ko becomes build, uImage size
increases to 36MB. It is too big to relocate.
2. There is only 48MB in 0x020080000~0x5000000 area, and cannot
open kasan.

Solution:
1. use new config CONFIG_AMLOGIC_RAMDUMP_TEXTOFFSET instead of
CONFIG_AMLOGIC_RAMDUMP. And TEXTOFFSET is 0x00208000 default.
2. Use a new solution instead of modifying TEXT. Specifically,
during kernel panic, move 0-24MB to a higher address. Reboot to
uboot and then copy back.

Verify:
T5D

Change-Id: I1c9c086b89129893e5542676b54228e03b4e34c2
Signed-off-by: dongqing.li <dongqing.li@amlogic.com>
diff --git a/amlogic_utils.sh b/amlogic_utils.sh
index 7fc3ee1..6b6dcef 100644
--- a/amlogic_utils.sh
+++ b/amlogic_utils.sh
@@ -1313,7 +1313,7 @@
 			if [ "${ARCH}" = "arm64" ]; then
 				(cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) Image)
 			elif [ "${ARCH}" = "arm" ]; then
-				(cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) LOADADDR=0x2008000 uImage)
+				(cd ${OUT_DIR} && make O=${OUT_DIR} ${TOOL_ARGS} "${MAKE_ARGS[@]}" -j$(nproc) LOADADDR=0x00208000 uImage)
 			fi
 			set +x
 		fi
@@ -1551,7 +1551,12 @@
 
 function set_default_parameters () {
 	if [ "${ARCH}" = "arm" ]; then
-		ARGS+=("LOADADDR=0x02008000")
+		CONFIGFILE=${ROOT_DIR}/${FRAGMENT_CONFIG}
+		if [[ -f "${CONFIGFILE}" && `grep "CONFIG_AMLOGIC_RAMDUMP_TEXTOFFSET=y" "${CONFIGFILE}"` ]]; then
+			ARGS+=("LOADADDR=0x02008000")
+		else
+			ARGS+=("LOADADDR=0x00208000")
+		fi
 	else
 		ARCH=arm64
 	fi
@@ -1872,7 +1877,14 @@
 	export MKBOOTIMG_STAGING_DIR="${MODULES_STAGING_DIR}/mkbootimg_staging"
 	export OUT_AMLOGIC_DIR=$(readlink -m ${COMMON_OUT_DIR}/amlogic)
 
-	tool_args+=("LOADADDR=0x02008000")
+	CONFIGFILE=${ROOT_DIR}/${FRAGMENT_CONFIG}
+	echo "android 32bit config file: ${CONFIGFILE}"
+	if [[ -f "${CONFIGFILE}" && `grep "CONFIG_AMLOGIC_RAMDUMP_TEXTOFFSET=y" "${CONFIGFILE}"` ]]; then
+		# FRAGMENT_CONFIG: ./common_drivers/arch/arm/configs/amlogic_a32.fragment
+		tool_args+=("LOADADDR=0x02008000")
+	else
+		tool_args+=("LOADADDR=0x00208000")
+	fi
 	tool_args+=("DEPMOD=depmod")
 	tool_args+=("KCONFIG_EXT_MODULES_PREFIX=${KCONFIG_EXT_MODULES_PREFIX}")
 	tool_args+=("KCONFIG_EXT_PREFIX=${KCONFIG_EXT_PREFIX}")