Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
On 25/08/14 19:29, Joel Sherrill wrote: On 8/25/2014 11:44 AM, Sebastian Huber wrote: On 08/25/2014 05:04 PM, Joel Sherrill wrote: On 8/25/2014 5:10 AM, Sebastian Huber wrote: On 25/08/14 11:45, Daniel Cederman wrote: --- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif In case it is LEON specific, then it should have a LEON specific name. What's the overall rationale? If its mandated by the CPU port, e.g. all the stuff defined by no_cpu/cpu.h, then it should be _CPU_*. In case all BSPs of a CPU port must implement a CPU port function, then it is _BSP_*. In case only certain multilib variants implement it specifically, then they should have an appropriate multilib specific prefix, e.g. _LEON3_* or _ARMV7M_*. Does this make sense? Maybe we should add this stuff to the CPU supplement. Yeah. I get this part and we do need better rules but what's the issue with this one method? The ifdef made it look like only the leon flavor of RTEMS and no others even had this method. Actually after one night of sleep I think it makes no sense. Now I think its better that all the CPU port functions should start with _CPU_*, so it is easier to find them and set breakpoints. I also think that this #define _CPU_Start_multitasking should be changed to something like #define CPU_HAS_DEDICATED_START_MULTITASKING (TRUE | FALSE) to be in line with all the other CPU port variants, e.g. CPU_HAS_SOFTWARE_INTERRUPT_STACK etc. -- 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.hu...@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
[PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
--- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif static inline void _CPU_SMP_Processor_event_broadcast( void ) { -- 1.7.9.5 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
On 25/08/14 11:45, Daniel Cederman wrote: --- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif In case it is LEON specific, then it should have a LEON specific name. -- 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.hu...@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
Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
On 8/25/2014 5:10 AM, Sebastian Huber wrote: On 25/08/14 11:45, Daniel Cederman wrote: --- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif In case it is LEON specific, then it should have a LEON specific name. What's the overall rationale? What happens on all other architectures/variants? Can this simply be a matter of deferring the selection/implementation to the BSP? We do that for other cases where the precise CPU model must be known. The interface from the score/cpu is well known and is mostly implemented in score/cpu. But sometimes, it can't be. -- Joel Sherrill, Ph.D. Director of Research Development joel.sherr...@oarcorp.comOn-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available(256) 722-9985 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
On 08/25/2014 05:04 PM, Joel Sherrill wrote: On 8/25/2014 5:10 AM, Sebastian Huber wrote: On 25/08/14 11:45, Daniel Cederman wrote: --- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif In case it is LEON specific, then it should have a LEON specific name. What's the overall rationale? If its mandated by the CPU port, e.g. all the stuff defined by no_cpu/cpu.h, then it should be _CPU_*. In case all BSPs of a CPU port must implement a CPU port function, then it is _BSP_*. In case only certain multilib variants implement it specifically, then they should have an appropriate multilib specific prefix, e.g. _LEON3_* or _ARMV7M_*. Does this make sense? Maybe we should add this stuff to the CPU supplement. -- 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.hu...@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
Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general
On 8/25/2014 11:44 AM, Sebastian Huber wrote: On 08/25/2014 05:04 PM, Joel Sherrill wrote: On 8/25/2014 5:10 AM, Sebastian Huber wrote: On 25/08/14 11:45, Daniel Cederman wrote: --- cpukit/score/cpu/sparc/rtems/score/cpu.h |2 ++ 1 file changed, 2 insertions(+) diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h b/cpukit/score/cpu/sparc/rtems/score/cpu.h index 9c38b55..d4c2ef0 100644 --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h @@ -1203,9 +1203,11 @@ register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__( g6 ); void _CPU_SMP_Send_interrupt( uint32_t target_processor_index ); + #if defined(__leon__) void _BSP_Start_multitasking( Context_Control *heir ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE; #define _CPU_Start_multitasking _BSP_Start_multitasking + #endif In case it is LEON specific, then it should have a LEON specific name. What's the overall rationale? If its mandated by the CPU port, e.g. all the stuff defined by no_cpu/cpu.h, then it should be _CPU_*. In case all BSPs of a CPU port must implement a CPU port function, then it is _BSP_*. In case only certain multilib variants implement it specifically, then they should have an appropriate multilib specific prefix, e.g. _LEON3_* or _ARMV7M_*. Does this make sense? Maybe we should add this stuff to the CPU supplement. Yeah. I get this part and we do need better rules but what's the issue with this one method? The ifdef made it look like only the leon flavor of RTEMS and no others even had this method. -- Joel Sherrill, Ph.D. Director of Research Development joel.sherr...@oarcorp.comOn-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available(256) 722-9985 ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel