I am trying to reboot second A7 core from the first A7 core repeatedly. on the 8th attempt to boot the second A7 core system stops responding. I have attached a small piece of code that reproduces the issue with me. I have been building it using the codesourcery gnu tool chain using the following command.
$ arm-none-eabi-gcc -gdwarf-2 -mthumb-interwork -msoft-float -mcpu=cortex-a7 -T link_ram.ld main_freescale.c
Here is a brief description of the program attached.
- Core 0 runs the function main(). It repeatedly boots the second core with the entry function core2_func().
- Core 1 runs core2_func and sends a signal to Core 0 with variable core2_countup.
- Core 0 on receiving signal shuts down Core 1 and reboots Core 1 again
Variable cpu1_boot_trig_cnt tells how many time Core 1 has been powered up.
Variable cpu1_boot_cnt tells how many time Core 1 has successfully been powered up.
board: MCIMX7 SABRE
Kernel or BSP: Bare metal
ToolChain: gcc version 6.2.0 (Sourcery CodeBench 2016.11-51)
Frequency of reproducible: Always
Steps to reproduce: Build the code load it on core 0 and let it run. When paused cpu1_boot_cnt is stuck at 7. on connecting second A7 core to JTAG. The cpu is in wage state, unable to access memory or registers trhough debug.