make.sh: move debug command to scripts/rkpatch.sh

Change-Id: Ie9eba5a585b78c92ee56f2fca9ac412ab5068ffa
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
Joseph Chen 2019-04-30 11:58:12 +08:00 committed by Jianhong Chen
parent d6e1155e0c
commit fcccd23a11
2 changed files with 110 additions and 83 deletions

84
make.sh
View File

@ -231,7 +231,7 @@ sub_commands()
;;
debug)
debug_command
./scripts/rkpatch.sh ${opt}
exit 0
;;
@ -421,88 +421,6 @@ fixup_platform_configure()
fi
}
debug_command()
{
if [ "${cmd}" = 'debug' -a "${opt}" = 'debug' ]; then
echo
echo "The commands will modify .config and files, and can't auto restore changes!"
echo "debug-N, the N:"
echo " 1. lib/initcall.c debug() -> printf()"
echo " 2. common/board_r.c and common/board_f.c debug() -> printf()"
echo " 3. global #define DEBUG"
echo " 4. enable CONFIG_ROCKCHIP_DEBUGGER"
echo " 5. enable CONFIG_ROCKCHIP_CRC"
echo " 6. enable CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP"
echo " 7. enable CONFIG_ROCKCHIP_CRASH_DUMP"
echo " 8. set CONFIG_BOOTDELAY=5"
echo " 9. armv7 start.S: print entry warning"
echo " 10. armv8 start.S: print entry warning"
echo " 11. firmware bootflow debug() -> printf()"
echo " 12. bootstage timing report"
echo
echo "Enabled: "
grep '^CONFIG_ROCKCHIP_DEBUGGER=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_DEBUGGER"
grep '^CONFIG_ROCKCHIP_CRC=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_CRC"
grep '^CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y' .config > /dev/null \
&& echo " CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP"
grep '^CONFIG_ROCKCHIP_CRASH_DUMP=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_CRASH_DUMP"
elif [ "${opt}" = '1' ]; then
sed -i 's/\<debug\>/printf/g' lib/initcall.c
sed -i 's/ifdef DEBUG/if 1/g' lib/initcall.c
echo "DEBUG [1]: lib/initcall.c debug() -> printf()"
elif [ "${opt}" = '2' ]; then
sed -i 's/\<debug\>/printf/g' ./common/board_f.c
sed -i 's/\<debug\>/printf/g' ./common/board_r.c
echo "DEBUG [2]: common/board_r.c and common/board_f.c debug() -> printf()"
elif [ "${opt}" = '3' ]; then
sed -i '$i \#define DEBUG\' include/configs/rockchip-common.h
echo "DEBUG [3]: global #define DEBUG"
elif [ "${opt}" = '4' ]; then
sed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
echo "DEBUG [4]: CONFIG_ROCKCHIP_DEBUGGER is enabled"
elif [ "${opt}" = '5' ]; then
sed -i 's/\# CONFIG_ROCKCHIP_CRC is not set/CONFIG_ROCKCHIP_CRC=y/g' .config
echo "DEBUG [5]: CONFIG_ROCKCHIP_CRC is enabled"
elif [ "${opt}" = '6' ]; then
sed -i 's/\# CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is not set/CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y/g' .config
echo "DEBUG [6]: CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is enabled"
elif [ "${opt}" = '7' ]; then
sed -i 's/\# CONFIG_ROCKCHIP_CRASH_DUMP is not set/CONFIG_ROCKCHIP_CRASH_DUMP=y/g' .config
echo "DEBUG [7]: CONFIG_ROCKCHIP_CRASH_DUMP is enabled"
elif [ "${opt}" = '8' ]; then
sed -i 's/^CONFIG_BOOTDELAY=0/CONFIG_BOOTDELAY=5/g' .config
echo "DEBUG [8]: CONFIG_BOOTDELAY is 5s"
elif [ "${opt}" = '9' ]; then
sed -i '/save_boot_params_ret:/a\ldr r0, =CONFIG_DEBUG_UART_BASE\nmov r1, #100\nloop:\nmov r2, #0x55\nstr r2, [r0]\nsub r1, r1, #1\ncmp r1, #0\nbne loop\ndsb' \
./arch/arm/cpu/armv7/start.S
echo "DEBUG [9]: armv7 start.S entry warning 'UUUU...'"
elif [ "${opt}" = '10' ]; then
sed -i '/save_boot_params_ret:/a\ldr x0, =CONFIG_DEBUG_UART_BASE\nmov x1, #100\nloop:\nmov x2, #0x55\nstr x2, [x0]\nsub x1, x1, #1\ncmp x1, #0\nb.ne loop\ndsb sy' \
./arch/arm/cpu/armv8/start.S
echo "DEBUG [10]: armv8 start.S entry warning 'UUUU...'"
elif [ "${opt}" = '11' ]; then
sed -i 's/\<debug\>/printf/g' common/fdt_support.c
sed -i 's/\<debug\>/printf/g' common/image-fdt.c
sed -i 's/\<debug\>/printf/g' common/image.c
sed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
sed -i 's/\<debug\>/printf/g' common/bootm.c
sed -i 's/\<debug\>/printf/g' common/image.c
sed -i 's/\<debug\>/printf/g' common/image-android.c
sed -i 's/\<debug\>/printf/g' common/android_bootloader.c
echo "DEBUG [11]: firmware bootflow debug() -> printf()"
elif [ "${opt}" = '12' ]; then
sed -i '$a\CONFIG_BOOTSTAGE=y\' .config
sed -i '$a\CONFIG_BOOTSTAGE_REPORT=y\' .config
sed -i '$a\CONFIG_CMD_BOOTSTAGE=y\' .config
echo "DEBUG [12]: bootstage timing report"
fi
echo
}
pack_uboot_image()
{
local UBOOT_LOAD_ADDR UBOOT_MAX_KB UBOOT_KB HEAD_KB=2

109
scripts/rkpatch.sh Executable file
View File

@ -0,0 +1,109 @@
#!/bin/bash
#
# Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
#
# SPDX-License-Identifier: GPL-2.0
#
case $1 in
--help|-help|help|--h|-h|debug|'')
echo
echo " 1. lib/initcall.c debug() -> printf()"
echo " 2. common/board_r.c and common/board_f.c debug() -> printf()"
echo " 3. global #define DEBUG"
echo " 4. enable CONFIG_ROCKCHIP_DEBUGGER"
echo " 5. enable CONFIG_ROCKCHIP_CRC"
echo " 6. enable CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP"
echo " 7. enable CONFIG_ROCKCHIP_CRASH_DUMP"
echo " 8. set CONFIG_BOOTDELAY=5"
echo " 9. armv7 start.S: print entry warning"
echo " 10. armv8 start.S: print entry warning"
echo " 11. firmware bootflow debug() -> printf()"
echo " 12. bootstage timing report"
echo " 13. starting kernel halt dump"
echo
echo "Enabled in .config: "
grep '^CONFIG_ROCKCHIP_DEBUGGER=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_DEBUGGER"
grep '^CONFIG_ROCKCHIP_CRC=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_CRC"
grep '^CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y' .config > /dev/null \
&& echo " CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP"
grep '^CONFIG_ROCKCHIP_CRASH_DUMP=y' .config > /dev/null \
&& echo " CONFIG_ROCKCHIP_CRASH_DUMP"
;;
1)
sed -i 's/\<debug\>/printf/g' lib/initcall.c
sed -i 's/ifdef DEBUG/if 1/g' lib/initcall.c
echo "DEBUG [1]: lib/initcall.c debug() -> printf()"
;;
2)
sed -i 's/\<debug\>/printf/g' ./common/board_f.c
sed -i 's/\<debug\>/printf/g' ./common/board_r.c
echo "DEBUG [2]: common/board_r.c and common/board_f.c debug() -> printf()"
;;
3)
sed -i '$i \#define DEBUG\' include/configs/rockchip-common.h
echo "DEBUG [3]: global #define DEBUG"
;;
4)
sed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
echo "DEBUG [4]: CONFIG_ROCKCHIP_DEBUGGER is enabled"
;;
5)
sed -i 's/\# CONFIG_ROCKCHIP_CRC is not set/CONFIG_ROCKCHIP_CRC=y/g' .config
echo "DEBUG [5]: CONFIG_ROCKCHIP_CRC is enabled"
;;
6)
sed -i 's/\# CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is not set/CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP=y/g' .config
echo "DEBUG [6]: CONFIG_BOOTSTAGE_PRINTF_TIMESTAMP is enabled"
;;
7)
sed -i 's/\# CONFIG_ROCKCHIP_CRASH_DUMP is not set/CONFIG_ROCKCHIP_CRASH_DUMP=y/g' .config
echo "DEBUG [7]: CONFIG_ROCKCHIP_CRASH_DUMP is enabled"
;;
8)
sed -i 's/^CONFIG_BOOTDELAY=0/CONFIG_BOOTDELAY=5/g' .config
echo "DEBUG [8]: CONFIG_BOOTDELAY is 5s"
;;
9)
sed -i '/save_boot_params_ret:/a\ldr r0, =CONFIG_DEBUG_UART_BASE\nmov r1, #100\nloop:\nmov r2, #0x55\nstr r2, [r0]\nsub r1, r1, #1\ncmp r1, #0\nbne loop\ndsb' \
./arch/arm/cpu/armv7/start.S
echo "DEBUG [9]: armv7 start.S entry warning 'UUUU...'"
;;
10)
sed -i '/save_boot_params_ret:/a\ldr x0, =CONFIG_DEBUG_UART_BASE\nmov x1, #100\nloop:\nmov x2, #0x55\nstr x2, [x0]\nsub x1, x1, #1\ncmp x1, #0\nb.ne loop\ndsb sy' \
./arch/arm/cpu/armv8/start.S
echo "DEBUG [10]: armv8 start.S entry warning 'UUUU...'"
;;
11)
sed -i 's/\<debug\>/printf/g' common/fdt_support.c
sed -i 's/\<debug\>/printf/g' common/image-fdt.c
sed -i 's/\<debug\>/printf/g' common/image.c
sed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
sed -i 's/\<debug\>/printf/g' common/bootm.c
sed -i 's/\<debug\>/printf/g' common/image.c
sed -i 's/\<debug\>/printf/g' common/image-android.c
sed -i 's/\<debug\>/printf/g' common/android_bootloader.c
echo "DEBUG [11]: firmware bootflow debug() -> printf()"
;;
12)
sed -i '$a\CONFIG_BOOTSTAGE=y\' .config
sed -i '$a\CONFIG_BOOTSTAGE_REPORT=y\' .config
sed -i '$a\CONFIG_CMD_BOOTSTAGE=y\' .config
echo "DEBUG [12]: bootstage timing report"
;;
13)
sed -i 's/\# CONFIG_ROCKCHIP_DEBUGGER is not set/CONFIG_ROCKCHIP_DEBUGGER=y/g' .config
sed -i '/br x4/i\b .' arch/arm/cpu/armv8/transition.S
sed -i 's/announce_and_cleanup(fake);/if (0)announce_and_cleanup(fake);/g' arch/arm/lib/bootm.c
sed -i '/announce_and_cleanup(fake)/a\enable_interrupts()\;' arch/arm/lib/bootm.c
sed -i '/kernel_entry(0, machid, r2)/i\printf("#### Jump to kernel!!")\;' arch/arm/lib/bootm.c
sed -i '/kernel_entry(0, machid, r2)/i\__asm("b .")\;' arch/arm/lib/bootm.c
sed -i 's/\<debug\>/printf/g' arch/arm/lib/bootm.c
echo "DEBUG [13]: starting kernel halt dump"
;;
*)
echo "Unknown command: $1"
esac
echo