diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-11-10 22:37:57 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2004-11-10 22:37:57 +0000 |
commit | d700909e7e3754542c89220dbad644b75870c46a (patch) | |
tree | e9103b10c706701fa66b1ca7fd76850264e78591 | |
parent | 2004-11-10 Richard Campbell <richard.campbell@oarcorp.com> (diff) | |
download | rtems-d700909e7e3754542c89220dbad644b75870c46a.tar.bz2 |
2004-11-10 Richard Campbell <richard.campbell@oarcorp.com>
* configure.ac, mpc6xx/exceptions/raw_exception.c,
mpc6xx/exceptions/raw_exception.h, mpc6xx/mmu/bat.c,
mpc6xx/mmu/bat.h, mpc6xx/mmu/mmuAsm.S, shared/include/cpuIdent.c,
shared/include/cpuIdent.h: Add MPC8240 and MPC8245 support. There was
also a significant amount of spelling and whitespace cleanup.
-rw-r--r-- | c/src/lib/libcpu/powerpc/ChangeLog | 8 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/configure.ac | 6 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.c | 33 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h | 8 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c | 4 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.h | 4 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S | 1 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/cpuIdent.c | 8 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h | 4 |
9 files changed, 56 insertions, 20 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog index c5b0a64bf2..6633c6f922 100644 --- a/c/src/lib/libcpu/powerpc/ChangeLog +++ b/c/src/lib/libcpu/powerpc/ChangeLog @@ -1,3 +1,11 @@ +2004-11-10 Richard Campbell <richard.campbell@oarcorp.com> + + * configure.ac, mpc6xx/exceptions/raw_exception.c, + mpc6xx/exceptions/raw_exception.h, mpc6xx/mmu/bat.c, + mpc6xx/mmu/bat.h, mpc6xx/mmu/mmuAsm.S, shared/include/cpuIdent.c, + shared/include/cpuIdent.h: Add MPC8240 and MPC8245 support. There was + also a significant amount of spelling and whitespace cleanup. + 2004-05-22 Till Strauman <strauman@slac.stanford.edu> PR 619/bsps diff --git a/c/src/lib/libcpu/powerpc/configure.ac b/c/src/lib/libcpu/powerpc/configure.ac index eab0a1ecb8..d704d42685 100644 --- a/c/src/lib/libcpu/powerpc/configure.ac +++ b/c/src/lib/libcpu/powerpc/configure.ac @@ -31,6 +31,8 @@ AM_CONDITIONAL(shared, test "$RTEMS_CPU_MODEL" = "mpc750" \ || test "$RTEMS_CPU_MODEL" = "mpc6xx" \ || test "$RTEMS_CPU_MODEL" = "mpc821" \ || test "$RTEMS_CPU_MODEL" = "mpc860" \ +|| test "$RTEMS_CPU_MODEL" = "mpc8240" \ +|| test "$RTEMS_CPU_MODEL" = "mpc8245" \ || test "$RTEMS_CPU_MODEL" = "mpc8260" \ || test "$RTEMS_CPU_MODEL" = "mpc8xx" ) @@ -39,7 +41,9 @@ AM_CONDITIONAL(mpc505, test "$RTEMS_CPU_MODEL" = "mpc505") AM_CONDITIONAL(mpc6xx, test "$RTEMS_CPU_MODEL" = "mpc6xx" \ || test "$RTEMS_CPU_MODEL" = "mpc604" \ || test "$RTEMS_CPU_MODEL" = "mpc7400" \ -|| test "$RTEMS_CPU_MODEL" = "mpc750" ) +|| test "$RTEMS_CPU_MODEL" = "mpc750" \ +|| test "$RTEMS_CPU_MODEL" = "mpc8240" \ +|| test "$RTENS_CPU_MODEL" = "mpc8245" ) AM_CONDITIONAL(mpc8xx, test "$RTEMS_CPU_MODEL" = "mpc8xx" \ || test "$RTEMS_CPU_MODEL" = "mpc821" \ || test "$RTEMS_CPU_MODEL" = "mpc860" ) diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.c b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.c index cb49da94a2..1c1e21be65 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.c +++ b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.c @@ -1,7 +1,7 @@ /* * raw_exception.c - This file contains implementation of C function to - * Instanciate 60x ppc primary exception entries. - * More detailled information can be found on motorola + * Instantiate 60x ppc primary exception entries. + * More detailed information can be found on motorola * site and more precisely in the following book : * * MPC750 @@ -33,6 +33,17 @@ static rtems_raw_except_connect_data default_raw_except_entry; static rtems_raw_except_global_settings* local_settings; void * codemove(void *, const void *, unsigned int, unsigned long); + +void* mpc60x_get_vector_addr(rtems_vector vector) +{ + extern rtems_cpu_table Cpu_table; + + if ( Cpu_table.exceptions_in_RAM ) + return ((void*) (((unsigned) vector) << 8)); + + return ((void*) (((unsigned) vector) << 8) + 0xfff00000); +} + int mpc750_vector_is_valid(rtems_vector vector) { @@ -133,13 +144,17 @@ int mpc60x_vector_is_valid(rtems_vector vector) case PPC_603: case PPC_603e: case PPC_603ev: + case PPC_8260: + /* case PPC_8240: -- same value as 8260 */ + case PPC_8245: if (!mpc603_vector_is_valid(vector)) { return 0; } break; - default: - printk("Please complete libcpu/powerpc/mpc6xx/exceptions/raw_exception.c\n"); - printk("current_ppc_cpu = %x\n", current_ppc_cpu); + default: + printk("Please complete " + "libcpu/powerpc/mpc6xx/exceptions/raw_exception.c\n" + "current_ppc_cpu = %x\n", current_ppc_cpu); return 0; } return 1; @@ -150,6 +165,8 @@ int mpc60x_set_exception (const rtems_raw_except_connect_data* except) unsigned int level; if (!mpc60x_vector_is_valid(except->exceptIndex)) { + printk("mpc60x_set_exception: vector %d is not valid\n", + except->exceptIndex); return 0; } /* @@ -159,7 +176,11 @@ int mpc60x_set_exception (const rtems_raw_except_connect_data* except) * RATIONALE : to always have the same transition by forcing the user * to get the previous handler before accepting to disconnect. */ - if (memcmp(mpc60x_get_vector_addr(except->exceptIndex), (void*)default_raw_except_entry.hdl.raw_hdl,default_raw_except_entry.hdl.raw_hdl_size)) { + + if (memcmp(mpc60x_get_vector_addr(except->exceptIndex), + (void*)default_raw_except_entry.hdl.raw_hdl, + default_raw_except_entry.hdl.raw_hdl_size)) { + printk("mpc60x_set_exception: raw vector not installed\n"); return 0; } diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h index 381645b219..5f334542f4 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h +++ b/c/src/lib/libcpu/powerpc/mpc6xx/exceptions/raw_exception.h @@ -2,8 +2,8 @@ * raw_execption.h * * This file contains implementation of C function to - * Instanciate 60x ppc primary exception entries. - * More detailled information can be found on motorola + * Instantiate 60x ppc primary exception entries. + * More detailed information can be found on motorola * site and more precisely in the following book : * * MPC750 @@ -159,10 +159,6 @@ extern int mpc60x_delete_exception (const rtems_raw_except_connect_data*); */ extern int mpc750_vector_is_valid(rtems_vector vector); -inline static void* mpc60x_get_vector_addr(rtems_vector vector) -{ - return ((void*) (((unsigned) vector) << 8)); -} /* * Exception global init. */ diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c index 248e9f25b1..f2e3c5eb82 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c +++ b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.c @@ -2,8 +2,8 @@ * bat.c * * This file contains the implementation of C function to - * Instanciate 60x/7xx ppc Block Address Translation (BAT) registers. - * More detailled information can be found on motorola + * Instantiate 60x/7xx ppc Block Address Translation (BAT) registers. + * More detailed information can be found on motorola * site and more precisely in the following book : * * MPC750 diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.h b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.h index 99d18e56c1..0ea9fc234e 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.h +++ b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/bat.h @@ -2,8 +2,8 @@ * bat.h * * This file contains declaration of C function to - * Instanciate 60x/7xx ppc Block Address Translation (BAT) registers. - * More detailled information can be found on motorola + * Instantiate 60x/7xx ppc Block Address Translation (BAT) registers. + * More detailed information can be found on motorola * site and more precisely in the following book : * * MPC750 diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S index 6f7a2d58ee..01a055ca24 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S +++ b/c/src/lib/libcpu/powerpc/mpc6xx/mmu/mmuAsm.S @@ -35,6 +35,7 @@ #define PPC_860 0x50 #define PPC_821 PPC_860 #define PPC_8260 0x81 +#define PPC_8240 PPC_8260 /* ALTIVEC instructions (not recognized by off-the shelf gcc yet) */ #define DSSALL .long 0x7e00066c /* DSSALL altivec instruction opcode */ diff --git a/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.c b/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.c index 319e0c1f93..c743fe7409 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.c +++ b/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.c @@ -40,8 +40,10 @@ char *get_ppc_cpu_type_name(ppc_cpu_id_t cpu) case PPC_620: return "MPC620"; case PPC_860: return "MPC860"; case PPC_8260: return "MPC8260"; + case PPC_8245: return "MPC8245"; default: - printk("Unknown CPU value of 0x%x. Please add it to <libcpu/powerpc/shared/include/cpuIdent.c>\n", cpu ); + printk("Unknown CPU value of 0x%x. Please add it to " + "<libcpu/powerpc/shared/include/cpuIdent.c>\n", cpu ); } return "UNKNOWN"; } @@ -62,9 +64,11 @@ ppc_cpu_id_t get_ppc_cpu_type() case PPC_620: case PPC_860: case PPC_8260: + case PPC_8245: return current_ppc_cpu; default: - printk("Unknown PVR value of 0x%x. Please add it to <libcpu/powerpc/shared/include/cpuIdent.c>\n", pvr ); + printk("Unknown PVR value of 0x%x. Please add it to " + "<libcpu/powerpc/shared/include/cpuIdent.c>\n", pvr ); return PPC_UNKNOWN; } } diff --git a/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h b/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h index 1620d11a62..53eac1cb2c 100644 --- a/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h +++ b/c/src/lib/libcpu/powerpc/shared/include/cpuIdent.h @@ -32,7 +32,9 @@ typedef enum PPC_860 = 0x50, PPC_821 = PPC_860, PPC_8260 = 0x81, - PPC_UNKNOWN = 0xff + PPC_8240 = PPC_8260, + PPC_8245 = 0x8081, + PPC_UNKNOWN = 0xffff } ppc_cpu_id_t; typedef unsigned short ppc_cpu_revision_t; |