diff options
author | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2015-11-10 10:01:19 +0000 |
---|---|---|
committer | Achin Gupta <achin.gupta@arm.com> | 2015-11-26 21:31:59 +0000 |
commit | 35e8c7661ae12ac95bbf394b2b3d19d2c7d03369 (patch) | |
tree | 5d187ed7d28d05e09a9db8e2bfe6f64fd8508103 /bl1 | |
parent | b39908af748fd273f28991f49c62eec775fce77c (diff) |
Introduce SPIN_ON_BL1_EXIT build flag
This patch introduces a new build flag, SPIN_ON_BL1_EXIT, which
puts an infinite loop in BL1. It is intended to help debugging
the post-BL2 phase of the Trusted Firmware by stopping execution
in BL1 just before handing over to BL31. At this point, the
developer may take control of the target using a debugger.
This feature is disabled by default and can be enabled by
rebuilding BL1 with SPIN_ON_BL1_EXIT=1.
User Guide updated accordingly.
Change-Id: I6b6779d5949c9e5571dd371255520ef1ac39685c
Diffstat (limited to 'bl1')
-rw-r--r-- | bl1/aarch64/bl1_exceptions.S | 6 | ||||
-rw-r--r-- | bl1/bl1_main.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/bl1/aarch64/bl1_exceptions.S b/bl1/aarch64/bl1_exceptions.S index 0bd04857..ee66ef00 100644 --- a/bl1/aarch64/bl1_exceptions.S +++ b/bl1/aarch64/bl1_exceptions.S @@ -207,6 +207,12 @@ func smc_handler64 bl disable_mmu_icache_el3 tlbi alle3 +#if SPIN_ON_BL1_EXIT + bl print_debug_loop_message +debug_loop: + b debug_loop +#endif + bl bl1_plat_prepare_exit ldp x6, x7, [x20, #(ENTRY_POINT_INFO_ARGS_OFFSET + 0x30)] diff --git a/bl1/bl1_main.c b/bl1/bl1_main.c index f62f31d5..73f023ab 100644 --- a/bl1/bl1_main.c +++ b/bl1/bl1_main.c @@ -208,3 +208,11 @@ void bl1_print_bl31_ep_info(const entry_point_info_t *bl31_ep_info) NOTICE("BL1: Booting BL3-1\n"); print_entry_point_info(bl31_ep_info); } + +#if SPIN_ON_BL1_EXIT +void print_debug_loop_message(void) +{ + NOTICE("BL1: Debug loop, spinning forever\n"); + NOTICE("BL1: Please connect the debugger to continue\n"); +} +#endif |