Questions for SMP feature.

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Mar 17 09:06:55 UTC 2017



On 17/03/17 10:01, Thomas Kim wrote:
> Dear Sebastian,
>
> I already checked BSP code for Xlinx ZynQ and Altera Cyclone V. It was 
> useful for me.
> I implemented bspsmp.c according to register description of SRC(System 
> Reset Controller) on i.MX6Q manual.
>
> You said to me that IO device driver is called on boot processor only.
> But, As I check io.c in cpukit/sapi/src, there is any code regarding this.
>
> void _IO_Initialize_all_drivers( void )
> {
>    rtems_device_major_number major;
>    _IO_All_drivers_initialized = true;
>    for ( major=0 ; major < _IO_Number_of_drivers ; major ++ )
>      (void) rtems_io_initialize( major, 0, NULL );
>  }
>
> I think that this function should be changed in below;

No, if multiple processors call _IO_Initialize_all_drivers(), then your 
low-level SMP initialization is broken. See comments of Per_CPU_State 
and _CPU_SMP_*() in cpukit/score/cpu/no_cpu/rtems/score/cpu.h for some 
documentation. You can also follow the SMP startup on Qemu to figure out 
how it is supposed to work.

-- 
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.




More information about the users mailing list