summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu (follow)
Commit message (Collapse)AuthorAgeFilesLines
* smp: Add ARM supportSebastian Huber2013-05-316-2/+180
|
* smp: Add PowerPC supportSebastian Huber2013-05-314-1/+116
|
* smp: New SMP lock APISebastian Huber2013-05-3111-27/+334
| | | | | | | | | | | | | | 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.
* smp: Simplify SMP initialization sequenceSebastian Huber2013-05-293-0/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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().
* 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
* arm: Support VFP-D32 and NeonSebastian Huber2013-05-109-38/+393
|
* arm: Simplify architecture selectionSebastian Huber2013-05-101-63/+5
|
* score: Add CPU context validationSebastian Huber2013-05-1027-0/+889
|
* 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
|
* sparc.h: Included stdint.hMohammed Khoory2013-05-061-0/+2
| | | | | | This header uses uint32_t but does not include stdint.h This may cause problems when compiling applications that include BSP headers that include this file (leon.h for example)
* arm: Switch to ARM only for Thumb-1Sebastian Huber2013-05-031-1/+1
| | | | The Thumb-2 instruction set as encodings for the relevant instructions.
* arm: Fix DEFINE_FUNCTION_ARM() for ARMv7-ARSebastian Huber2013-05-031-1/+1
|
* score/cpu/.../i386.h: PR2020: Remove soft float referencesJoel Sherrill2013-05-011-46/+20
| | | | | i386 soft-float is no longer supported by gcc. Dropping related code in the i386 score/cpu code.
* Using the generic atomic ops to implement UP mode atomic for all ↵WeiY2013-05-0145-0/+661
| | | | architectures. SMP atomic port will be later.
* mips: Fix warningsSebastian Huber2013-04-231-0/+1
|
* sparc/cpu.h: Add commentsJoel Sherrill2013-03-181-0/+3
|
* m68k/cpu.h: Fix formatting and add comment blockJoel Sherrill2013-03-181-3/+10
|
* nios2: DocumentationSebastian Huber2013-03-111-13/+2
|
* nios2: Use NIOS2_CTLREG_INDEX_STATUSJeffrey O. Hill2013-03-111-1/+2
|
* nios2: Set CPU_ISR_PASSES_FRAME_POINTER to FALSEJeffrey O. Hill2013-03-112-23/+3
| | | | | This reflects what is currently happening. Define CPU_Interrupt_frame type to void to prevent accidental usage.
* nios2: Add _Nios2_Count_leading_zeros()Jeffrey O. Hill2013-03-113-0/+75
| | | | | Add _Nios2_Count_trailing_zeros(). They are currently more efficient than the corresponding GCC builtins.
* nios2: Rename fileJeffrey O. Hill2013-03-112-1/+1
|
* RTEMS: Delete ChangeLog files.Gedare Bloom2013-03-0816-6866/+0
| | | | | | | | | This commit deletes all RTEMS ChangeLog files. These files have been abandoned since converting to git version control. The historical data may be recovered by checking out any commit before this one. Most of the contents of these ChangeLog files can also be found in the git log. Two external ChangeLog files, ChangeLog.slac and ChangeLog.zlib, remain.
* cpukit moxie: Style correctionsJoel Sherrill2013-02-282-71/+7
|
* Common file changes in support of Moxie portAnthony Green2013-02-281-0/+1
| | | | Signed-off-by: Anthony Green <green@moxielogic.com>
* Add Moxie CPU supportAnthony Green2013-02-289-0/+1647
| | | | Signed-off-by: Anthony Green <green@moxielogic.com>
* add __ARM_ARCH_6ZK__ to cpukit/score/cpu/arm/rtems/score/arm.hCudmore, Alan P. (GSFC-5820)2013-02-251-0/+4
|
* score: atomic support for RTEMS. Cleanup.WeiY2013-02-072-144/+144
|
* score: atomic support for RTEMS. Atomic operations for PowerPC.WeiY2013-02-071-0/+537
|
* score: atomic support for RTEMS. Atomic operations for i386.WeiY2013-02-071-0/+341
|
* score: atomic support for RTEMS automake and autoconf changesWeiY2013-02-074-0/+10
|
* NIOS2: Fix register restore sequence in epilogueSebastian Huber2013-01-141-3/+3
| | | | | This fix is critical. The previous implementation leads to system corruption.
* cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill2013-01-1084-211/+178
| | | | | This is the result of a sed script which converts all uses of @{ into a consistent form.
* cpukit: Add EOL on files missing EOL at EOFJoel Sherrill2013-01-1099-99/+99
|
* score: Doxygen Clean Up Task #14Alex Ivanov2013-01-1020-30/+290
|
* score: Doxygen Clean Up Task #12Alex Ivanov2013-01-1020-134/+446
| | | | http://www.google-melange.com/gci/task/view/google/gci2012/8110207
* score: Doxygen Clean Up Task #17Alex Ivanov2013-01-093-18/+30
|
* score: Doxygen Clean Up Task #16Alex Ivanov2013-01-0819-1355/+1429
|
* score: Doxygen Clean Up Task #4Alex Ivanov2013-01-0820-1185/+1256
|
* score: Doxygen Clean Up Task #15Alex Ivanov2013-01-0820-733/+769
|
* score: Doxygen Clean Up Task #11Mathew Kallada2013-01-0720-830/+1068
|
* arm: Add AIRCR register definesSebastian Huber2013-01-071-0/+15
|
* arm: Implement CPU_Exception_frame_print()Sebastian Huber2013-01-073-35/+40
|
* arm: Add and use _ARMV7M_Exception_default()Sebastian Huber2013-01-073-0/+56
|
* arm: Include <rtems/score/cpu.h>Sebastian Huber2013-01-0716-40/+20
|
* arm: Provide CPU_Exception_frame for ARMv7-MSebastian Huber2013-01-071-14/+12
|
* arm: Rename inline functionsSebastian Huber2013-01-071-2/+2
| | | | | Rename arm_status_irq_enable() to _ARMV4_Status_irq_enable() and arm_status_restore() to _ARMV4_Status_restore().