Multi core Debugging on sabresd board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi core Debugging on sabresd board

516 Views
saida
Contributor II

hi

Can any one tell me how to do multicore debugging on my sabre sd dual lite borad

i tried so many times and with examples in ds-5 directory, its not working

it is able to connect core0 only not core1 or SMP.

in my application i am crating two ds-5 projects for two cores

second core application is stored in flash, when core0 boots, its copies core1 code from flash to ddr and enabling core1

when i run  first time trough ds-5 debugger its not starting core1 but in related register its showing core1 enable bit high only

but once again i run (second time without power off) than it is running

i dont what is happing

if tell me how to connect two cores to debugger than i can debug it

please helpme inthis regard

its almost 1.5 year since i purchased the board but no one is given solution to multi core debugging

thanks and regards

saida

Labels (1)
0 Kudos
1 Reply

389 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Please look at the example (in attachments) of the following thread how to run multiple cores.

Integrating Processor Expert for i.MX and ARM GCC with Eclipse 

Below are some comments :

"Upon initial power-up of the iMX6QD, each of the Cortex-A9 cpu’s will attempt to by default start executing at the ARM reset exception vector (at address: 0x00000000) after they are released from reset.  This space in memory in the iMX6QD memory map is part of the on-chip boot ROM.  The boot ROM code uses the state of the eFuses and/or boot GPIO settings to determine the boot behavior of the device using CPU0 (where CPU0 - CPU3 can be available on the chip depending on which version, iMX6Quad or iMX6Dual is being used).  This is boot process is described in detail in the “System Boot” chapter of the reference manual.        
Activating the Other cpu’s
Even though there are multiple cores available, only CPU0 is automatically activated during the initial boot/power-up process.  Upon initial boot/power-up, the other available secondary cores are left in a reset state. The reset signal for each of the cores is handled by the “System Reset Controller” module, and after power-up the SRC module keeps the secondary cores in a reset state.  Therefore, it is up to the application to enable the other available cores; this is not part of the boot ROM.  
The other available cores can be enabled by setting the core#_enable signal for each of the cores in the SRC Control Register (bits 22:24, for core1, core2, and core3 respectively).  Once the enable bits are set, that corresponding core will get released from its reset state and it will then start to execute the boot ROM (at: 0x0000000).  
High-Level Boot ROM Overview
Initially, the boot ROM needs to distinguish which CPU is currently booting up, so it will check the CPU ID (this stored in the CotexA9 Multiprocessor Affinity register, see the CortexA9 technical reference manual for more details).  
If CPU0 is booting up, then the boot ROM will first go through its boot process described in the System Boot chapter of the reference manual.  There it determines where to boot the image from, and after going through all the HAB checks, the image is loaded and executed.  
If the CPU booting is not CPU0, then the boot ROM will check what is referred to as “Persistent Bits” in the reference manual to determine if that CPU has a valid pointer it can execute from.  The “persistent bits” are a collection of registers that are used by the boot ROM code where it expects valid pointers to executable regions/functions for each core.  The registers that the boot ROM uses are some of the General Purpose Registers in the SRC module.  These registers are used because since by design, the SRC GPR registers retain their values even after a warm reset. They are listed in the table below.   For full details on boot process and the “persistent bits”, refer to the iMX6QD reference manual."

Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos