mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-11-09 08:37:58 +08:00
Remove (moved to libcpu).
This commit is contained in:
1 parent
2541237bcf
commit
3c2ff4defe
11 files changed
-2957
No files matched your search
@@ -1,169 +0,0 @@
|
||||
2005-02-14 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c, cpu_asm.S: #include <rtems/powerpc/powerpc.h>.
|
||||
|
||||
2005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am, configure.ac: Remove (Unused).
|
||||
|
||||
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
|
||||
|
||||
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am: Remove build-variant support.
|
||||
|
||||
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* configure.ac: Require automake > 1.9.
|
||||
|
||||
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* cpu_asm.S: Include <rtems/asm.h> instead of <asm.h>.
|
||||
|
||||
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* cpu.c: Convert to using c99 fixed size types.
|
||||
|
||||
2004-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Add RTEMS_PROG_CCAS.
|
||||
* Makefile.am: Use automake compilation rules.
|
||||
|
||||
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
|
||||
|
||||
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
|
||||
|
||||
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove include_rtems_score_HEADERS.
|
||||
Reformat for preinstallation dirstamp support.
|
||||
|
||||
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove all-local: $(ARCH).
|
||||
|
||||
2003-10-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CANONICAL_HOST.
|
||||
|
||||
2003-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CHECK_CPU.
|
||||
|
||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* cpu.c, cpu_asm.S: URL for license changed.
|
||||
|
||||
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved aclocal/.
|
||||
|
||||
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved automake/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-18 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
PR 356/bsps
|
||||
* cpu.c: This patch makes RTEMS/PowerPC eabi compliant.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-12-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
* configure.ac: Remove RTEMS_CHECK_CUSTOM_BSP.
|
||||
|
||||
2002-11-01 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* cpu.c: Currently only the mpc8260 BSP supports interrupt nesting.
|
||||
NOTE: These needs to be generalized as the patch is applied to other
|
||||
BSPs.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
|
||||
2001-05-14 Till Straumann <strauman@slac.stanford.edu>
|
||||
|
||||
* cpu.c: Per PR211 fix
|
||||
saving/restoring floating point context. The fpsave and fprestore
|
||||
routines are only used in a executing context which _is_ fp and hence
|
||||
has the FPU enabled. The current behavior required the FPU always to
|
||||
be on which is very dangerous if lazy context switching is used.
|
||||
[Joel Note: Some ports explicitly enabled the FPU in the FP save and
|
||||
restore routines to avoid this.]
|
||||
|
||||
The patch also makes sure (on powerpc only) that the FPU is disabled
|
||||
for integer tasks. Note that this is crucial if deferred fp context
|
||||
switching is used. Otherwise, fp context corruption may go undetected!
|
||||
Also note that even tasks which merely push/pop FP registers to/from
|
||||
the stack without modifying them still MUST be FP tasks - otherwise
|
||||
(if lazy FP context switching is used), FP register corruption (of
|
||||
other, FP, tasks may occur)!
|
||||
|
||||
Furthermore, (on PPC) by default, lazy FP context save/restore
|
||||
is _disabled_.
|
||||
|
||||
2002-04-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* rtems/score/cpu.h: Removed.
|
||||
* Makefile.am: Reflect changes above.
|
||||
|
||||
2001-04-03 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* Per PR94, all rtems/score/CPUtypes.h are named rtems/score/types.h.
|
||||
* rtems/score/cpu.h: Account for name change.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
|
||||
|
||||
This was tracked as PR91.
|
||||
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
|
||||
is used to specify if the port uses the standard macro for this (FALSE).
|
||||
A TRUE setting indicates the port provides its own implementation.
|
||||
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
|
||||
* cpu.c: Received contents of c_isr.inl.
|
||||
* Makefile.am: Deleted reference to c_isr.inl.
|
||||
|
||||
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.
|
||||
|
||||
2001-11-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Preinstall c_isr.inl (HACK).
|
||||
* ChangeLog: New file.
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
/*
|
||||
* PowerPC CPU Dependent Source
|
||||
*
|
||||
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
||||
*
|
||||
* COPYRIGHT (c) 1995 by i-cubed ltd.
|
||||
*
|
||||
* To anyone who acknowledges that this file is provided "AS IS"
|
||||
* without any express or implied warranty:
|
||||
* permission to use, copy, modify, and distribute this file
|
||||
* for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice and this notice appears in all
|
||||
* copies, and that the name of i-cubed limited not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* i-cubed limited makes no representations about the suitability
|
||||
* of this software for any purpose.
|
||||
*
|
||||
* Derived from c/src/exec/cpu/no_cpu/cpu.c:
|
||||
*
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be found in
|
||||
* the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/score/isr.h>
|
||||
#include <rtems/score/context.h>
|
||||
#include <rtems/score/thread.h>
|
||||
#include <rtems/score/interr.h>
|
||||
#include <rtems/powerpc/powerpc.h>
|
||||
|
||||
/* _CPU_Initialize
|
||||
*
|
||||
* This routine performs processor dependent initialization.
|
||||
*
|
||||
* INPUT PARAMETERS:
|
||||
* cpu_table - CPU table to initialize
|
||||
* thread_dispatch - address of disptaching routine
|
||||
*/
|
||||
|
||||
void _CPU_Initialize(
|
||||
rtems_cpu_table *cpu_table,
|
||||
void (*thread_dispatch) /* ignored on this CPU */
|
||||
)
|
||||
{
|
||||
_CPU_Table = *cpu_table;
|
||||
|
||||
{ unsigned hasFixed = 0;
|
||||
/* assert that our BSP has fixed PR288 */
|
||||
__asm__ __volatile__ ("mfspr %0, %2":"=r"(hasFixed):"0"(hasFixed),"i"(SPRG0));
|
||||
if ( PPC_BSP_HAS_FIXED_PR288 != hasFixed ) {
|
||||
BSP_panic("This BSP needs to fix PR#288");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CPU_Context_Initialize
|
||||
*/
|
||||
|
||||
void _CPU_Context_Initialize(
|
||||
Context_Control *the_context,
|
||||
uint32_t *stack_base,
|
||||
uint32_t size,
|
||||
uint32_t new_level,
|
||||
void *entry_point,
|
||||
boolean is_fp
|
||||
)
|
||||
{
|
||||
uint32_t msr_value;
|
||||
uint32_t sp;
|
||||
|
||||
sp = (uint32_t)stack_base + size - CPU_MINIMUM_STACK_FRAME_SIZE;
|
||||
|
||||
sp &= ~(CPU_STACK_ALIGNMENT-1);
|
||||
|
||||
*((uint32_t*)sp) = 0;
|
||||
the_context->gpr1 = sp;
|
||||
|
||||
_CPU_MSR_GET( msr_value );
|
||||
|
||||
if (!(new_level & CPU_MODES_INTERRUPT_MASK)) {
|
||||
msr_value |= MSR_EE;
|
||||
}
|
||||
else {
|
||||
msr_value &= ~MSR_EE;
|
||||
}
|
||||
|
||||
the_context->msr = msr_value;
|
||||
|
||||
/*
|
||||
* The FP bit of the MSR should only be enabled if this is a floating
|
||||
* point task. Unfortunately, the vfprintf_r routine in newlib
|
||||
* ends up pushing a floating point register regardless of whether or
|
||||
* not a floating point number is being printed. Serious restructuring
|
||||
* of vfprintf.c will be required to avoid this behavior. At this
|
||||
* time (7 July 1997), this restructuring is not being done.
|
||||
*/
|
||||
|
||||
/* Till Straumann: For deferred FPContext save/restore, make sure integer
|
||||
* tasks have no FPU access in order to catch violations.
|
||||
* Otherwise, the FP registers may be corrupted.
|
||||
* Since we set the_contex->msr using our current MSR,
|
||||
* we must make sure MSR_FP is off if (!is_fp)...
|
||||
*/
|
||||
#if defined(CPU_USE_DEFERRED_FP_SWITCH) && (CPU_USE_DEFERRED_FP_SWITCH==TRUE)
|
||||
if ( is_fp )
|
||||
#endif
|
||||
the_context->msr |= PPC_MSR_FP;
|
||||
#if defined(CPU_USE_DEFERRED_FP_SWITCH) && (CPU_USE_DEFERRED_FP_SWITCH==TRUE)
|
||||
else
|
||||
the_context->msr &= ~PPC_MSR_FP;
|
||||
#endif
|
||||
|
||||
the_context->pc = (uint32_t)entry_point;
|
||||
|
||||
#if (PPC_ABI == PPC_ABI_SVR4)
|
||||
{ unsigned r13 = 0;
|
||||
asm volatile ("mr %0, 13" : "=r" ((r13)));
|
||||
|
||||
the_context->gpr13 = r13;
|
||||
}
|
||||
#elif (PPC_ABI == PPC_ABI_EABI)
|
||||
{ uint32_t r2 = 0;
|
||||
unsigned r13 = 0;
|
||||
asm volatile ("mr %0,2; mr %1,13" : "=r" ((r2)), "=r" ((r13)));
|
||||
|
||||
the_context->gpr2 = r2;
|
||||
the_context->gpr13 = r13;
|
||||
}
|
||||
#else
|
||||
#error unsupported PPC_ABI
|
||||
#endif
|
||||
}
|
||||
|
||||
/*PAGE
|
||||
*
|
||||
* _CPU_Install_interrupt_stack
|
||||
*/
|
||||
|
||||
void _CPU_Install_interrupt_stack( void )
|
||||
{
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1,192 +0,0 @@
|
||||
2005-02-15 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c: Use _CPU_MSR_GET instead of _CPU_MSR_Value (Unify old/new
|
||||
exception processing API).
|
||||
|
||||
2005-02-14 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c (ppc_exception_vector_addr): Merge ppc603 and ppc603e cases.
|
||||
|
||||
2005-02-14 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c, cpu_asm.S, irq_stub.S: #include <rtems/powerpc/powerpc.h>.
|
||||
|
||||
2005-02-13 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c: Add _PPC_MSR_DISABLE_MASK.
|
||||
|
||||
2005-02-11 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am, configure.ac: Remove (Unused).
|
||||
|
||||
2005-02-10 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c, cpu_asm.S, irq_stub.S, rtems/score/ppc_offs.h:
|
||||
Remove PPC_ABI_POWEROPEN.
|
||||
|
||||
2005-02-09 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* cpu.c, cpu_asm.S, irq_stub.S, rtems/score/ppc_offs.h:
|
||||
Remove PPC_ABI_GCC27.
|
||||
|
||||
2005-01-07 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am: Eliminate CFLAGS_OPTIMIZE_V.
|
||||
|
||||
2005-01-02 Ralf Corsepius <ralf.corsepius@rtems.org>
|
||||
|
||||
* Makefile.am: Remove build-variant support.
|
||||
|
||||
2004-10-20 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
PR 696/bsps
|
||||
* cpu.c: Include bsp.h.
|
||||
|
||||
2004-09-24 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* configure.ac: Require automake > 1.9.
|
||||
|
||||
2004-04-01 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* cpu_asm.S: Include <rtems/asm.h> instead of <asm.h>.
|
||||
|
||||
2004-03-31 Ralf Corsepius <ralf_corsepius@rtems.org>
|
||||
|
||||
* cpu.c, ppccache.c: Convert to using c99 fixed size types.
|
||||
|
||||
2004-01-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Add RTEMS_PROG_CCAS.
|
||||
* Makefile.am: Use automake compilation rules.
|
||||
|
||||
2004-01-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Add PREINSTALL_DIRS.
|
||||
|
||||
2004-01-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Re-add dirstamps to PRE/TMPINSTALL_FILES.
|
||||
Add PRE/TMPINSTALL_FILES to CLEANFILES.
|
||||
|
||||
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use mkdir_p. Remove dirs from PRE/TMPINSTALL_FILES.
|
||||
|
||||
2003-12-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Require automake >= 1.8, autoconf >= 2.59.
|
||||
|
||||
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reformat for preinstallation dirstamp support.
|
||||
|
||||
2003-12-02 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Remove all-local: $(ARCH).
|
||||
|
||||
2003-10-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CANONICAL_HOST.
|
||||
|
||||
2003-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove RTEMS_CHECK_CPU.
|
||||
|
||||
2003-09-04 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* cpu.c, cpu_asm.S: URL for license changed.
|
||||
|
||||
2003-08-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved aclocal/.
|
||||
|
||||
2003-08-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Reflect having moved automake/.
|
||||
|
||||
2003-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Use rtems-bugs@rtems.com as bug report email address.
|
||||
|
||||
2003-03-06 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Remove AC_CONFIG_AUX_DIR.
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AM_INIT_AUTOMAKE([1.7.2]).
|
||||
|
||||
2003-02-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: AC_PREREQ(2.57).
|
||||
|
||||
2002-12-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Don't include @RTEMS_BSP@.cfg.
|
||||
* configure.ac: Remove RTEMS_CHECK_CUSTOM_BSP.
|
||||
|
||||
2002-10-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Reformat.
|
||||
Add autom4te*cache.
|
||||
Remove autom4te.cache.
|
||||
|
||||
2002-09-14 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* cpu.c: Include declaration of variable i in ifdef USE_SPRG to
|
||||
eliminate warning.
|
||||
|
||||
2002-08-11 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Use .$(OBJEXT) instead of .o.
|
||||
|
||||
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Fix oversights in previous patch.
|
||||
|
||||
2002-07-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* rtems.S: Remove.
|
||||
* Makefile.am: Reflect having removed rtems.S. Use AM_CPPFLAGS
|
||||
instead of INCLUDES (Latest automake standard).
|
||||
|
||||
2002-04-30 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* cpu.c: Include <rtems/powerpc/cache.h>.
|
||||
|
||||
2002-04-18 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* rtems/score/cpu.h: Removed.
|
||||
* Makefile.am: Reflect changes above.
|
||||
|
||||
2001-04-03 Joel Sherrill <joel@OARcorp.com>
|
||||
|
||||
* Per PR94, all rtems/score/CPUtypes.h are named rtems/score/types.h.
|
||||
* rtems/score/cpu.h: Account for name change.
|
||||
|
||||
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac:
|
||||
AC_INIT(package,_RTEMS_VERSION,_RTEMS_BUGS).
|
||||
AM_INIT_AUTOMAKE([no-define foreign 1.6]).
|
||||
* Makefile.am: Remove AUTOMAKE_OPTIONS.
|
||||
|
||||
2001-11-28 Joel Sherrill <joel@OARcorp.com>,
|
||||
|
||||
This was tracked as PR91.
|
||||
* rtems/score/cpu.h: Added CPU_PROVIDES_ISR_IS_IN_PROGRESS macro which
|
||||
is used to specify if the port uses the standard macro for this (FALSE).
|
||||
A TRUE setting indicates the port provides its own implementation.
|
||||
* rtems/score/c_isr.inl: Deleted and contents merged into cpu.c.
|
||||
* cpu.c: Received contents of c_isr.inl.
|
||||
* Makefile.am: Deleted reference to c_isr.inl.
|
||||
|
||||
2001-11-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* .cvsignore: Add aclocal.m4, autom4te.*, config.*, configure.
|
||||
|
||||
2001-11-21 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* Makefile.am: Preinstall c_isr.inl (HACK).
|
||||
* ChangeLog: New file.
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
There are various issues regarding this port:
|
||||
|
||||
|
||||
|
||||
1) Legal
|
||||
|
||||
This port is written by Andrew Bray <andy@i-cubed.co.uk>, and
|
||||
is copyright 1995 i-cubed ltd.
|
||||
|
||||
This port was later updated by Joel Sherrill <joel@OARcorp.com>
|
||||
to test the support for the PPC603, PPC603e, and MPC604. This
|
||||
was tested on the PowerPC simulator PSIM and a VMEbus single board
|
||||
computer.
|
||||
|
||||
2) CPU support.
|
||||
|
||||
This release fully supports the PPC403GA, PPC403GB, PPC603, PPC603e,
|
||||
MPC604, MPC750, and numerous MPC8xx processors. A good faith attempt
|
||||
has been made to include support other models based upon available
|
||||
documentation including the MPC5xx. There are two interrupt structures
|
||||
supported by the PowerPC port. The newer structure is supported by
|
||||
all the MPC750 and MPC604 BSPs. This structure is required to use
|
||||
the RDBG remote debugging support.
|
||||
|
||||
This port was originally written and tested on the PPC403GA (using
|
||||
software floating point). Current ports are tested primarily on
|
||||
60x CPUs using the PowerPC simulator PSIM.
|
||||
|
||||
Andrew Bray received assistance during the initial porting effort
|
||||
from IBM and Blue Micro and we would like to gratefully acknowledge
|
||||
that help.
|
||||
|
||||
The support for the PPC602 processor is incomplete as only sketchy
|
||||
data is currently available. Perhaps this model has been dropped.
|
||||
|
||||
3) Application Binary Interface
|
||||
|
||||
In the context of RTEMS, the ABI is of interest for the following
|
||||
aspects:
|
||||
|
||||
a) Register usage. Which registers are used to provide static variable
|
||||
linkage, stack pointer etc.
|
||||
|
||||
b) Function calling convention. How parameters are passed, how function
|
||||
variables should be invoked, how values are returned, etc.
|
||||
|
||||
c) Stack frame layout.
|
||||
|
||||
I am aware of a number of ABIs for the PowerPC:
|
||||
|
||||
a) The PowerOpen ABI. This is the original Power ABI used on the RS/6000.
|
||||
This is the only ABI supported by versions of GCC before 2.7.0.
|
||||
|
||||
b) The SVR4 ABI. This is the ABI defined by SunSoft for the Solaris port
|
||||
to the PowerPC.
|
||||
|
||||
c) The Embedded ABI. This is an embedded ABI for PowerPC use, which has no
|
||||
operating system interface defined. It is promoted by SunSoft, Motorola,
|
||||
and Cygnus Support. Cygnus are porting the GNU toolchain to this ABI.
|
||||
|
||||
d) GCC 2.7.0. This compiler is partway along the road to supporting the EABI,
|
||||
but is currently halfway in between.
|
||||
|
||||
This port was built and tested using the PowerOpen ABI, with the following
|
||||
caveat: we used an ELF assembler and linker. So some attention may be
|
||||
required on the assembler files to get them through a traditional (XCOFF)
|
||||
PowerOpen assembler.
|
||||
|
||||
This port contains support for the other ABIs, but this may prove to be
|
||||
incomplete as it is untested.
|
||||
|
||||
The RTEMS PowerPC port supports EABI as the primary ABI. The powerpc-rtems
|
||||
GNU toolset configuration is EABI.
|
||||
|
||||
Andrew Bray, 4 December 1995
|
||||
Joel Sherrill, 16 July 1997
|
||||
@@ -1,8 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
Todo list:
|
||||
|
||||
Maybe decode external interrupts like the HPPA does.
|
||||
See c/src/lib/libcpu/powerpc/ppc403/ictrl/* for implementation on ppc403
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,59 +0,0 @@
|
||||
/*
|
||||
* PowerPC Cache enable routines
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <rtems/system.h>
|
||||
|
||||
#define PPC_Get_HID0( _value ) \
|
||||
do { \
|
||||
_value = 0; /* to avoid warnings */ \
|
||||
asm volatile( \
|
||||
"mfspr %0, 0x3f0;" /* get HID0 */ \
|
||||
"isync" \
|
||||
: "=r" (_value) \
|
||||
: "0" (_value) \
|
||||
); \
|
||||
} while (0)
|
||||
|
||||
#define PPC_Set_HID0( _value ) \
|
||||
do { \
|
||||
asm volatile( \
|
||||
"isync;" \
|
||||
"mtspr 0x3f0, %0;" /* load HID0 */ \
|
||||
"isync" \
|
||||
: "=r" (_value) \
|
||||
: "0" (_value) \
|
||||
); \
|
||||
} while (0)
|
||||
|
||||
void powerpc_instruction_cache_enable ()
|
||||
{
|
||||
uint32_t value;
|
||||
|
||||
/*
|
||||
* Enable the instruction cache
|
||||
*/
|
||||
|
||||
PPC_Get_HID0( value );
|
||||
|
||||
value |= 0x00008000; /* Set ICE bit */
|
||||
|
||||
PPC_Set_HID0( value );
|
||||
}
|
||||
|
||||
void powerpc_data_cache_enable ()
|
||||
{
|
||||
uint32_t value;
|
||||
|
||||
/*
|
||||
* enable data cache
|
||||
*/
|
||||
|
||||
PPC_Get_HID0( value );
|
||||
|
||||
value |= 0x00004000; /* set DCE bit */
|
||||
|
||||
PPC_Set_HID0( value );
|
||||
}
|
||||
@@ -1,156 +0,0 @@
|
||||
/* -*- asm -*- */
|
||||
#ifndef __PPC_OFFS_H
|
||||
#define __PPC_OFFS_H
|
||||
|
||||
/*
|
||||
* Offsets for various Contexts
|
||||
*/
|
||||
.set GP_1, 0
|
||||
.set GP_2, (GP_1 + 4)
|
||||
.set GP_13, (GP_2 + 4)
|
||||
.set GP_14, (GP_13 + 4)
|
||||
|
||||
.set GP_15, (GP_14 + 4)
|
||||
.set GP_16, (GP_15 + 4)
|
||||
.set GP_17, (GP_16 + 4)
|
||||
.set GP_18, (GP_17 + 4)
|
||||
|
||||
.set GP_19, (GP_18 + 4)
|
||||
.set GP_20, (GP_19 + 4)
|
||||
.set GP_21, (GP_20 + 4)
|
||||
.set GP_22, (GP_21 + 4)
|
||||
|
||||
.set GP_23, (GP_22 + 4)
|
||||
.set GP_24, (GP_23 + 4)
|
||||
.set GP_25, (GP_24 + 4)
|
||||
.set GP_26, (GP_25 + 4)
|
||||
|
||||
.set GP_27, (GP_26 + 4)
|
||||
.set GP_28, (GP_27 + 4)
|
||||
.set GP_29, (GP_28 + 4)
|
||||
.set GP_30, (GP_29 + 4)
|
||||
|
||||
.set GP_31, (GP_30 + 4)
|
||||
.set GP_CR, (GP_31 + 4)
|
||||
.set GP_PC, (GP_CR + 4)
|
||||
.set GP_MSR, (GP_PC + 4)
|
||||
|
||||
#if (PPC_HAS_DOUBLE == 1)
|
||||
.set FP_0, 0
|
||||
.set FP_1, (FP_0 + 8)
|
||||
.set FP_2, (FP_1 + 8)
|
||||
.set FP_3, (FP_2 + 8)
|
||||
.set FP_4, (FP_3 + 8)
|
||||
.set FP_5, (FP_4 + 8)
|
||||
.set FP_6, (FP_5 + 8)
|
||||
.set FP_7, (FP_6 + 8)
|
||||
.set FP_8, (FP_7 + 8)
|
||||
.set FP_9, (FP_8 + 8)
|
||||
.set FP_10, (FP_9 + 8)
|
||||
.set FP_11, (FP_10 + 8)
|
||||
.set FP_12, (FP_11 + 8)
|
||||
.set FP_13, (FP_12 + 8)
|
||||
.set FP_14, (FP_13 + 8)
|
||||
.set FP_15, (FP_14 + 8)
|
||||
.set FP_16, (FP_15 + 8)
|
||||
.set FP_17, (FP_16 + 8)
|
||||
.set FP_18, (FP_17 + 8)
|
||||
.set FP_19, (FP_18 + 8)
|
||||
.set FP_20, (FP_19 + 8)
|
||||
.set FP_21, (FP_20 + 8)
|
||||
.set FP_22, (FP_21 + 8)
|
||||
.set FP_23, (FP_22 + 8)
|
||||
.set FP_24, (FP_23 + 8)
|
||||
.set FP_25, (FP_24 + 8)
|
||||
.set FP_26, (FP_25 + 8)
|
||||
.set FP_27, (FP_26 + 8)
|
||||
.set FP_28, (FP_27 + 8)
|
||||
.set FP_29, (FP_28 + 8)
|
||||
.set FP_30, (FP_29 + 8)
|
||||
.set FP_31, (FP_30 + 8)
|
||||
.set FP_FPSCR, (FP_31 + 8)
|
||||
#else
|
||||
.set FP_0, 0
|
||||
.set FP_1, (FP_0 + 4)
|
||||
.set FP_2, (FP_1 + 4)
|
||||
.set FP_3, (FP_2 + 4)
|
||||
.set FP_4, (FP_3 + 4)
|
||||
.set FP_5, (FP_4 + 4)
|
||||
.set FP_6, (FP_5 + 4)
|
||||
.set FP_7, (FP_6 + 4)
|
||||
.set FP_8, (FP_7 + 4)
|
||||
.set FP_9, (FP_8 + 4)
|
||||
.set FP_10, (FP_9 + 4)
|
||||
.set FP_11, (FP_10 + 4)
|
||||
.set FP_12, (FP_11 + 4)
|
||||
.set FP_13, (FP_12 + 4)
|
||||
.set FP_14, (FP_13 + 4)
|
||||
.set FP_15, (FP_14 + 4)
|
||||
.set FP_16, (FP_15 + 4)
|
||||
.set FP_17, (FP_16 + 4)
|
||||
.set FP_18, (FP_17 + 4)
|
||||
.set FP_19, (FP_18 + 4)
|
||||
.set FP_20, (FP_19 + 4)
|
||||
.set FP_21, (FP_20 + 4)
|
||||
.set FP_22, (FP_21 + 4)
|
||||
.set FP_23, (FP_22 + 4)
|
||||
.set FP_24, (FP_23 + 4)
|
||||
.set FP_25, (FP_24 + 4)
|
||||
.set FP_26, (FP_25 + 4)
|
||||
.set FP_27, (FP_26 + 4)
|
||||
.set FP_28, (FP_27 + 4)
|
||||
.set FP_29, (FP_28 + 4)
|
||||
.set FP_30, (FP_29 + 4)
|
||||
.set FP_31, (FP_30 + 4)
|
||||
.set FP_FPSCR, (FP_31 + 4)
|
||||
#endif
|
||||
|
||||
.set IP_LINK, 0
|
||||
/* PPC_ABI_EABI */
|
||||
.set IP_0, (IP_LINK + 8)
|
||||
.set IP_2, (IP_0 + 4)
|
||||
|
||||
.set IP_3, (IP_2 + 4)
|
||||
.set IP_4, (IP_3 + 4)
|
||||
.set IP_5, (IP_4 + 4)
|
||||
.set IP_6, (IP_5 + 4)
|
||||
|
||||
.set IP_7, (IP_6 + 4)
|
||||
.set IP_8, (IP_7 + 4)
|
||||
.set IP_9, (IP_8 + 4)
|
||||
.set IP_10, (IP_9 + 4)
|
||||
|
||||
.set IP_11, (IP_10 + 4)
|
||||
.set IP_12, (IP_11 + 4)
|
||||
.set IP_13, (IP_12 + 4)
|
||||
.set IP_28, (IP_13 + 4)
|
||||
|
||||
.set IP_29, (IP_28 + 4)
|
||||
.set IP_30, (IP_29 + 4)
|
||||
.set IP_31, (IP_30 + 4)
|
||||
.set IP_CR, (IP_31 + 4)
|
||||
|
||||
.set IP_CTR, (IP_CR + 4)
|
||||
.set IP_XER, (IP_CTR + 4)
|
||||
.set IP_LR, (IP_XER + 4)
|
||||
.set IP_PC, (IP_LR + 4)
|
||||
|
||||
.set IP_MSR, (IP_PC + 4)
|
||||
.set IP_END, (IP_MSR + 16)
|
||||
|
||||
/* _CPU_IRQ_info offsets */
|
||||
|
||||
/* These must be in this order */
|
||||
.set Nest_level, 0
|
||||
.set Disable_level, 4
|
||||
.set Vector_table, 8
|
||||
.set Stack, 12
|
||||
/* PPC_ABI_EABI */
|
||||
.set Default_r2, 16
|
||||
.set Default_r13, 20
|
||||
.set Switch_necessary, 24
|
||||
|
||||
.set Signal, Switch_necessary + 4
|
||||
.set msr_initial, Signal + 4
|
||||
|
||||
#endif /* __PPC_OFFS_H */
|
||||
Reference in new issue
Block a user