From fcccd23a111deef8f2fec6540edc77dd50fbe392 Mon Sep 17 00:00:00 2001 From: Joseph Chen Date: Tue, 30 Apr 2019 11:58:12 +0800 Subject: [PATCH] make.sh: move debug command to scripts/rkpatch.sh Change-Id: Ie9eba5a585b78c92ee56f2fca9ac412ab5068ffa Signed-off-by: Joseph Chen --- make.sh | 84 +--------------------------------- scripts/rkpatch.sh | 109 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 83 deletions(-) create mode 100755 scripts/rkpatch.sh diff --git a/make.sh b/make.sh index 330a12735f..ea6b26e7e5 100755 --- a/make.sh +++ b/make.sh @@ -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/\/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/\/printf/g' ./common/board_f.c - sed -i 's/\/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/\/printf/g' common/fdt_support.c - sed -i 's/\/printf/g' common/image-fdt.c - sed -i 's/\/printf/g' common/image.c - sed -i 's/\/printf/g' arch/arm/lib/bootm.c - sed -i 's/\/printf/g' common/bootm.c - sed -i 's/\/printf/g' common/image.c - sed -i 's/\/printf/g' common/image-android.c - sed -i 's/\/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 diff --git a/scripts/rkpatch.sh b/scripts/rkpatch.sh new file mode 100755 index 0000000000..3e53f69a06 --- /dev/null +++ b/scripts/rkpatch.sh @@ -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/\/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/\/printf/g' ./common/board_f.c + sed -i 's/\/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/\/printf/g' common/fdt_support.c + sed -i 's/\/printf/g' common/image-fdt.c + sed -i 's/\/printf/g' common/image.c + sed -i 's/\/printf/g' arch/arm/lib/bootm.c + sed -i 's/\/printf/g' common/bootm.c + sed -i 's/\/printf/g' common/image.c + sed -i 's/\/printf/g' common/image-android.c + sed -i 's/\/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/\/printf/g' arch/arm/lib/bootm.c + echo "DEBUG [13]: starting kernel halt dump" + ;; +*) + echo "Unknown command: $1" +esac +echo