| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
| |
Add FUNCTION_THUMB_ENTRY(), FUNCTION_ENTRY() and FUNCTION_END().
|
| |
|
| |
|
|
|
|
|
|
| |
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)
|
|
|
|
| |
The Thumb-2 instruction set as encodings for the relevant instructions.
|
| |
|
|
|
|
|
| |
i386 soft-float is no longer supported by gcc. Dropping
related code in the i386 score/cpu code.
|
|
|
|
| |
architectures. SMP atomic port will be later.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This reflects what is currently happening. Define CPU_Interrupt_frame
type to void to prevent accidental usage.
|
|
|
|
|
| |
Add _Nios2_Count_trailing_zeros(). They are currently more efficient
than the corresponding GCC builtins.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
Signed-off-by: Anthony Green <green@moxielogic.com>
|
|
|
|
| |
Signed-off-by: Anthony Green <green@moxielogic.com>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This fix is critical. The previous implementation leads to system
corruption.
|
|
|
|
|
| |
This is the result of a sed script which converts all uses
of @{ into a consistent form.
|
| |
|
| |
|
|
|
|
| |
http://www.google-melange.com/gci/task/view/google/gci2012/8110207
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Rename arm_status_irq_enable() to _ARMV4_Status_irq_enable() and
arm_status_restore() to _ARMV4_Status_restore().
|