summaryrefslogtreecommitdiffstats
path: root/c/src/lib
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2007-12-01 01:26:41 +0000
committerTill Straumann <strauman@slac.stanford.edu>2007-12-01 01:26:41 +0000
commitea39487c5910a74b3682277389f07f2712e32057 (patch)
tree70542daf9f4b77464775317ad7d2175f9f5adbeb /c/src/lib
parent2007-11-30 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-ea39487c5910a74b3682277389f07f2712e32057.tar.bz2
2007-11-30 Till Straumann <strauman@slac.stanford.edu>
* new-exceptions/raw_exception.c, new-exceptions/raw_exception.h, old-exception/cpu.c: define bsp_exceptions_in_RAM variable. This is probably only used by the simulator (were else can you install something to ROM ??).
Diffstat (limited to 'c/src/lib')
-rw-r--r--c/src/lib/libcpu/powerpc/ChangeLog7
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c1
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h14
-rw-r--r--c/src/lib/libcpu/powerpc/old-exceptions/cpu.c15
4 files changed, 36 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/powerpc/ChangeLog b/c/src/lib/libcpu/powerpc/ChangeLog
index 155a0939a7..579bfe0a8b 100644
--- a/c/src/lib/libcpu/powerpc/ChangeLog
+++ b/c/src/lib/libcpu/powerpc/ChangeLog
@@ -1,5 +1,12 @@
2007-11-30 Till Straumann <strauman@slac.stanford.edu>
+ * new-exceptions/raw_exception.c, new-exceptions/raw_exception.h,
+ old-exception/cpu.c: define bsp_exceptions_in_RAM variable.
+ This is probably only used by the simulator (were else
+ can you install something to ROM ??).
+
+2007-11-30 Till Straumann <strauman@slac.stanford.edu>
+
* mpc6xx/mmu/bat.c, mpc6xx/mmu/pte121.c: use new
feature-checks from cpuIdent.h rather than filtering
CPU types when checking for availability of high BATs
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c b/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c
index 85d57dec6f..1e9acbae7b 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c
@@ -39,6 +39,7 @@ static rtems_raw_except_global_settings* local_settings;
void * codemove(void *, const void *, unsigned int, unsigned long);
+boolean bsp_exceptions_in_RAM = TRUE;
static void* ppc_get_vector_addr(rtems_vector vector)
{
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h b/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h
index 1805484f8e..9176ffe173 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h
@@ -319,6 +319,20 @@ extern int ppc_vector_is_valid(rtems_vector vector);
extern int ppc_init_exceptions (rtems_raw_except_global_settings* config);
extern int ppc_get_exception_config (rtems_raw_except_global_settings** config);
+/* This variable is initialized to 'TRUE' by default;
+ * BSPs which have their vectors in ROM should set it
+ * to FALSE prior to initializing raw exceptions.
+ *
+ * I suspect the only candidate is the simulator.
+ * After all, the value of this variable is used to
+ * determine where to install the prologue code and
+ * installing to ROM on anyting that's real ROM
+ * will fail anyways.
+ *
+ * This should probably go away... (T.S. 2007/11/30)
+ */
+extern boolean bsp_exceptions_in_RAM;
+
# endif /* ASM */
#endif
diff --git a/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c b/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c
index f6ffeae12a..0e4a62a8a8 100644
--- a/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c
+++ b/c/src/lib/libcpu/powerpc/old-exceptions/cpu.c
@@ -56,6 +56,20 @@ static void ppc_spurious(int, CPU_Interrupt_frame *);
int _CPU_spurious_count = 0;
int _CPU_last_spurious = 0;
+/* This variable is initialized to 'TRUE' by default;
+ * BSPs which have their vectors in ROM should set it
+ * to FALSE prior to initializing raw exceptions.
+ *
+ * I suspect the only candidate is the simulator.
+ * After all, the value of this variable is used to
+ * determine where to install the prologue code and
+ * installing to ROM on anyting that's real ROM
+ * will fail anyways.
+ *
+ * This should probably go away... (T.S. 2007/11/30)
+ */
+boolean bsp_exceptions_in_RAM = TRUE;
+
void _CPU_Initialize(
rtems_cpu_table *cpu_table,
void (*thread_dispatch) /* ignored on this CPU */
@@ -308,7 +322,6 @@ void _CPU_ISR_install_vector(
{
proc_ptr ignored;
extern void (*bsp_spurious_handler)(uint32_t vector, CPU_Interrupt_frame *);
- extern boolean bsp_exceptions_in_RAM;
*old_handler = _ISR_Vector_table[ vector ];