See Doxygen comments of Per_CPU_State. The boot_card() must be called by 
exactly one processor.  For the Cortex-A9 MPCore there is a branch in 
bsp_start_hook_0() according to the CPU index.

----- Rohini Kulkarni <krohini1...@gmail.com> schrieb:
>Hi all,

I am trying to understand boot up for ARM BSPs so as to be able to implement 
SMP support for Pi 2.

Please correct me where I am wrong. (It is verbose. But I have tried to make 
things as clear as I could)

[1] From start.S for ARM, all cores start together. They run the bsp_start hook 
0 and 1 and then go to boot_card() .
boot_card() calls rtems_data_sructure_initialize() which further does SMP 
related initilazations.

[2] the bsp_start_hooks include cpu initialization for cache/mmu etc. This is 
done for all cores before SMP initializations from boot_card(). For 
> Raspberry Pi 2, only primary core, which is core 0, will run after 
> reset, while other cores will wait for a jump address from where to 
> execute.
I need to ensure the sequence remains consistent for Pi 2. So before boot_card 
is called() , I need to get other cores to do the initialization from start.S 
while core0 waits. Is there something else that can be done?

[3] Where do the other cores start waiting for an interrupt from primary core. 
Where does the interprocessor interrupt come into picture.

Thanks!
-- 
Rohini Kulkarni
>

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel
  • SMP on ARM Rohini Kulkarni
    • Re: SMP on ARM Sebastian Huber

Reply via email to