diff -r -c rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.c rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.c
*** rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.c	Thu Dec  2 15:31:04 1999
--- rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.c	Thu Oct 26 14:44:55 2000
***************
*** 405,411 ****
    0x48000002            /* ba    PROC (_ISR_Handler)            */
  };
  
! #if defined(mpc860) || defined(mpc821)
  const CPU_Trap_table_entry _CPU_Trap_slot_template_m860 = {
    0x7c0803ac,           /* mtlr  %r0                            */
    0x81210028,           /* lwz   %r9, IP_9(%r1)                 */
--- 405,411 ----
    0x48000002            /* ba    PROC (_ISR_Handler)            */
  };
  
! #if defined(mpc860) || defined(mpc821) || defined(mpc823)
  const CPU_Trap_table_entry _CPU_Trap_slot_template_m860 = {
    0x7c0803ac,           /* mtlr  %r0                            */
    0x81210028,           /* lwz   %r9, IP_9(%r1)                 */
***************
*** 497,503 ****
   *  and CPM. Therefore we must check for the alternate one if the standard
   *  one is not present
   */
! #if defined(mpc860) || defined(mpc821)
    if (slot->stwu_r1 == _CPU_Trap_slot_template_m860.stwu_r1) {
      /* 
       * Set u32_handler = to target address  
--- 497,503 ----
   *  and CPM. Therefore we must check for the alternate one if the standard
   *  one is not present
   */
! #if defined(mpc860) || defined(mpc821) || defined(mpc823)
    if (slot->stwu_r1 == _CPU_Trap_slot_template_m860.stwu_r1) {
      /* 
       * Set u32_handler = to target address  
***************
*** 512,518 ****
    /*
     *  Copy the template to the slot and then fix it.
     */
! #if defined(mpc860) || defined(mpc821)
    if (vector >= PPC_IRQ_IRQ0)
      *slot = _CPU_Trap_slot_template_m860;
    else
--- 512,518 ----
    /*
     *  Copy the template to the slot and then fix it.
     */
! #if defined(mpc860) || defined(mpc821) || defined(mpc823)
    if (vector >= PPC_IRQ_IRQ0)
      *slot = _CPU_Trap_slot_template_m860;
    else
***************
*** 672,678 ****
        Offset = 0x1400;
        break;
  
! #elif defined(mpc860) || defined(mpc821)
      case PPC_IRQ_EMULATE:
        Offset = 0x1000;
        break;
--- 672,678 ----
        Offset = 0x1400;
        break;
  
! #elif defined(mpc860) || defined(mpc821) || defined(mpc823)
      case PPC_IRQ_EMULATE:
        Offset = 0x1000;
        break;
diff -r -c rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.h rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.h
*** rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.h	Thu Dec  2 15:31:04 1999
--- rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/old_exception_processing/cpu.h	Thu Oct 26 14:46:23 2000
***************
*** 475,481 ****
    void       (*spurious_handler)(unsigned32 vector, CPU_Interrupt_frame *);
    boolean      exceptions_in_RAM;     /* TRUE if in RAM */
  
! #if (defined(ppc403) || defined(mpc860) || defined(mpc821))
    unsigned32   serial_per_sec;	       /* Serial clocks per second */
    boolean      serial_external_clock;
    boolean      serial_xon_xoff;
--- 475,481 ----
    void       (*spurious_handler)(unsigned32 vector, CPU_Interrupt_frame *);
    boolean      exceptions_in_RAM;     /* TRUE if in RAM */
  
! #if (defined(ppc403) || defined(mpc860) || defined(mpc821) || defined(mpc823))
    unsigned32   serial_per_sec;	       /* Serial clocks per second */
    boolean      serial_external_clock;
    boolean      serial_xon_xoff;
***************
*** 486,492 ****
    boolean      timer_internal_clock;   /* TRUE, when timer runs with CPU clk */
  #endif
  
! #if (defined(mpc860) || defined(mpc821))
    unsigned32   clock_speed;            /* Speed of CPU in Hz */
  #endif
  }   rtems_cpu_table;
--- 486,492 ----
    boolean      timer_internal_clock;   /* TRUE, when timer runs with CPU clk */
  #endif
  
! #if (defined(mpc860) || defined(mpc821) || defined(mpc823))
    unsigned32   clock_speed;            /* Speed of CPU in Hz */
  #endif
  }   rtems_cpu_table;
***************
*** 509,515 ****
  #define rtems_cpu_configuration_get_exceptions_in_ram() \
     (_CPU_Table.exceptions_in_RAM)
  
! #if (defined(ppc403) || defined(mpc860) || defined(mpc821))
  
  #define rtems_cpu_configuration_get_serial_per_sec() \
     (_CPU_Table.serial_per_sec)
--- 509,515 ----
  #define rtems_cpu_configuration_get_exceptions_in_ram() \
     (_CPU_Table.exceptions_in_RAM)
  
! #if (defined(ppc403) || defined(mpc860) || defined(mpc821) || defined(mpc823))
  
  #define rtems_cpu_configuration_get_serial_per_sec() \
     (_CPU_Table.serial_per_sec)
***************
*** 537,543 ****
  
  #endif
  
! #if (defined(mpc860) || defined(mpc821))
  #define rtems_cpu_configuration_get_clock_speed() \
     (_CPU_Table.clock_speed)
  #endif
--- 537,543 ----
  
  #endif
  
! #if (defined(mpc860) || defined(mpc821) || defined(mpc823))
  #define rtems_cpu_configuration_get_clock_speed() \
     (_CPU_Table.clock_speed)
  #endif
diff -r -c rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/shared/ppc.h rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/shared/ppc.h
*** rtems-4.5.0-beta3a-original/c/src/exec/score/cpu/powerpc/shared/ppc.h	Sun May 28 22:14:45 2000
--- rtems-4.5.0-beta3a/c/src/exec/score/cpu/powerpc/shared/ppc.h	Wed Oct 25 18:15:58 2000
***************
*** 257,262 ****
--- 257,277 ----
  #define PPC_MSR_2		0x00001000
  #define PPC_MSR_3		0x00000000
  
+ #elif defined(mpc823)
+ /* 
+  *  Added by Josu Onandia <jonandia@fagorautomation.es> 25/October/2000
+     Is a modificacion of mpc821
+  */ 
+ #define CPU_MODEL_NAME  "PowerPC MPC823"
+ 
+ #define PPC_ALIGNMENT		4
+ #define PPC_I_CACHE             2048
+ #define PPC_D_CACHE             1024
+ #define PPC_CACHE_ALIGNMENT	16
+ #define PPC_INTERRUPT_MAX       71
+ #define PPC_HAS_FPU     	0
+ #define PPC_HAS_DOUBLE		0
+ 
  #elif defined(mpc750)
  
  #define CPU_MODEL_NAME  "PowerPC 750"
***************
*** 524,530 ****
  #define PPC_IRQ_SYS_MGT  (PPC_STD_IRQ_LAST+2) /*0x1400- System Management */
  #define PPC_IRQ_LAST     PPC_IRQ_SYS_MGT  
  
! #elif defined(mpc860) || defined(mpc821)
  #define PPC_IRQ_EMULATE         (PPC_STD_IRQ_LAST+1) /*0x1000-Software emulation  */
  #define PPC_IRQ_INST_MISS       (PPC_STD_IRQ_LAST+2) /*0x1100-Instruction TLB miss*/
  #define PPC_IRQ_DATA_MISS       (PPC_STD_IRQ_LAST+3) /*0x1200-Data TLB miss */
--- 539,545 ----
  #define PPC_IRQ_SYS_MGT  (PPC_STD_IRQ_LAST+2) /*0x1400- System Management */
  #define PPC_IRQ_LAST     PPC_IRQ_SYS_MGT  
  
! #elif defined(mpc860) || defined(mpc821) || defined(mpc823)
  #define PPC_IRQ_EMULATE         (PPC_STD_IRQ_LAST+1) /*0x1000-Software emulation  */
  #define PPC_IRQ_INST_MISS       (PPC_STD_IRQ_LAST+2) /*0x1100-Instruction TLB miss*/
  #define PPC_IRQ_DATA_MISS       (PPC_STD_IRQ_LAST+3) /*0x1200-Data TLB miss */
diff -r -c rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/Makefile.am rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/Makefile.am
*** rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/Makefile.am	Tue Mar 21 18:57:20 2000
--- rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/Makefile.am	Thu Oct 26 12:38:34 2000
***************
*** 19,24 ****
--- 19,27 ----
  if mpc821
  CPU_SUBDIR = mpc821
  endif
+ if mpc823
+ CPU_SUBDIR = mpc823
+ endif
  if mpc860
  CPU_SUBDIR = mpc860
  endif
diff -r -c rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/Makefile.in rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/Makefile.in
*** rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/Makefile.in	Mon Jun 12 23:00:48 2000
--- rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/Makefile.in	Wed Oct 25 18:40:38 2000
***************
*** 93,98 ****
--- 93,99 ----
  @mpc505_TRUE@CPU_SUBDIR = mpc505
  @mpc6xx_TRUE@CPU_SUBDIR = mpc6xx
  @mpc821_TRUE@CPU_SUBDIR = mpc821
+ @mpc823_TRUE@CPU_SUBDIR = mpc823
  @mpc860_TRUE@CPU_SUBDIR = mpc860
  @ppc403_TRUE@CPU_SUBDIR = ppc403
  
***************
*** 140,146 ****
  
  TAR = gtar
  GZIP_ENV = --best
! DIST_SUBDIRS =  shared mpc505 mpc6xx mpc821 mpc860 ppc403 wrapup
  all: all-redirect
  .SUFFIXES:
  $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/../../../../../automake/subdirs.am $(top_srcdir)/../../../../../automake/local.am
--- 141,147 ----
  
  TAR = gtar
  GZIP_ENV = --best
! DIST_SUBDIRS =  shared mpc505 mpc6xx mpc821 mpc823 mpc860 ppc403 wrapup
  all: all-redirect
  .SUFFIXES:
  $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) $(top_srcdir)/../../../../../automake/subdirs.am $(top_srcdir)/../../../../../automake/local.am
diff -r -c rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/configure rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/configure
*** rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/configure	Mon Jun 12 23:00:47 2000
--- rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/configure	Thu Oct 26 12:41:14 2000
***************
*** 2046,2051 ****
--- 2046,2060 ----
  fi
  
  
+ if test "$RTEMS_CPU_MODEL" = "mpc823"; then
+   mpc823_TRUE=
+   mpc823_FALSE='#'
+ else
+   mpc823_TRUE='#'
+   mpc823_FALSE=
+ fi
+ 
+ 
  if test "$RTEMS_CPU_MODEL" = "mpc860"; then
    mpc860_TRUE=
    mpc860_FALSE='#'
***************
*** 2187,2192 ****
--- 2196,2207 ----
  mpc821/include/Makefile
  mpc821/timer/Makefile
  mpc821/vectors/Makefile
+ mpc823/Makefile
+ mpc823/clock/Makefile
+ mpc823/console-generic/Makefile
+ mpc823/include/Makefile
+ mpc823/timer/Makefile
+ mpc823/vectors/Makefile
  mpc860/Makefile
  mpc860/clock/Makefile
  mpc860/console-generic/Makefile
***************
*** 2298,2303 ****
--- 2313,2320 ----
  s%@mpc6xx_FALSE@%$mpc6xx_FALSE%g
  s%@mpc821_TRUE@%$mpc821_TRUE%g
  s%@mpc821_FALSE@%$mpc821_FALSE%g
+ s%@mpc823_TRUE@%$mpc823_TRUE%g
+ s%@mpc823_FALSE@%$mpc823_FALSE%g
  s%@mpc860_TRUE@%$mpc860_TRUE%g
  s%@mpc860_FALSE@%$mpc860_FALSE%g
  s%@ppc403_TRUE@%$ppc403_TRUE%g
***************
*** 2353,2358 ****
--- 2370,2381 ----
  mpc821/include/Makefile
  mpc821/timer/Makefile
  mpc821/vectors/Makefile
+ mpc823/Makefile
+ mpc823/clock/Makefile
+ mpc823/console-generic/Makefile
+ mpc823/include/Makefile
+ mpc823/timer/Makefile
+ mpc823/vectors/Makefile
  mpc860/Makefile
  mpc860/clock/Makefile
  mpc860/console-generic/Makefile
diff -r -c rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/configure.in rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/configure.in
*** rtems-4.5.0-beta3a-original/c/src/lib/libcpu/powerpc/configure.in	Tue Feb  8 23:33:17 2000
--- rtems-4.5.0-beta3a/c/src/lib/libcpu/powerpc/configure.in	Wed Oct 25 18:33:00 2000
***************
*** 35,40 ****
--- 35,41 ----
  || test "$RTEMS_CPU_MODEL" = "mpc604" \
  || test "$RTEMS_CPU_MODEL" = "mpc750" )
  AM_CONDITIONAL(mpc821, test "$RTEMS_CPU_MODEL" = "mpc821")
+ AM_CONDITIONAL(mpc823, test "$RTEMS_CPU_MODEL" = "mpc823")
  AM_CONDITIONAL(mpc860, test "$RTEMS_CPU_MODEL" = "mpc860")
  AM_CONDITIONAL(ppc403, test "$RTEMS_CPU_MODEL" = "ppc403")
  
***************
*** 50,55 ****
--- 51,62 ----
  mpc821/include/Makefile
  mpc821/timer/Makefile
  mpc821/vectors/Makefile
+ mpc823/Makefile
+ mpc823/clock/Makefile
+ mpc823/console-generic/Makefile
+ mpc823/include/Makefile
+ mpc823/timer/Makefile
+ mpc823/vectors/Makefile
  mpc860/Makefile
  mpc860/clock/Makefile
  mpc860/console-generic/Makefile
