From ea39487c5910a74b3682277389f07f2712e32057 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Sat, 1 Dec 2007 01:26:41 +0000 Subject: 2007-11-30 Till Straumann * 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 ??). --- c/src/lib/libcpu/powerpc/ChangeLog | 7 +++++++ c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.c | 1 + c/src/lib/libcpu/powerpc/new-exceptions/raw_exception.h | 14 ++++++++++++++ c/src/lib/libcpu/powerpc/old-exceptions/cpu.c | 15 ++++++++++++++- 4 files changed, 36 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libcpu') 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,3 +1,10 @@ +2007-11-30 Till Straumann + + * 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 * mpc6xx/mmu/bat.c, mpc6xx/mmu/pte121.c: use new 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 ]; -- cgit v1.2.3