summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* smp: Add PowerPC supportSebastian Huber2013-05-318-4/+142
|
* smptests/smplock01: New testSebastian Huber2013-05-316-0/+463
|
* smp: New SMP lock APISebastian Huber2013-05-3118-463/+470
| | | | | | | | | | | | | | Move the SMP lock implementation to the CPU port. An optimal SMP lock implementation is highly architecture dependent. For example the memory models may be fundamentally different. The new SMP lock API has a flaw. It does not provide the ability to use a local context for acquire and release pairs. Such a context is necessary to implement for example the Mellor-Crummey and Scott (MCS) locks. The SMP lock is currently used in _Thread_Disable_dispatch() and _Thread_Enable_dispatch() and makes them to a giant lock acquire and release. Since these functions do not pass state information via a local context there is currently no use case for such a feature.
* score: Mark as no returnSebastian Huber2013-05-311-5/+7
| | | | Mark rtems_smp_secondary_cpu_initialize() as no return.
* score: Remove idle field of Per_CPU_ControlSebastian Huber2013-05-319-22/+53
| | | | | | This field is unused except for special case simulator clock drivers. In these places use an alternative. Add and use _Thread_Set_global_exit_status() and _Thread_Get_global_exit_status().
* bsps: Use _Objects_Information_tableSebastian Huber2013-05-311-203/+134
| | | | | | Eliminate copy and paste. Use the _Objects_Information_table since this will take into account that more than one internal thread may exist, e.g. MPCI thread or idle threads of secondary processors.
* bsps/arm: Use Write-Allocate cache for ARMv7Sebastian Huber2013-05-311-2/+2
|
* bsps/arm: Merge ARMv7 MMU section definitionsSebastian Huber2013-05-315-80/+69
|
* smptests: Use priority ceiling for locked printSebastian Huber2013-05-312-2/+3
| | | | | In case the printf() blocks on a semaphore it was possible to end up in a livelock.
* smp: Move secondary CPU initialization requestSebastian Huber2013-05-292-6/+4
| | | | | Do not assume that the scheduler selects the main processor for the initialization thread.
* smp: Use _CPU_Fatal_halt()Sebastian Huber2013-05-291-2/+2
|
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-2913-293/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete bsp_smp_wait_for(). Other parts of the system work without timeout, e.g. the spinlocks. Using a timeout here does not make the system more robust. Delete bsp_smp_cpu_state and replace it with Per_CPU_State. The Per_CPU_State follows the Score naming conventions. Add _Per_CPU_Change_state() and _Per_CPU_Wait_for_state() functions to change and observe states. Use Per_CPU_State in Per_CPU_Control instead of the anonymous integer. Add _CPU_Processor_event_broadcast() and _CPU_Processor_event_receive() functions provided by the CPU port. Use these functions in _Per_CPU_Change_state() and _Per_CPU_Wait_for_state(). Add prototype for _SMP_Send_message(). Delete RTEMS_BSP_SMP_FIRST_TASK message. The first context switch is now performed in rtems_smp_secondary_cpu_initialize(). Issuing the first context switch in the context of the inter-processor interrupt is not possible on systems with a modern interrupt controller. Such an interrupt controler usually requires a handshake protocol with interrupt acknowledge and end of interrupt signals. A direct context switch in an interrupt handler circumvents the interrupt processing epilogue and may leave the system in an inconsistent state. Release lock in rtems_smp_process_interrupt() even if no message was delivered. This prevents deadlock of the system. Simplify and format _SMP_Send_message(), _SMP_Request_other_cores_to_perform_first_context_switch(), _SMP_Request_other_cores_to_dispatch() and _SMP_Request_other_cores_to_shutdown().
* smp: Delete bsp_smp_secondary_cpu_initialize()Sebastian Huber2013-05-295-29/+31
| | | | | | | Do not call bsp_smp_secondary_cpu_initialize() in rtems_smp_secondary_cpu_initialize(). This allows more flexibilty in the BSP low-level code. Specify context requirements for a call to rtems_smp_secondary_cpu_initialize().
* smp: Delete rtems_smp_send_message()Sebastian Huber2013-05-291-15/+0
|
* smp: Delete rtems_smp_initialize_per_cpu()Sebastian Huber2013-05-291-10/+0
|
* smp: Simplify main CPU initializationSebastian Huber2013-05-296-35/+32
| | | | | | Call _SMP_Handler_initialize() later and move bsp_smp_initialize() into _SMP_Handler_initialize(). Change bsp_smp_initialize() prototype to match integer types of calling context.
* smp: Make CPU_ALLOCATE_INTERRUPT_STACK optionalSebastian Huber2013-05-292-13/+13
|
* smp: Rely on BSS initializationSebastian Huber2013-05-291-5/+0
| | | | | | The _Per_CPU_Information is part of the BSS segment and must be zero initialized. Some processors may already poll some per-CPU fields and wait for a state change at this point.
* smp: Include missing headerSebastian Huber2013-05-291-0/+2
|
* smp: Replace task delete with suspendSebastian Huber2013-05-291-0/+4
| | | | The rtems_task_delete() does not work on SMP at the moment. See PR1814.
* Update from automake-1.13.2.Ralf Corsépius2013-05-277-538/+433
|
* smptests/smp09: Add missing newlineSebastian Huber2013-05-271-1/+1
|
* smptests/smp01: Do not assume CPU 0 runs InitSebastian Huber2013-05-271-19/+22
|
* smptests/smp01: Fix semaphore countSebastian Huber2013-05-278-3/+12
| | | | The locked print needs one semaphore.
* bsp/qoriq: Avoid NULL pointer accessSebastian Huber2013-05-271-5/+11
|
* bsps/arm: Add CLOCK_DRIVER_USE_FAST_IDLE optionSebastian Huber2013-05-272-0/+12
|
* bsps/arm: Move .fast_text sectionSebastian Huber2013-05-271-9/+9
| | | | | | | Move the .fast_text section after the .vector section. The .fast_test section is normally not empty in case some functions should execute from an internal SRAM. This would be also the area for the .vector section. The vector table must be the first content of such an area.
* bsps: Update due to linker changesSebastian Huber2013-05-278-170/+268
| | | | | | | In case the VMA and LMA regions differ, the LMA start address is now no longer aligned with the alignment of the input sections: http://sourceware.org/bugzilla/show_bug.cgi?id=15222
* arm: Add CPU specific idle thread for ARMv7Sebastian Huber2013-05-274-4/+10
|
* arm: Fix CPSR and SPSR accessSebastian Huber2013-05-272-8/+8
| | | | | | | | | | | | | | | The GNU assembler translates for example a msr spsr, rN into msr SPSR_fc, rN This would update only a subset of the register and leads to an incomplete exceptions restore sequence resulting in system corruption. Correct is this: msr SPSR_fsxc, rN
* dosfs: Add RTEMS_DOSFS_SEMAPHORES_PER_INSTANCERalf Kirchner2013-05-242-0/+8
|
* dosfs: Fix typoRalf Kirchner2013-05-241-1/+1
|
* fstests: Use "tmacros.h" instead of "pmacros.h"Ralf Kirchner2013-05-241-1/+1
|
* sptests: add test to demonstrate bug in strict order mutexGedare Bloom2013-05-206-1/+257
|
* sptests: add test for priority inversion with multiple locksGedare Bloom2013-05-206-1/+211
|
* score: use reference with strict mutexGedare Bloom2013-05-181-1/+1
|
* smp: Add maximum_processors field to configSebastian Huber2013-05-169-42/+32
| | | | | | | Delete rtems_configuration_get_smp_maximum_processors(). Delete rtems_configuration_smp_maximum_processors variable. Add maximum_processors field to rtems_configuration_table if RTEMS_SMP is defined. Add rtems_configuration_get_maximum_processors().
* fstests/fsstatvfs: Fix end of test messageSebastian Huber2013-05-161-1/+1
|
* shell: Add df commandAndrei Mozzhuhin2013-05-164-1/+243
|
* dosfs: Add statvfs() supportAndrei Mozzhuhin2013-05-169-2/+221
|
* shell: Fix NULL pointer accessAndreas Heinig2013-05-161-1/+1
|
* Add c++ guard to header.Daron Chabot2013-05-161-0/+8
|
* libcsupport: Avoid division by zeroSebastian Huber2013-05-101-1/+1
|
* libtests/malloc04: Prevent compiler optimizationsSebastian Huber2013-05-101-1/+6
|
* arm: Support VFP-D32 and NeonSebastian Huber2013-05-1012-40/+415
|
* arm: Simplify architecture selectionSebastian Huber2013-05-101-63/+5
|
* score: Add CPU context validationSebastian Huber2013-05-1034-0/+1136
|
* arm: Add FUNCTION_THUMB_ENTRY(), etc.Sebastian Huber2013-05-101-0/+17
| | | | Add FUNCTION_THUMB_ENTRY(), FUNCTION_ENTRY() and FUNCTION_END().
* Revert bootstrap whitespace changes.Chris Johns2013-05-1014-0/+14
|
* sparc: Fix problem with assembler filesSebastian Huber2013-05-071-1/+1
|