Re: [PATCH] score: Define _CPU_Start_multitasking only for LEON SPARC, not SPARC in general

2014-08-26 Thread Sebastian Huber

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

2014-08-25 Thread Daniel Cederman
---
 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

2014-08-25 Thread Sebastian Huber

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

2014-08-25 Thread Joel Sherrill

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

2014-08-25 Thread Sebastian Huber

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

2014-08-25 Thread Joel Sherrill

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