Re: [PATCH 11 minor addeum] arm/raspberrypi: GPIO - using RTEMS interrupt lock during BSP

2016-09-07 Thread Sebastian Huber



On 07/09/16 08:52, Pavel Pisa wrote:

The smpfatal08 test is quite a hack since it re-defines some global SMP
>support functions locally. In order to support this, the ARM BSPs must
>place the _CPU_SMP_Start_processor() function as the only global
>function into the bspsmp.c file.

I expected that

CFLAGS_OPTIMIZE_V += -ffunction-sections -fdata-sections

in BSP and linker -Wl,--gc-section could/sould resolve that.

So should I divide bspsmp.c into two files?

For example, bspsmp-startcpu.c, bspsmp-init.c.

What about

uint32_t _CPU_SMP_Initialize(void)
{
   uint32_t cpu_count = (uint32_t)bsp_processor_count;

   if ( cpu_count > 4 )
 cpu_count = 4;

   return cpu_count;
}

void _CPU_SMP_Finalize_initialization( uint32_t cpu_count )
{
   /* Do nothing */
}

void _CPU_SMP_Prepare_start_multitasking( void )
{
   /* Do nothing */
}

void _CPU_SMP_Send_interrupt( uint32_t target_cpu_index )
{
   /* Generates IPI */
   BCM2835_REG(BCM2836_MAILBOX_3_WRITE_SET_BASE +
   0x10 * target_cpu_index) = 0x1;
}

should they go to the same compilation unit as _CPU_SMP_Start_processor
or bspsmp-init.c separate one.

Or I should not care about smpfatal08 or add required symbol to it.


It would be nice to get the smpfatal08 to work with this BSP. There is 
already a special case for the the qoriq BSPs in this test, so maybe we 
need something similar for the RPI.


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

RTEMS 4.10.3 RC2 Released

2016-09-07 Thread Chris Johns
RTEMS 4.10.3 RC2

 Release: 4.10.3-rc2
 Date   : 07 September 2016
 URL: https://ftp.rtems.org/pub/rtems/releases/4.10/4.10.3-rc2/

This is a release candidate for RTEMS 4.10.3. The release changes are
listed in the attached Changes-4.10.3.txt.

The release provides RSB support. Please see the README.txt in the FTP
directory for directions on building.

To build click on the link and the relases README.txt's "Quick Guide to
Building" section.

Aleksandr Platonov (1):
  rtems_cache_invalidate_multiple_instruction_lines

Chris Johns (3):
  Back port rtems-bsps for use in the release procedure.
  Change version to 4.10 to the rtems-bsps.
  rtems-test-check: Ignore tests which require real ISR based clock tick

Daniel Hellstrom (3):
  LEON3BSP MP: may wake one more CPU than expected
  LEON3: fix compiler warning in SHM driver
  LEON3: change d-cache snoop detect implementation

Daron Chabot (1):
  Add c++ guard to header.

Dylan Maxwell (1):
  tftpfs: PR1624: Fix parsing of hostnames and paths

Gedare Bloom (1):
  Delete lingering bspopts.h.in file

Jeffrey Hill (2):
  rpc: misaligned address exception in get_myaddress.c
  rpc: misaligned pointer dereference in clnt_udp.c line 363

Joel Sherrill (15):
  Add .git ignore. Remove .cvsignore
  Add .git ignore. Remove .cvsignore
  LEON3: CPU index intialization moved to bspstart.c
  PR 2011/networking GRETH: Moved print to remove potential deadlock
  PR 2011/networking - GRETH: performance improvements and one bugfix
  PR 1998/networking - Move ftpd root initialization
  PR 1962/bsps - MVME162 Console Corrections and Improvements
  PR 2012 - mdump/wdump shell cmds handle length arg incorrectly; add ldump 
cmd
  PR 2012 - mdump/wdump shell cmds handle length arg incorrectly; add ldump 
cmd
  PR 2001/shell - medit command argument parsing correction
  PR 2015 - LEON3: make SHM driver configurable using weak symbols
  sparc.t: Correct for V8/V9
  Add autotools generated files
  Backport capability to exclude tests from building
  m32csim-testsuite.tcfg: m32csim now completes build

Michael Davidsaver (1):
  tftpDriver: close() false error

Nick Withers (1):
  Fixes breakage on at least FreeBSD.

Nickolay Semyonov (1):
  capture: back-port conversion from task_name to task_id (see #1361)

Pavel Pisa (6):
  bsp/csb336: mc9328mxl correct AITC access in bsp_interrupt_dispatch.
  bsp/csb336: implement bsp_interrupt_vector_enable/disable.
  bsp/csb336: Memory map update to support i.MX1 based PiMX1 as well.
  Backport of development SPI SD-card patches to RTEMS 4.10.
  SPI SD-Card: setup valid CRC-7 for STOP_TRANSMISSION command.
  SPI SD-Card: adapt common driver code to block devices core API changes.

Ralf Corsépius (3):
  Remove (Moved to git.rtems.org/data/git/rtems-crossrpms.git).
  Use http://www.rtems.org/bugzilla as bug-URL.
  Remove stray '/'.

Sebastian Huber (30):
  PR 2026/filesystem - Fix semaphore attributes
  PR2039: Fix NULL pointer access
  PR2040: libblock: Use segment control as parameter
  PR2040: libblock: Track number of erased blocks
  PR2040: libblock: Avoid erased blocks starvation
  PR2040: libblock: Fix return status
  PR2040: libblock: Flash disk documentation
  PR2040: libblock: Flash disk starvations statistic
  PR2040: libtests/flashdisk01: New test
  libblock: PR2040: Add starvation threshold
  libblock: PR2040: Fix recycle destination update
  bsp/genmcf548x: Fix BSP options
  bsp/genmcf548x: Enable FPU in BSP startup code
  libblock: Fix purge device tree traversal
  score: Critical fix for timer server
  rtems: Critical fix for events
  score: Fix _Objects_Shrink_information()
  libblock: PR2040: Avoid NULL pointer access
  score: PR2140: _Thread_queue_Extract()
  score: PR2140: Fix _Thread_queue_Process_timeout()
  score: PR2179: Fix initially locked PCP mutexes
  ramdisk: Fix device name generation
  score: PR2179: Fix initially locked PI mutex
  ppp: PR1943: Avoid NULL pointer access
  Avoid buffer overflow and misaligned memory access
  bdbuf: Fix race condition with sync active flag
  RFS: Fix resource leak
  posix: Fix return status of pthread_cancel()
  posix: Fix return states of pthread_kill()
  fat: Fix for invalid cluster sizes

Till Strauman (2):
  posix: fix race condition between pthread_create and capture engine
  pc386: scan all functions of multi-function PCI devices

Till Straumann (1):
  networking: alignment exception in ioctl(SIOCGIFCONF)

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

[PATCH 2/3] stackchk: Use a const pattern to check

2016-09-07 Thread Sebastian Huber
---
 cpukit/libmisc/stackchk/check.c| 131 +
 cpukit/score/cpu/powerpc/rtems/score/cpu.h |  10 ++-
 2 files changed, 51 insertions(+), 90 deletions(-)

diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c
index 2cf490a..6b6b98b 100644
--- a/cpukit/libmisc/stackchk/check.c
+++ b/cpukit/libmisc/stackchk/check.c
@@ -50,14 +50,14 @@
  *  pattern area must be a multiple of 4 words.
  */
 
-#ifdef CPU_STACK_CHECK_SIZE
-#define PATTERN_SIZE_WORDS  (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3)
-#else
-#define PATTERN_SIZE_WORDS  (4)
+#if !defined(CPU_STACK_CHECK_PATTERN_INITIALIZER)
+#define CPU_STACK_CHECK_PATTERN_INITIALIZER \
+  { \
+0xFEEDF00D, 0x0BAD0D06, /* FEED FOOD to  BAD DOG */ \
+0xDEADF00D, 0x600D0D06  /* DEAD FOOD but GOOD DOG */ \
+  }
 #endif
 
-#define PATTERN_SIZE_BYTES  (PATTERN_SIZE_WORDS * sizeof(uint32_t))
-
 /*
  *  The pattern used to fill the entire stack.
  */
@@ -65,10 +65,6 @@
 #define BYTE_PATTERN 0xA5
 #define U32_PATTERN 0xA5A5A5A5
 
-typedef struct {
-   uint32_tpattern[ PATTERN_SIZE_WORDS ];
-} Stack_check_Control;
-
 /*
  *  Variable to indicate when the stack checker has been initialized.
  */
@@ -77,7 +73,12 @@ static int   Stack_check_Initialized = 0;
 /*
  *  The "magic pattern" used to mark the end of the stack.
  */
-Stack_check_Control Stack_check_Pattern;
+static const uint32_t Stack_check_Pattern[] =
+  CPU_STACK_CHECK_PATTERN_INITIALIZER;
+
+#define PATTERN_SIZE_BYTES sizeof(Stack_check_Pattern)
+
+#define PATTERN_SIZE_WORDS RTEMS_ARRAY_SIZE(Stack_check_Pattern)
 
 /*
  * Helper function to report if the actual stack pointer is in range.
@@ -85,11 +86,12 @@ Stack_check_Control Stack_check_Pattern;
  * NOTE: This uses a GCC specific method.
  */
 static inline bool Stack_check_Frame_pointer_in_range(
-  Stack_Control *the_stack
+  const Thread_Control *the_thread
 )
 {
   #if defined(__GNUC__)
 void *sp = __builtin_frame_address(0);
+const Stack_Control *the_stack = &the_thread->Start.Initial_stack;
 
 if ( sp < the_stack->area ) {
   return false;
@@ -110,7 +112,7 @@ static inline bool Stack_check_Frame_pointer_in_range(
 #if (CPU_STACK_GROWS_UP == TRUE)
   #define Stack_check_Get_pattern( _the_stack ) \
 ((char *)(_the_stack)->area + \
- (_the_stack)->size - sizeof( Stack_check_Control ) )
+ (_the_stack)->size - PATTERN_SIZE_BYTES )
 
   #define Stack_check_Calculate_used( _low, _size, _high_water ) \
   ((char *)(_high_water) - (char *)(_low))
@@ -132,22 +134,16 @@ static inline bool Stack_check_Frame_pointer_in_range(
   ( ((char *)(_low) + (_size)) - (char *)(_high_water) )
 
   #define Stack_check_usable_stack_start(_the_stack) \
-  ((char *)(_the_stack)->area + sizeof(Stack_check_Control))
+  ((char *)(_the_stack)->area + PATTERN_SIZE_BYTES)
 
 #endif
 
 /*
- *  Obtain a properly typed pointer to the area to check.
- */
-#define Stack_check_Get_pattern_area( _the_stack ) \
-  (Stack_check_Control *) Stack_check_Get_pattern( _the_stack )
-
-/*
  *  The assumption is that if the pattern gets overwritten, the task
  *  is too close.  This defines the usable stack memory.
  */
 #define Stack_check_usable_stack_size(_the_stack) \
-((_the_stack)->size - sizeof(Stack_check_Control))
+((_the_stack)->size - PATTERN_SIZE_BYTES)
 
 #if (CPU_ALLOCATE_INTERRUPT_STACK == TRUE)
   /*
@@ -169,25 +165,10 @@ static inline bool Stack_check_Frame_pointer_in_range(
  */
 static void Stack_check_Initialize( void )
 {
-  int   i;
-  uint32_t *p;
-  staticuint32_t pattern[ 4 ] = {
-0xFEEDF00D, 0x0BAD0D06,  /* FEED FOOD to  BAD DOG */
-0xDEADF00D, 0x600D0D06   /* DEAD FOOD but GOOD DOG */
-  };
-
   if ( Stack_check_Initialized )
 return;
 
   /*
-   * Dope the pattern and fill areas
-   */
-  p = Stack_check_Pattern.pattern;
-  for ( i = 0; i < PATTERN_SIZE_WORDS; i++ ) {
-  p[i] = pattern[ i%4 ];
-  }
-
-  /*
* If appropriate, setup the interrupt stack for high water testing
* also.
*/
@@ -203,6 +184,15 @@ static void Stack_check_Initialize( void )
   Stack_check_Initialized = 1;
 }
 
+static bool Stack_check_Is_pattern_valid(const Thread_Control *the_thread)
+{
+  return memcmp(
+Stack_check_Get_pattern(&the_thread->Start.Initial_stack),
+Stack_check_Pattern,
+PATTERN_SIZE_BYTES
+  ) == 0;
+}
+
 /*
  *  rtems_stack_checker_create_extension
  */
@@ -226,14 +216,14 @@ void rtems_stack_checker_begin_extension(
   Thread_Control *the_thread
 )
 {
-  Stack_check_Control  *the_pattern;
-
   if ( the_thread->Object.id == 0 )/* skip system tasks */
 return;
 
-  the_pattern = Stack_check_Get_pattern_area(&the_thread->Start.Initial_stack);
-
-  *the_pattern = Stack_check_Pattern;
+  memcpy(
+Stack_check_Get_pattern(&the_thread->Start.Initial_stack),
+Stack_check_Pattern,
+PATTERN_SIZE_BYTES
+  );
 }
 
 /*
@@ -245,16 +235,14 @@ void rtems_stack_checker_begin_extension(
  *  NOTE: The 

[PATCH 1/3] stackchk: Remove superfluous internal header file

2016-09-07 Thread Sebastian Huber
---
 cpukit/libmisc/Makefile.am |   2 +-
 cpukit/libmisc/stackchk/check.c|  26 +-
 cpukit/libmisc/stackchk/internal.h | 101 -
 3 files changed, 26 insertions(+), 103 deletions(-)
 delete mode 100644 cpukit/libmisc/stackchk/internal.h

diff --git a/cpukit/libmisc/Makefile.am b/cpukit/libmisc/Makefile.am
index 4f5c01d..97e14b0 100644
--- a/cpukit/libmisc/Makefile.am
+++ b/cpukit/libmisc/Makefile.am
@@ -148,7 +148,7 @@ EXTRA_DIST += serdbg/README
 
 ## stackchk
 noinst_LIBRARIES += libstackchk.a
-libstackchk_a_SOURCES = stackchk/check.c stackchk/internal.h \
+libstackchk_a_SOURCES = stackchk/check.c \
 stackchk/stackchk.h
 
 EXTRA_DIST += stackchk/README
diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c
index a4b606a..2cf490a 100644
--- a/cpukit/libmisc/stackchk/check.c
+++ b/cpukit/libmisc/stackchk/check.c
@@ -43,7 +43,31 @@
 #include 
 #include 
 #include 
-#include "internal.h"
+
+/*
+ *  This structure is used to fill in and compare the "end of stack"
+ *  marker pattern.
+ *  pattern area must be a multiple of 4 words.
+ */
+
+#ifdef CPU_STACK_CHECK_SIZE
+#define PATTERN_SIZE_WORDS  (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3)
+#else
+#define PATTERN_SIZE_WORDS  (4)
+#endif
+
+#define PATTERN_SIZE_BYTES  (PATTERN_SIZE_WORDS * sizeof(uint32_t))
+
+/*
+ *  The pattern used to fill the entire stack.
+ */
+
+#define BYTE_PATTERN 0xA5
+#define U32_PATTERN 0xA5A5A5A5
+
+typedef struct {
+   uint32_tpattern[ PATTERN_SIZE_WORDS ];
+} Stack_check_Control;
 
 /*
  *  Variable to indicate when the stack checker has been initialized.
diff --git a/cpukit/libmisc/stackchk/internal.h 
b/cpukit/libmisc/stackchk/internal.h
deleted file mode 100644
index d64adba..000
--- a/cpukit/libmisc/stackchk/internal.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/*  
- * @file rtems/internal.h
- *
- * @defgroup libmisc_internal Internal Stack Checker Information
- *
- * @ingroup libmisc
- * @brief Stack Checker Internal Information
- *  
- * This include file contains internal information
- * for the RTEMS stack checker.
- */
-
-/*
- * COPYRIGHT (c) 1989-2006.
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-
-#ifndef __INTERNAL_STACK_CHECK_h
-#define __INTERNAL_STACK_CHECK_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- *  This structure is used to fill in and compare the "end of stack"
- *  marker pattern.
- *  pattern area must be a multiple of 4 words.
- */
-
-#ifdef CPU_STACK_CHECK_SIZE
-#define PATTERN_SIZE_WORDS  (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3)
-#else
-#define PATTERN_SIZE_WORDS  (4)
-#endif
-
-#define PATTERN_SIZE_BYTES  (PATTERN_SIZE_WORDS * sizeof(uint32_t))
-
-typedef struct {
-   uint32_tpattern[ PATTERN_SIZE_WORDS ];
-} Stack_check_Control;
-
-/*
- *  The pattern used to fill the entire stack.
- */
-
-#define BYTE_PATTERN 0xA5
-#define U32_PATTERN 0xA5A5A5A5
-
-/*
- *  rtems_stack_checker_create_extension
- */
-
-bool rtems_stack_checker_create_extension(
-  Thread_Control *running,
-  Thread_Control *the_thread
-);
-
-/*
- *  rtems_stack_checker_begin_extension
- */
-
-void rtems_stack_checker_begin_extension(
-  Thread_Control *the_thread
-);
-
-/*
- *  rtems_stack_checker_switch_extension
- */
-
-void rtems_stack_checker_switch_extension(
-  Thread_Control *running,
-  Thread_Control *heir
-);
-
-/*
- *  rtems_stack_checker_fatal_extension
- */
-
-void rtems_stack_checker_fatal_extension(
-Internal_errors_Source  source,
-boolis_internal,
-uint32_tstatus
-);
-
-/*
- *  rtems_stack_checker_report_usage
- */
-
-void rtems_stack_checker_report_usage( void );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-/* end of include file */
-- 
1.8.4.5

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


[PATCH 3/3] stackchk: Fix stack checker thread initialization

2016-09-07 Thread Sebastian Huber
Commit 0fd6f25507fbea5f4892b71b58837cdda17856b4 relaxed the thread begin
extension execution environment.  This broke the stack check which only
partially initialized the stack pattern in its create extension.  Move
the part of the begin extension to the create extension.
---
 cpukit/libmisc/stackchk/check.c| 19 +++
 cpukit/libmisc/stackchk/stackchk.h | 15 +--
 2 files changed, 4 insertions(+), 30 deletions(-)

diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c
index 6b6b98b..ae4ae79 100644
--- a/cpukit/libmisc/stackchk/check.c
+++ b/cpukit/libmisc/stackchk/check.c
@@ -202,28 +202,15 @@ bool rtems_stack_checker_create_extension(
 )
 {
   Stack_check_Initialize();
-
-  if (the_thread)
-Stack_check_Dope_stack(&the_thread->Start.Initial_stack);
-
-  return true;
-}
-
-/*
- *  rtems_stack_checker_Begin_extension
- */
-void rtems_stack_checker_begin_extension(
-  Thread_Control *the_thread
-)
-{
-  if ( the_thread->Object.id == 0 )/* skip system tasks */
-return;
+  Stack_check_Dope_stack(&the_thread->Start.Initial_stack);
 
   memcpy(
 Stack_check_Get_pattern(&the_thread->Start.Initial_stack),
 Stack_check_Pattern,
 PATTERN_SIZE_BYTES
   );
+
+  return true;
 }
 
 /*
diff --git a/cpukit/libmisc/stackchk/stackchk.h 
b/cpukit/libmisc/stackchk/stackchk.h
index f7f75b6..8ad1733 100644
--- a/cpukit/libmisc/stackchk/stackchk.h
+++ b/cpukit/libmisc/stackchk/stackchk.h
@@ -97,19 +97,6 @@ bool rtems_stack_checker_create_extension(
 );
 
 /**
- * @brief Stack Checker Task Begin Extension
- *
- * This method is the task begin extension for the stack checker.
- *
- * @param[in] the_thread points to task starting to execute
- *
- * @note This is called from the internal method _Thread_Handler.
- */
-void rtems_stack_checker_begin_extension(
-  Thread_Control *the_thread
-);
-
-/**
  * @brief Stack Checker Task Context Switch Extension
  *
  * This method is the task context switch extension for the stack checker.
@@ -138,7 +125,7 @@ void rtems_stack_checker_switch_extension(
   0,   /* rtems_task_restart */ \
   0,   /* rtems_task_delete  */ \
   rtems_stack_checker_switch_extension,/* task_switch  */ \
-  rtems_stack_checker_begin_extension, /* task_begin   */ \
+  0,   /* task_begin   */ \
   0,   /* task_exitted */ \
   0 /* rtems_stack_checker_fatal_extension */, /* fatal*/ \
 }
-- 
1.8.4.5

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Conflicting types for 'rtems_3c509_driver_attach'

2016-09-07 Thread Saeed Ehteshamifar
Hello,

In the networkconfig-qemu.h file of network demos
, the attach function for 3c509
device is defined as:
extern int rtems_3c509_driver_attach (struct rtems_bsdnet_ifconfig *, int);

However in the source tree, it's defined as:
./c/src/lib/libbsp/i386/pc386/3c509/3c509.c:670:int
rtems_3c509_driver_attach (struct rtems_bsdnet_ifconfig *config )

This leads to a compile error for network-demos out-of-the-box. Any
comments, reviews on this?

Best Regards,
Saeed
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 8/8] score: Rework thread priority management

2016-09-07 Thread Gedare Bloom
On Tue, Sep 6, 2016 at 8:40 AM, Sebastian Huber
 wrote:
> Add priority nodes which contribute to the overall thread priority.
>
> The actual priority of a thread is now an aggregation of priority nodes.
> The thread priority aggregation for the home scheduler instance of a
> thread consists of at least one priority node, which is normally the
> real priority of the thread.  The locking protocols (e.g. priority
> ceiling and priority inheritance), rate-monotonic period objects and the
> POSIX sporadic server add, change and remove priority nodes.
>
> A thread changes its priority now immediately, e.g. priority changes are
> not deferred until the thread releases its last resource.
>
> Replace the _Thread_Change_priority() function with
>
>  * _Thread_Priority_perform_actions(),
>  * _Thread_Priority_add(),
>  * _Thread_Priority_remove(),
>  * _Thread_Priority_change(), and
>  * _Thread_Priority_update().
>
> Update #2412.
> Update #2556.
> ---
>  cpukit/libmisc/capture/capture.h   |   2 +-
>  cpukit/libmisc/cpuuse/cpuusagetop.c|   6 +-
>  cpukit/posix/include/rtems/posix/pthreadimpl.h |   2 +
>  cpukit/posix/include/rtems/posix/threadsup.h   |   8 +-
>  cpukit/posix/src/killinfo.c|   2 +-
>  cpukit/posix/src/mutexsetprioceiling.c |  13 +-
>  cpukit/posix/src/pthread.c | 103 ++-
>  cpukit/posix/src/pthreadcreate.c   |  32 +-
>  cpukit/posix/src/pthreadgetschedparam.c|   2 +-
>  cpukit/posix/src/pthreadsetschedparam.c| 143 ++--
>  cpukit/posix/src/pthreadsetschedprio.c |  92 +--
>  cpukit/rtems/include/rtems/rtems/ratemon.h |   6 +
>  cpukit/rtems/src/ratemoncancel.c   |  12 +-
>  cpukit/rtems/src/ratemoncreate.c   |   2 +
>  cpukit/rtems/src/ratemonperiod.c   |  15 +-
>  cpukit/rtems/src/semsetpriority.c  |  18 +-
>  cpukit/rtems/src/tasksetpriority.c |  95 +--
>  cpukit/score/Makefile.am   |   3 +-
>  cpukit/score/include/rtems/score/coremutex.h   |   4 +-
>  cpukit/score/include/rtems/score/coremuteximpl.h   | 148 ++--
>  cpukit/score/include/rtems/score/mrsp.h|  12 +-
>  cpukit/score/include/rtems/score/mrspimpl.h| 255 ---
>  cpukit/score/include/rtems/score/priority.h| 159 +++-
>  cpukit/score/include/rtems/score/priorityimpl.h| 417 ++
>  cpukit/score/include/rtems/score/scheduler.h   |  28 +-
>  cpukit/score/include/rtems/score/schedulercbs.h|  17 +-
>  cpukit/score/include/rtems/score/scheduleredf.h|  26 +-
>  .../score/include/rtems/score/scheduleredfimpl.h   |  14 +-
>  cpukit/score/include/rtems/score/schedulerimpl.h   |  86 ++-
>  cpukit/score/include/rtems/score/schedulernode.h   |  19 +-
>  .../score/include/rtems/score/schedulernodeimpl.h  |  18 +-
>  .../score/include/rtems/score/schedulersmpimpl.h   |  11 +-
>  cpukit/score/include/rtems/score/thread.h  |  53 +-
>  cpukit/score/include/rtems/score/threadimpl.h  | 261 ---
>  cpukit/score/include/rtems/score/threadq.h |  98 ++-
>  cpukit/score/include/rtems/score/threadqimpl.h | 145 ++--
>  cpukit/score/preinstall.am |   4 +
>  cpukit/score/src/mutex.c   |  21 +-
>  cpukit/score/src/schedulercbs.c|  22 +-
>  cpukit/score/src/schedulercbsnodeinit.c|   1 +
>  cpukit/score/src/schedulercbsreleasejob.c  |  40 +-
>  cpukit/score/src/schedulercbsunblock.c |  51 +-
>  cpukit/score/src/schedulerdefaultnodeinit.c|   4 +-
>  cpukit/score/src/schedulerdefaultreleasejob.c  |  20 +-
>  cpukit/score/src/scheduleredfchangepriority.c  |   8 +-
>  cpukit/score/src/scheduleredfnodeinit.c|   6 +-
>  cpukit/score/src/scheduleredfreleasejob.c  |  84 +--
>  cpukit/score/src/scheduleredfunblock.c |   2 +-
>  cpukit/score/src/scheduleredfyield.c   |   2 +-
>  cpukit/score/src/schedulerpriority.c   |   2 +-
>  cpukit/score/src/schedulerprioritysmp.c|   7 +-
>  cpukit/score/src/schedulersimplesmp.c  |   2 +-
>  cpukit/score/src/schedulerstrongapa.c  |   7 +-
>  cpukit/score/src/thread.c  |   4 +-
>  cpukit/score/src/threadchangepriority.c| 362 ++---
>  cpukit/score/src/threadinitialize.c|   7 +-
>  cpukit/score/src/threadmp.c|   3 +-
>  cpukit/score/src/threadqenqueue.c  | 120 +--
>  cpukit/score/src/threadqflush.c|   9 +-
>  cpukit/score/src/threadqops.c  | 839 
> -
>  cpukit/score/src/threadrestart.c   |  61 +-
>  cpukit/score/src/threadsetpriority.c   |  59 --
>  cpukit/score/src/threadtimeout.c   |   3 +
>  testsuites/smp

Re: Raspberry Pi 2 SMP pushed to the master - Was: [PATCH 11 minor addeum] ...

2016-09-07 Thread Pavel Pisa
Hello Sebastian, Alan and others,

On Wednesday 07 of September 2016 09:27:21 Sebastian Huber wrote:
> > should they go to the same compilation unit as _CPU_SMP_Start_processor
> > or bspsmp-init.c separate one.
> >
> > Or I should not care about smpfatal08 or add required symbol to it.
>
> It would be nice to get the smpfatal08 to work with this BSP. There is
> already a special case for the the qoriq BSPs in this test, so maybe we
> need something similar for the RPI.


I have cleanly divided file startup/bspsmp.c into two parts

  startup/bspsmp_api.c which holds SuperCore requred/defined functions
   which are replaced by smpfatal08

  startup/bspsmp_init.c which holds IPI and secondary CPU initialization

This way there is no need to polute smpfatal08 by BSP specific code.

Because there is no functional/code change from already published
series, I have pushed patch series into master.

Thanks for review and Alan Cudmore for number of testing rounds.

Best wishes,

Pavel

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel