summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/powerpc/rtems/score/cpu.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-02-19score: Rename bsp_smp_initialize()Sebastian Huber1-0/+2
Rename bsp_smp_initialize() into _CPU_SMP_Initialize() since every CPU port must supply this function.
2014-02-14score: Remove volatile from asm statementsSebastian Huber1-1/+1
The instructions to get the processor current index have no side-effects.
2014-02-14score: Add CPU counter supportSebastian Huber1-0/+24
Add a CPU counter interface to allow access to a free-running counter. It is useful to measure short time intervals. This can be used for example to enable profiling of critical low-level functions. Add two busy wait functions rtems_counter_delay_ticks() and rtems_counter_delay_nanoseconds() implemented via the CPU counter.
2014-02-05score: _CPU_Context_switch_to_first_task_smp()Sebastian Huber1-3/+0
Delete _CPU_Context_switch_to_first_task_smp() and use _CPU_Context_restore() instead.
2014-02-04Add thread-local storage (TLS) supportSebastian Huber1-1/+2
Tested and implemented on ARM, m68k, PowerPC and SPARC. Other architectures need more work.
2013-11-18powerpc: Add r2 to CPU contextSebastian Huber1-2/+8
The r2 may be used for thread-local storage.
2013-08-09score/cpu: Add CPU_Per_CPU_controlSebastian Huber1-0/+6
Add CPU port specific per-CPU control.
2013-07-17smp: Rename _CPU_Processor_event_receive()Sebastian Huber1-1/+1
Rename to _CPU_SMP_Processor_event_receive().
2013-07-17smp: Rename _CPU_Processor_event_broadcast()Sebastian Huber1-1/+1
Rename to _CPU_SMP_Processor_event_broadcast().
2013-07-17smp: Add and use _CPU_SMP_Send_interrupt()Sebastian Huber1-0/+1
Delete bsp_smp_interrupt_cpu().
2013-07-17smp: Add and use _CPU_SMP_Get_current_processor()Sebastian Huber1-0/+15
Add and use _SMP_Get_current_processor() and rtems_smp_get_current_processor(). Delete bsp_smp_interrupt_cpu(). Change type of current processor index from int to uint32_t to match _SMP_Processor_count type.
2013-06-26powerpc: Fix Altivec supportSebastian Huber1-4/+4
Use the right context.
2013-05-31smp: Add PowerPC supportSebastian Huber1-1/+16
2013-05-10score: Add CPU context validationSebastian Huber1-0/+4
2013-01-02score: Doxygen Clean Up Task #5Alex Ivanov1-1/+3
2012-11-27score: Add CPU_Exception_frameSebastian Huber1-0/+9
Add CPU port type CPU_Exception_frame and function _CPU_Exception_frame_print(). The CPU ports of avr, bfin, h8300, lm32, m32c, m32r, m68k, nios2, sh, sparc64, and v850 use an empty default implementation of _CPU_Exception_frame_print(). Add rtems_exception_frame and rtems_exception_frame_print(). Add RTEMS_FATAL_SOURCE_EXCEPTION for CPU exceptions. Use rtems_fatal() with source RTEMS_FATAL_SOURCE_EXCEPTION in CPU ports of i386, powerpc, and sparc for unexpected exceptions. Add third parameter to RTEMS_BSP_CLEANUP_OPTIONS() which controls the BSP_PRINT_EXCEPTION_CONTEXT define used in the default bsp_fatal_extension(). Add test sptests/spfatal26.
2012-11-27powerpc: Add CPU_Exception_frameSebastian Huber1-0/+46
The powerpc port uses now a unified CPU_Exception_frame. This resulted in a CPU_Exception_frame layout change for the MPC5XX.
2012-11-22score: PR1607: Add and use CPU_SIZEOF_POINTERSebastian Huber1-0/+2
Add and use new CPU port define CPU_SIZEOF_POINTER. It must be an integer literal that can be used by the assembler. This value will be used to calculate offsets of structure members. These offsets will be used in assembler code. The size of a pointer is part of the application binary interface (ABI) and thus independent of the actual programming language. The compiler will provide defines to determine the current ABI. We use these defines to select the appropriate CPU_SIZEOF_POINTER value. Static assertions in the new file "cpukit/score/src/percpuasm.c" will ensure that the value of CPU_SIZEOF_POINTER is consistent with the current compiler settings. Also the offset values used by assembler code are verfied.
2012-11-14powerpc: Delete _CPU_Install_interrupt_stack()Sebastian Huber1-11/+0
This function is only used if CPU_HAS_HARDWARE_INTERRUPT_STACK == TRUE.
2012-06-11powerpc/cpu.h: Define CPU_SIMPLE_VECTORED_INTERRUPTS and remove ↵Joel Sherrill1-2/+14
_CPU_ISR_Initialize
2012-06-04powerpc: Simplify context switchSebastian Huber1-145/+96
PowerPC cores with the SPE (Signal Processing Extension) have 64-bit general-purpose registers. The SPE context switch code has been merged with the standard context switch code. The context switch may use cache operations to increase the performance. It will be ensured that the context is 32-byte aligned (PPC_DEFAULT_CACHE_LINE_SIZE). This increases the overall memory size of the context area in the thread control block slightly. The general-purpose registers GPR2 and GPR13 are no longer part of the context. The BSP must initialize these registers during startup (usually initialized by the __eabi() function). The new BSP option BSP_USE_DATA_CACHE_BLOCK_TOUCH can be used to enable the dcbt instruction in the context switch. The new BSP option BSP_USE_SYNC_IN_CONTEXT_SWITCH can be used to enable sync and isync instructions in the context switch. This should be not necessary in most cases.
2012-05-11Remove All CVS Id Strings Possible Using a ScriptJoel Sherrill1-2/+0
Script does what is expected and tries to do it as smartly as possible. + remove occurrences of two blank comment lines next to each other after Id string line removed. + remove entire comment blocks which only exited to contain CVS Ids + If the processing left a blank line at the top of a file, it was removed.
2012-05-09Score ISR - Minimize Capabilities When Not Simple VectoredJoel Sherrill1-4/+6
In particular CPU_INTERRUPT_NUMBER_OF_VECTORS and CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER are only used on Simple Vectored Architectures, so do not depend on them being defined. This disables as much as possible that is specific to the Simple Vectored Model and not expected to be used on architectures which use the Programmable Interrupt Controller model for interrupt handler vectoring.
2011-09-272011-09-27 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber1-0/+2
PR 1914/cpukit * rtems/score/cpu.h: Select timestamp implementation.
2011-08-302011-08-30 Peter Dufault <dufault@hda.com>Sebastian Huber1-0/+28
* rtems/score/cpu.h: Add more context access functionality. Needed to get GDB debugger hooks working.
2011-07-212011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber1-16/+98
* rtems/score/cpu.h: Added SPE support to CPU context.
2011-02-112011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius1-2/+2
* rtems/powerpc/registers.h, rtems/score/cpu.h: Use "__asm__" instead of "asm" for improved c99-compliance.
2010-10-212010-10-21 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-1/+1
* rtems/score/cpu.h: Add RTEMS_COMPILER_NO_RETURN_ATTRIBUTE to _CPU_Context_restore() because it does not return. Telling GCC this avoids generation of dead code.
2010-07-292010-07-29 Gedare Bloom <giddyup44@yahoo.com>Joel Sherrill1-1/+1
PR 1635/cpukit * rtems/score/cpu.h, rtems/score/types.h: Refactoring of priority handling, to isolate the bitmap implementation of priorities in the supercore so that priority management is a little more modular. This change is in anticipation of scheduler implementations that can select how they manage tracking priority levels / finding the highest priority ready task. Note that most of the changes here are simple renaming, to clarify the use of the bitmap-based priority management.
2010-07-162010-07-16 Sebastian Huber <sebastian.huber@embedded-brains.de>Sebastian Huber1-3/+272
* rtems/new-exceptions/cpu.h: Removed file. * Makefile.am, preinstall.am: Reflect change above. * rtems/score/cpu.h: Include <rtems/score/types.h> first. Added contents of <rtems/new-exceptions/cpu.h>. * rtems/score/types.h: Use <rtems/score/basedefs.h> header file.
2009-12-04Whitespace removal.Ralf Corsepius1-3/+3
2009-12-022009-12-01 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-0/+55
* score/cpu/powerpc/rtems/score/cpu.h: Added space for non- volatile AltiVec registers to context struct. Added declaration for AltiVec-related routines to be implemented by CPU/BSP support.
2009-10-30move timebase access functions from cpukit to libcpuThomas Doerfler1-106/+0
2009-10-21 * rtems/powerpc/registers.h: Added defines DEAR_BOOKE and DEAR_405.Thomas Doerfler1-10/+10
* rtems/score/cpu.h: Changed fpscr field to an integer type in Context_Control_fp. Fixed warnings in PPC_Set_timebase_register(). Changed _CPU_Context_Initialize_fp() to initialize all fields and avoid floating-point instructions. * rtems/score/powerpc.h: Removed PPC_INIT_FPSCR define.
2009-02-112009-02-11 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-3/+1
* rtems/new-exceptions/cpu.h, rtems/score/cpu.h: Eliminate _CPU_Thread_dispatch_pointer and passing address of _Thread_Dispatch to _CPU_Initialize. Clean up comments.
2008-09-142008-09-14 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-1/+3
* rtems/score/cpu.h: Move extern of bsp_clicks_per_usec so it is not nested inside braces.
2008-09-05Convert to "bool".Ralf Corsepius1-1/+1
2008-07-102008-07-10 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-1/+1
* cpukit/score/cpu/powerpc/rtems/new-exceptions/cpu.h, cpukit/score/cpu/powerpc/rtems/score/cpu.h, cpukit/score/cpu/powerpc/rtems/score/powerpc.h: Removed all macro definitions which depended on the compiler defining a PPC CPU-model dependent symbol. Macros which were not used by cpukit have been moved to libcpu/powerpc/rtems/powerpc/powerpc.h.
2008-02-20Remove ref to rtems/old-exceptions/cpu.h.Ralf Corsepius1-4/+0
2007-12-172007-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>Joel Sherrill1-0/+3
* rtems/score/cpu.h: Add _CPU_Context_Get_SP() for stack check utility.
2007-12-172007-12-17 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-0/+7
* rtems/powerpc/registers.h, rtems/score/cpu.h: Sweep to make sure grep for COPYRIGHT passes.
2007-12-042007-12-04 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-1/+0
* rtems/new-exceptions/cpu.h, rtems/old-exceptions/cpu.h, rtems/score/cpu.h: Move interrupt_stack_size field from CPU Table to Configuration Table. Eliminate CPU Table from all ports. Delete references to CPU Table in all forms.
2007-12-032007-12-03 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-0/+4
* rtems/score/cpu.h: Added comment that GDB patch sim/2376 is needed for reading the time-base with the new (more portable) method.
2007-12-012007-11-30 Till Straumann <strauman@slac.stanford.edu>Till Straumann1-0/+18
* rtems/score/cpu.h: Wonderful bookE doesn't have mftb/mftbu; ( CPU_Get_timebase_low() ) they only define the TBRU/TBRL SPRs so we use these. Should work on all CPUs.
2007-11-282007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com>Joel Sherrill1-49/+2
* rtems/new-exceptions/cpu.h, rtems/old-exceptions/cpu.h, rtems/score/cpu.h: Eliminate PowerPC specific elements from the CPU Table. They have been replaced with variables named bsp_XXX as needed.
2007-05-092007-05-09 Ralf Corsépius <ralf.corsepius@rtems.org>Ralf Corsepius1-2/+0
* rtems/score/cpu.h: Remove CPU_HAS_OWN_HOST_TO_NETWORK_ROUTINES.
2007-04-17Use Context_Control_fp* instead of void* for fp_contexts.Ralf Corsepius1-3/+3
Eliminate evil casts.
2006-08-092006-08-09 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-1/+5
* rtems/score/cpu.h: Because gcc implicitly uses floating point turn on floating point for all threads if there is a hardware FPU.
2006-01-162006-01-16 Joel Sherrill <joel@OARcorp.com>Joel Sherrill1-2/+2
* rtems/new-exceptions/cpu.h, rtems/old-exceptions/cpu.h, rtems/score/cpu.h: Part of a large patch to improve Doxygen output. As a side-effect, grammar and spelling errors were corrected, spacing errors were address, and some variable names were improved.
2005-02-18(CPU_HARDWARE_FP, CPU_ALL_TASKS_ARE_FP,Ralf Corsepius1-0/+49
CPU_IDLE_TASK_IS_FP, CPU_SOFTWARE_FP): New.