summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/score/cpu/sparc/ChangeLog8
-rw-r--r--cpukit/score/cpu/sparc/cpu.c34
2 files changed, 10 insertions, 32 deletions
diff --git a/cpukit/score/cpu/sparc/ChangeLog b/cpukit/score/cpu/sparc/ChangeLog
index fbf5349cfa..c35fe27078 100644
--- a/cpukit/score/cpu/sparc/ChangeLog
+++ b/cpukit/score/cpu/sparc/ChangeLog
@@ -1,3 +1,11 @@
+2002-03-28 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
+
+ * cpu.c: Replace NO_TABLE_MOVE-support by external function
+ (code moved to libcpu/sparc/tbr/tbr.c).
+ * cpu.h: Replace NO_TABLE_MOVE-support by external function
+ (code moved to libcpu/sparc/tbr/tbr.h).
+ * sparc.h: Add sparc_init_tbr (implemented in libcpu/sparc/tbr/tbr.c).
+
2002-03-27 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* configure.ac:
diff --git a/cpukit/score/cpu/sparc/cpu.c b/cpukit/score/cpu/sparc/cpu.c
index 876676248c..cbbddc9426 100644
--- a/cpukit/score/cpu/sparc/cpu.c
+++ b/cpukit/score/cpu/sparc/cpu.c
@@ -55,38 +55,8 @@ void _CPU_Initialize(
{
void *pointer;
-#ifndef NO_TABLE_MOVE
- unsigned32 trap_table_start;
- unsigned32 tbr_value;
- CPU_Trap_table_entry *old_tbr;
- CPU_Trap_table_entry *trap_table;
-
- /*
- * Install the executive's trap table. All entries from the original
- * trap table are copied into the executive's trap table. This is essential
- * since this preserves critical trap handlers such as the window underflow
- * and overflow handlers. It is the responsibility of the BSP to provide
- * install these in the initial trap table.
- */
-
-
- trap_table_start = (unsigned32) &_CPU_Trap_Table_area;
- if (trap_table_start & (SPARC_TRAP_TABLE_ALIGNMENT-1))
- trap_table_start = (trap_table_start + SPARC_TRAP_TABLE_ALIGNMENT) &
- ~(SPARC_TRAP_TABLE_ALIGNMENT-1);
-
- trap_table = (CPU_Trap_table_entry *) trap_table_start;
-
- sparc_get_tbr( tbr_value );
-
- old_tbr = (CPU_Trap_table_entry *) (tbr_value & 0xfffff000);
-
- memcpy( trap_table, (void *) old_tbr, 256 * sizeof( CPU_Trap_table_entry ) );
-
- sparc_set_tbr( trap_table_start );
-
-#endif
-
+ sparc_init_tbr();
+
#if (SPARC_HAS_FPU == 1)
/*