Permalink
Commits on Nov 22, 2017
  1. tests: Use exponential backoff in locked_vprintf()

    sebhub committed Nov 22, 2017
    Without the exponential backoff a livelock was observed on a QorIQ P2020
    with test SMP 5.
  2. bsp/qoriq: Implement bsp_reset()

    sebhub committed Nov 21, 2017
  3. bsps: Add BSP_VERBOSE_FATAL_EXTENSION

    sebhub committed Nov 21, 2017
    Add BSP_VERBOSE_FATAL_EXTENSION to RTEMS_BSP_CLEANUP_OPTIONS to
    optionally print the RTEMS version, the fatal source and the fatal code
    in the shared bsp_fatal_extension().
    
    Close #3248.
  4. bsps: Simplify RTEMS_BSP_CLEANUP_OPTIONS

    sebhub committed Nov 21, 2017
    Remove BSP-specific defaults for RTEMS_BSP_CLEANUP_OPTIONS to simplify
    the BSP configuration and documentation.  Change defaults to:
    
    BSP_PRESS_KEY_FOR_RESET=0
    BSP_RESET_BOARD_AT_EXIT=1
    BSP_PRINT_EXCEPTION_CONTEXT=1
  5. powerpc: Remove _BSP_Fatal_error()

    sebhub committed Nov 21, 2017
    BSPs can use the bsp_fatal_extension() to provide BSP-specific fatal
    error handling.  There is no need for a _BSP_Fatal_error().
    
    Close #3246.
  6. powerpc: Replace BSP_panic() with rtems_panic()

    sebhub committed Nov 21, 2017
    Due to a new rtems_panic() implementation, it is possible to replace the
    PowerPC-specific BSP_panic() with rtems_panic().  Remove BSP_panic()
    implementations.
    
    Close #3245.
  7. sapi: New implementation of rtems_panic()

    sebhub committed Nov 21, 2017
    The previous rtems_panic() implementation was quite heavy weight.  It
    depended on _exit() which calls the global destructors.  It used
    fprintf(stderr, ...) for output which depends on an initialized console
    device and the complex fprintf().
    
    Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic()
    and output via vprintk().
    
    Update #3244.
  8. INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL

    sebhub committed Nov 20, 2017
    Delete superfluous INTERNAL_ERROR_POSIX_INIT_THREAD_ENTRY_IS_NULL.
    
    Update #3243.
  9. score: Simplify global construction

    sebhub committed Nov 17, 2017
    Update #3243.
  10. bsps: Add default getentropy() implementation

    sebhub committed Nov 22, 2017
    Update #3239.
    Close #3249.
Commits on Nov 21, 2017
  1. Fix comments for object lookup error to RTEMS status map

    Martin Erik Werner committed with Joel Sherrill Nov 20, 2017
    Based on correlation with the enum for object lookup errors in
    cpukit/score/include/rtems/score/objectimpl.h:
    
    typedef enum {
     OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL,
     OBJECTS_INVALID_NAME,
     OBJECTS_INVALID_ADDRESS,
     OBJECTS_INVALID_ID,
     OBJECTS_INVALID_NODE
    } Objects_Name_or_id_lookup_errors;
    
    update the comments regarding the object lookup error to status map to
    match.
    
    Signed-off-by: Martin Erik Werner <martin.werner@aacmicrotec.com>
  2. leon, gr1553rt: adding SMP protection

    daniel-hellstrom committed Nov 16, 2017
    Add device spin-lock around internal data structures. Since the driver
    provides a low-level C API accessing the descriptors the application
    still needs to implement part of the SMP synchonization needed between
    Interrupt handler and tasks.
    
    Close #2355.
  3. posix: _POSIX_Threads_Get_sched_param_sporadic()

    sebhub committed Nov 21, 2017
    Remove api parameter to simplify the calling functions.
    
    Update #2514.
Commits on Nov 20, 2017
  1. score: Optimize scheduler priority updates

    sebhub committed Nov 9, 2017
    Thread priority changes may append or prepend the thread to its priority
    group on the scheduler ready queue.  Previously, a separate priority
    value and a prepend-it flag in the scheduler node were used to propagate
    a priority change to the scheduler.
    
    Now, use an append-it bit in the priority control and reduce the plain
    priority value to 63 bits.
    
    This change leads to a significant code size reduction (about 25%) of
    the SMP schedulers.  The negligible increase of the standard priority
    scheduler is due to some additional shift operations
    (SCHEDULER_PRIORITY_MAP() and SCHEDULER_PRIORITY_UNMAP()).
    
    Before:
    
       text filename
        136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o
        464 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o
         24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o
        108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o
        292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o
        264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o
    
       text filename
        280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o
        488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o
        200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o
        164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o
        328 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o
        200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o
    
       text filename
      24112 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o
    
       text filename
      37204 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o
    
       text filename
      42236 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
    
    After:
    
       text filename
        136 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleblock.o
        272 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimplechangepriority.o
         24 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimple.o
        108 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleschedule.o
        292 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleunblock.o
        264 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulersimpleyield.o
    
       text filename
        280 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityblock.o
        488 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerprioritychangepriority.o
        208 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriority.o
        164 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityschedule.o
        332 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityunblock.o
        200 sparc-rtems5/c/erc32/cpukit/score/src/libscore_a-schedulerpriorityyield.o
    
       text filename
      18860 arm-rtems5/c/imx7/cpukit/score/src/libscore_a-scheduleredfsmp.o
    
       text filename
      28520 sparc-rtems5/c/gr740/cpukit/score/src/libscore_a-scheduleredfsmp.o
    
       text filename
      32664 powerpc-rtems5/c/qoriq_e6500_32/cpukit/score/src/libscore_a-scheduleredfsmp.o
  2. bsps/powerpc: Fix PPC_EXC_CONFIG_USE_FIXED_HANDLER

    sebhub committed Nov 20, 2017
    For the SPE support we must store the upper half of r3 as well.
    
    Update #3085.
  3. bsps: Use a state in default getentropy()

    sebhub committed Nov 17, 2017
    Use the boot time to initialize the state.  Use the state, the current
    CPU counter and a very simple pseudo random number generator for
    getentropy(). At least, this enables to pass the test "GETENTROPY 1" on
    ERC32.
    
    Update #3239.
Commits on Nov 17, 2017
  1. bsp/atsam: Improve SDRAM initialization.

    c-mauderer committed with sebhub Aug 1, 2017
    According to the manual, MR has to be read back and a memory barrier has
    to be added after MR is written during SDRAM initialization.
  2. bsp/atsam: Move clock and SDRAM init to SRAM.

    c-mauderer committed with sebhub Nov 17, 2017
    If necessary, the BSP can now have it's clock and SDRAM initialization
    in the SRAM instead of the SDRAM. This allows to change the clock
    frequency during the startup of an SDRAM application.
  3. bsp/atsam: Add getentropy().

    c-mauderer committed with sebhub Nov 13, 2017
    Update #3239.
  4. getentropy: Add test.

    c-mauderer committed with sebhub Nov 13, 2017
    Update #3239.
  5. getentropy: Add cpu counter based implementation.

    c-mauderer committed with sebhub Nov 13, 2017
    Update #3239.
  6. cpukit: Add _arc4random_getentropy_fail.

    c-mauderer committed with sebhub Nov 13, 2017
    Add a default implementation of _arc4random_getentropy_fail with an
    internal error.
    
    Update #3239.
  7. score: Adjust _Scheduler_EDF_SMP_Insert_ready()

    sebhub committed Nov 10, 2017
    Use only one parameter to compute the next generation.  Use index 0 for
    LIFO ordering, and index 1 for FIFO ordering.
  8. sptests/spversion01: Simplify configuration

    sebhub committed Nov 16, 2017
    Update #3199.
Commits on Nov 16, 2017
  1. psx05: Remove CONFIGURE_DISABLE_SMP_CONFIGURATION

    sebhub committed Nov 16, 2017
    Update #3020.
  2. score: Fix priority ceiling updates

    sebhub committed Nov 16, 2017
    We must not clear the priority updates in _Thread_queue_Extract_locked()
    since this function is used by the priority ceiling surrender operations
    after the ceiling priority handover from the previous owner to the new
    owner. This is especially important in SMP configurations.
    
    Move the _Thread_queue_Context_clear_priority_updates() invocation to
    the callers.
    
    Close #3237.
  3. score: Fix _Thread_queue_Flush_critical()

    sebhub committed Nov 16, 2017
    The thread queue extract operations performed by the
    _Thread_queue_Flush_critical() may result in a priority change of the
    thread queue owner. Carry out the scheduler priority update operation.
    This is especially important in SMP configurations.
    
    Close #3236.
  4. rtems: rtems_semaphore_flush() with prio inherit

    sebhub committed Nov 16, 2017
    The _Semaphore_Get_operations() must return the proper operations for
    priority inheritance semaphores.
    
    Add a test case for rtems_semaphore_flush() with priority inheritance.
    
    Close #3235.
  5. score: Check thread resource count in timer server

    sebhub committed Nov 16, 2017
    The watchdog routines invoked by the timer server may use mutexes for
    synchronization.  Ensure that the resource count of the timer server is
    zero after each watchdog routine invocation.  This helps to detect
    broken watchdog routines.
Commits on Nov 15, 2017
  1. libio: Add assert to rtems_libio_iop_drop()

    sebhub committed Nov 15, 2017
    This assert helps to detect an invalid reference counting in RTEMS_DEBUG
    configurations.
    
    Update #3132.
  2. dl01, dl02, dl05: Fix unresolved printf symbol

    sebhub committed Nov 15, 2017
    The link time wrap of printf leads to unresolved symbols in the loadable
    modules.  This resulted in infinite loops and test timeouts.  Use
    rtems_printf() for output.
    
    Update #3199.
Commits on Nov 14, 2017