mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-05 15:15:44 +00:00
2001-10-22 Andy Dachs <a.dachs@sstl.co.uk>
* Makefile.am, README, configure.ac, new_exception_processing/cpu.h, shared/include/cpu.h, shared/include/cpuIdent.c, shared/src/cache.c: Added mpc8260 support.
This commit is contained in:
@@ -3,6 +3,9 @@
|
|||||||
* This include file contains information pertaining to the PowerPC
|
* This include file contains information pertaining to the PowerPC
|
||||||
* processor.
|
* processor.
|
||||||
*
|
*
|
||||||
|
* Modified for MPC8260 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
* Surrey Satellite Technology Limited (SSTL), 2001
|
||||||
|
*
|
||||||
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1995 by i-cubed ltd.
|
* COPYRIGHT (c) 1995 by i-cubed ltd.
|
||||||
@@ -256,6 +259,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
|
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Does the stack grow up (toward higher addresses) or down
|
* Does the stack grow up (toward higher addresses) or down
|
||||||
* (toward lower addresses)?
|
* (toward lower addresses)?
|
||||||
@@ -439,7 +443,7 @@ typedef struct {
|
|||||||
unsigned32 clicks_per_usec; /* Timer clicks per microsecond */
|
unsigned32 clicks_per_usec; /* Timer clicks per microsecond */
|
||||||
boolean exceptions_in_RAM; /* TRUE if in RAM */
|
boolean exceptions_in_RAM; /* TRUE if in RAM */
|
||||||
|
|
||||||
#if (defined(ppc403) || defined(mpc860) || defined(mpc821))
|
#if (defined(ppc403) || defined(mpc860) || defined(mpc821) || defined(mpc8260))
|
||||||
unsigned32 serial_per_sec; /* Serial clocks per second */
|
unsigned32 serial_per_sec; /* Serial clocks per second */
|
||||||
boolean serial_external_clock;
|
boolean serial_external_clock;
|
||||||
boolean serial_xon_xoff;
|
boolean serial_xon_xoff;
|
||||||
@@ -450,7 +454,7 @@ typedef struct {
|
|||||||
boolean timer_internal_clock; /* TRUE, when timer runs with CPU clk */
|
boolean timer_internal_clock; /* TRUE, when timer runs with CPU clk */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(mpc860) || defined(mpc821))
|
#if (defined(mpc860) || defined(mpc821) || defined( mpc8260))
|
||||||
unsigned32 clock_speed; /* Speed of CPU in Hz */
|
unsigned32 clock_speed; /* Speed of CPU in Hz */
|
||||||
#endif
|
#endif
|
||||||
} rtems_cpu_table;
|
} rtems_cpu_table;
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
2001-10-22 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
|
||||||
|
* Makefile.am, README, configure.ac, new_exception_processing/cpu.h,
|
||||||
|
shared/include/cpu.h, shared/include/cpuIdent.c, shared/src/cache.c:
|
||||||
|
Added mpc8260 support.
|
||||||
|
|
||||||
2001-10-22 Andy Dachs <a.dachs@sstl.co.uk>
|
2001-10-22 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
|
||||||
* Added mpc8260 directory.
|
* Added mpc8260 directory.
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ endif
|
|||||||
if mpc8xx
|
if mpc8xx
|
||||||
CPU_SUBDIR = mpc8xx
|
CPU_SUBDIR = mpc8xx
|
||||||
endif
|
endif
|
||||||
|
if mpc8260
|
||||||
|
CPU_SUBDIR = mpc8260
|
||||||
|
endif
|
||||||
if ppc403
|
if ppc403
|
||||||
CPU_SUBDIR = ppc403
|
CPU_SUBDIR = ppc403
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ family members:
|
|||||||
+ mpc821
|
+ mpc821
|
||||||
+ mpc860
|
+ mpc860
|
||||||
+ ppc403
|
+ ppc403
|
||||||
|
+ mpc8260
|
||||||
|
|
||||||
Note that because of similarities in various family members,
|
Note that because of similarities in various family members,
|
||||||
the mpc823 should be able to use the mpc821 code and the
|
the mpc823 should be able to use the mpc821 code and the
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ AM_CONDITIONAL(shared, test "$RTEMS_CPU_MODEL" = "mpc750" \
|
|||||||
|| test "$RTEMS_CPU_MODEL" = "mpc6xx" \
|
|| test "$RTEMS_CPU_MODEL" = "mpc6xx" \
|
||||||
|| test "$RTEMS_CPU_MODEL" = "mpc821" \
|
|| test "$RTEMS_CPU_MODEL" = "mpc821" \
|
||||||
|| test "$RTEMS_CPU_MODEL" = "mpc860" \
|
|| test "$RTEMS_CPU_MODEL" = "mpc860" \
|
||||||
|
|| test "$RTEMS_CPU_MODEL" = "mpc8260" \
|
||||||
|| test "$RTEMS_CPU_MODEL" = "mpc8xx" )
|
|| test "$RTEMS_CPU_MODEL" = "mpc8xx" )
|
||||||
|
|
||||||
## there are no 601 or 602 BSPs currently. The 505 BSPs are in user land.
|
## there are no 601 or 602 BSPs currently. The 505 BSPs are in user land.
|
||||||
@@ -40,7 +41,9 @@ AM_CONDITIONAL(new_exception_processing, \
|
|||||||
test "$RTEMS_CPU_MODEL" = "mpc750" || \
|
test "$RTEMS_CPU_MODEL" = "mpc750" || \
|
||||||
test "$RTEMS_CPU_MODEL" = "mpc604" || \
|
test "$RTEMS_CPU_MODEL" = "mpc604" || \
|
||||||
test "$RTEMS_CPU_MODEL" = "mpc8xx" || \
|
test "$RTEMS_CPU_MODEL" = "mpc8xx" || \
|
||||||
test "$RTEMS_CPU_MODEL" = "mpc860")
|
test "$RTEMS_CPU_MODEL" = "mpc8260" || \
|
||||||
|
test "$RTEMS_CPU_MODEL" = "mpc860" \
|
||||||
|
)
|
||||||
|
|
||||||
## The goal is to get rid of the old exception processing code but
|
## The goal is to get rid of the old exception processing code but
|
||||||
## but all BSPs in the distribution must be migrated to the new model
|
## but all BSPs in the distribution must be migrated to the new model
|
||||||
@@ -48,6 +51,7 @@ test "$RTEMS_CPU_MODEL" = "mpc860")
|
|||||||
AM_CONDITIONAL(old_exception_processing, \
|
AM_CONDITIONAL(old_exception_processing, \
|
||||||
test "$RTEMS_CPU_MODEL" = "ppc403" || \
|
test "$RTEMS_CPU_MODEL" = "ppc403" || \
|
||||||
test "$RTEMS_CPU_MODEL" = "mpc505" || \
|
test "$RTEMS_CPU_MODEL" = "mpc505" || \
|
||||||
|
#test "$RTEMS_CPU_MODEL" = "mpc8260" || \
|
||||||
test "$RTEMS_CPU_MODEL" = "ppc603e" \
|
test "$RTEMS_CPU_MODEL" = "ppc603e" \
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -59,6 +63,7 @@ AM_CONDITIONAL(mpc6xx, test "$RTEMS_CPU_MODEL" = "mpc6xx" \
|
|||||||
AM_CONDITIONAL(mpc8xx, test "$RTEMS_CPU_MODEL" = "mpc8xx" \
|
AM_CONDITIONAL(mpc8xx, test "$RTEMS_CPU_MODEL" = "mpc8xx" \
|
||||||
|| test "$RTEMS_CPU_MODEL" = "mpc821" \
|
|| test "$RTEMS_CPU_MODEL" = "mpc821" \
|
||||||
|| test "$RTEMS_CPU_MODEL" = "mpc860" )
|
|| test "$RTEMS_CPU_MODEL" = "mpc860" )
|
||||||
|
AM_CONDITIONAL(mpc8260, test "$RTEMS_CPU_MODEL" = "mpc8260")
|
||||||
AM_CONDITIONAL(ppc403, test "$RTEMS_CPU_MODEL" = "ppc403")
|
AM_CONDITIONAL(ppc403, test "$RTEMS_CPU_MODEL" = "ppc403")
|
||||||
|
|
||||||
# Explicitly list all Makefiles here
|
# Explicitly list all Makefiles here
|
||||||
@@ -88,6 +93,14 @@ mpc6xx/exceptions/Makefile
|
|||||||
mpc6xx/mmu/Makefile
|
mpc6xx/mmu/Makefile
|
||||||
mpc6xx/timer/Makefile
|
mpc6xx/timer/Makefile
|
||||||
mpc6xx/wrapup/Makefile
|
mpc6xx/wrapup/Makefile
|
||||||
|
mpc8260/Makefile
|
||||||
|
mpc8260/clock/Makefile
|
||||||
|
mpc8260/console-generic/Makefile
|
||||||
|
mpc8260/include/Makefile
|
||||||
|
mpc8260/timer/Makefile
|
||||||
|
mpc8260/exceptions/Makefile
|
||||||
|
mpc8260/mmu/Makefile
|
||||||
|
mpc8260/cpm/Makefile
|
||||||
new_exception_processing/Makefile
|
new_exception_processing/Makefile
|
||||||
old_exception_processing/Makefile
|
old_exception_processing/Makefile
|
||||||
shared/Makefile
|
shared/Makefile
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
* This include file contains information pertaining to the PowerPC
|
* This include file contains information pertaining to the PowerPC
|
||||||
* processor.
|
* processor.
|
||||||
*
|
*
|
||||||
|
* Modified for MPC8260 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
* Surrey Satellite Technology Limited (SSTL), 2001
|
||||||
|
*
|
||||||
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
||||||
*
|
*
|
||||||
* COPYRIGHT (c) 1995 by i-cubed ltd.
|
* COPYRIGHT (c) 1995 by i-cubed ltd.
|
||||||
@@ -256,6 +259,7 @@ extern "C" {
|
|||||||
|
|
||||||
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
|
#define CPU_PROVIDES_IDLE_THREAD_BODY FALSE
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Does the stack grow up (toward higher addresses) or down
|
* Does the stack grow up (toward higher addresses) or down
|
||||||
* (toward lower addresses)?
|
* (toward lower addresses)?
|
||||||
@@ -439,7 +443,7 @@ typedef struct {
|
|||||||
unsigned32 clicks_per_usec; /* Timer clicks per microsecond */
|
unsigned32 clicks_per_usec; /* Timer clicks per microsecond */
|
||||||
boolean exceptions_in_RAM; /* TRUE if in RAM */
|
boolean exceptions_in_RAM; /* TRUE if in RAM */
|
||||||
|
|
||||||
#if (defined(ppc403) || defined(mpc860) || defined(mpc821))
|
#if (defined(ppc403) || defined(mpc860) || defined(mpc821) || defined(mpc8260))
|
||||||
unsigned32 serial_per_sec; /* Serial clocks per second */
|
unsigned32 serial_per_sec; /* Serial clocks per second */
|
||||||
boolean serial_external_clock;
|
boolean serial_external_clock;
|
||||||
boolean serial_xon_xoff;
|
boolean serial_xon_xoff;
|
||||||
@@ -450,7 +454,7 @@ typedef struct {
|
|||||||
boolean timer_internal_clock; /* TRUE, when timer runs with CPU clk */
|
boolean timer_internal_clock; /* TRUE, when timer runs with CPU clk */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(mpc860) || defined(mpc821))
|
#if (defined(mpc860) || defined(mpc821) || defined( mpc8260))
|
||||||
unsigned32 clock_speed; /* Speed of CPU in Hz */
|
unsigned32 clock_speed; /* Speed of CPU in Hz */
|
||||||
#endif
|
#endif
|
||||||
} rtems_cpu_table;
|
} rtems_cpu_table;
|
||||||
|
|||||||
@@ -8,6 +8,10 @@
|
|||||||
* Copyright (C) 1999 Eric Valette (valette@crf.canon.fr)
|
* Copyright (C) 1999 Eric Valette (valette@crf.canon.fr)
|
||||||
* Canon Centre Recherche France.
|
* Canon Centre Recherche France.
|
||||||
*
|
*
|
||||||
|
* Added MPC8260 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
* Surrey Satellite Technology Limited
|
||||||
|
*
|
||||||
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
* found in found in the file LICENSE in this distribution or at
|
* found in found in the file LICENSE in this distribution or at
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
@@ -184,6 +188,7 @@ typedef enum {
|
|||||||
PPC_620 = 0x16,
|
PPC_620 = 0x16,
|
||||||
PPC_860 = 0x50,
|
PPC_860 = 0x50,
|
||||||
PPC_821 = PPC_860,
|
PPC_821 = PPC_860,
|
||||||
|
PPC_8260 = 0x81,
|
||||||
PPC_UNKNOWN = 0xff
|
PPC_UNKNOWN = 0xff
|
||||||
} ppc_cpu_id_t;
|
} ppc_cpu_id_t;
|
||||||
|
|
||||||
@@ -317,6 +322,8 @@ static inline void PPC_Set_timebase_register (unsigned long long tbr)
|
|||||||
asm volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
|
asm volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define PPC_Get_decrementer( _clicks ) \
|
||||||
|
asm volatile( "mfdec %0" : "=r" (_clicks) )
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,9 @@
|
|||||||
*
|
*
|
||||||
* Copyright (C) 1999 Eric Valette. valette@crf.canon.fr
|
* Copyright (C) 1999 Eric Valette. valette@crf.canon.fr
|
||||||
*
|
*
|
||||||
|
* Added MPC8260 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
* Surrey Satellite Technology Limited
|
||||||
|
*
|
||||||
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
||||||
* found in found in the file LICENSE in this distribution or at
|
* found in found in the file LICENSE in this distribution or at
|
||||||
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
||||||
@@ -37,6 +40,7 @@ ppc_cpu_id_t get_ppc_cpu_type()
|
|||||||
case PPC_604r:
|
case PPC_604r:
|
||||||
case PPC_620:
|
case PPC_620:
|
||||||
case PPC_860:
|
case PPC_860:
|
||||||
|
case PPC_8260:
|
||||||
current_ppc_cpu = (ppc_cpu_id_t) pvr;
|
current_ppc_cpu = (ppc_cpu_id_t) pvr;
|
||||||
return current_ppc_cpu;
|
return current_ppc_cpu;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Cache Management Support Routines for the MC68040
|
* Cache Management Support Routines for the MC68040
|
||||||
|
* Modified for MPC8260 Andy Dachs <a.dachs@sstl.co.uk>
|
||||||
|
* Surrey Satellite Technology Limited (SSTL), 2001
|
||||||
*
|
*
|
||||||
* $Id$
|
* $Id$
|
||||||
*/
|
*/
|
||||||
@@ -17,7 +19,7 @@
|
|||||||
* FIXME: Some functions simply have not been implemented.
|
* FIXME: Some functions simply have not been implemented.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(ppc603) /* And possibly others */
|
#if defined(ppc603) || defined(mpc8260) /* And possibly others */
|
||||||
|
|
||||||
/* Helpful macros */
|
/* Helpful macros */
|
||||||
#define PPC_Get_HID0( _value ) \
|
#define PPC_Get_HID0( _value ) \
|
||||||
|
|||||||
Reference in New Issue
Block a user