summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c')
-rw-r--r--c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c137
1 files changed, 0 insertions, 137 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c b/c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c
deleted file mode 100644
index 342ca5509a..0000000000
--- a/c/src/lib/libcpu/powerpc/mpc5xx/vectors/vectors_init.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * vectors_init.c Exception hanlding initialisation (and generic handler).
- *
- * This include file describe the data structure and the functions implemented
- * by rtems to handle exceptions.
- */
-
-/*
- * MPC5xx port sponsored by Defence Research and Development Canada - Suffield
- * Copyright (C) 2004, Real-Time Systems Inc. (querbach@realtime.bc.ca)
- *
- * Derived from libbsp/powerpc/mbx8xx/vectors/vectors_init.c:
- *
- * CopyRight (C) 1999 valette@crf.canon.fr
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.org/license/LICENSE.
- */
-#include <inttypes.h>
-#include <rtems/bspIo.h>
-#include <libcpu/vectors.h>
-#include <libcpu/raw_exception.h>
-#include <bsp/irq.h>
-
-extern rtems_exception_handler_t default_exception_handler;
-
-static rtems_raw_except_global_settings exception_config;
-static rtems_raw_except_connect_data exception_table[NUM_EXCEPTIONS];
-rtems_exception_handler_t* exception_handler_table[NUM_EXCEPTIONS];
-
-void C_default_exception_handler(CPU_Exception_frame* excPtr)
-{
- int recoverable = 0;
-
- printk("exception handler called for exception %" PRIu32 "\n",
- excPtr->_EXC_number);
- printk("\t Next PC or Address of fault = %" PRIxPTR "\n", excPtr->EXC_SRR0);
- printk("\t Saved MSR = %" PRIxPTR "\n", excPtr->EXC_SRR1);
- printk("\t R0 = %" PRIxPTR "\n", excPtr->GPR0);
- printk("\t R1 = %" PRIxPTR "\n", excPtr->GPR1);
- printk("\t R2 = %" PRIxPTR "\n", excPtr->GPR2);
- printk("\t R3 = %" PRIxPTR "\n", excPtr->GPR3);
- printk("\t R4 = %" PRIxPTR "\n", excPtr->GPR4);
- printk("\t R5 = %" PRIxPTR "\n", excPtr->GPR5);
- printk("\t R6 = %" PRIxPTR "\n", excPtr->GPR6);
- printk("\t R7 = %" PRIxPTR "\n", excPtr->GPR7);
- printk("\t R8 = %" PRIxPTR "\n", excPtr->GPR8);
- printk("\t R9 = %" PRIxPTR "\n", excPtr->GPR9);
- printk("\t R10 = %" PRIxPTR "\n", excPtr->GPR10);
- printk("\t R11 = %" PRIxPTR "\n", excPtr->GPR11);
- printk("\t R12 = %" PRIxPTR "\n", excPtr->GPR12);
- printk("\t R13 = %" PRIxPTR "\n", excPtr->GPR13);
- printk("\t R14 = %" PRIxPTR "\n", excPtr->GPR14);
- printk("\t R15 = %" PRIxPTR "\n", excPtr->GPR15);
- printk("\t R16 = %" PRIxPTR "\n", excPtr->GPR16);
- printk("\t R17 = %" PRIxPTR "\n", excPtr->GPR17);
- printk("\t R18 = %" PRIxPTR "\n", excPtr->GPR18);
- printk("\t R19 = %" PRIxPTR "\n", excPtr->GPR19);
- printk("\t R20 = %" PRIxPTR "\n", excPtr->GPR20);
- printk("\t R21 = %" PRIxPTR "\n", excPtr->GPR21);
- printk("\t R22 = %" PRIxPTR "\n", excPtr->GPR22);
- printk("\t R23 = %" PRIxPTR "\n", excPtr->GPR23);
- printk("\t R24 = %" PRIxPTR "\n", excPtr->GPR24);
- printk("\t R25 = %" PRIxPTR "\n", excPtr->GPR25);
- printk("\t R26 = %" PRIxPTR "\n", excPtr->GPR26);
- printk("\t R27 = %" PRIxPTR "\n", excPtr->GPR27);
- printk("\t R28 = %" PRIxPTR "\n", excPtr->GPR28);
- printk("\t R29 = %" PRIxPTR "\n", excPtr->GPR29);
- printk("\t R30 = %" PRIxPTR "\n", excPtr->GPR30);
- printk("\t R31 = %" PRIxPTR "\n", excPtr->GPR31);
- printk("\t CR = %" PRIx32 "\n", excPtr->EXC_CR);
- printk("\t CTR = %" PRIxPTR "\n", excPtr->EXC_CTR);
- printk("\t XER = %" PRIx32 "\n", excPtr->EXC_XER);
- printk("\t LR = %" PRIxPTR "\n", excPtr->EXC_LR);
- if (excPtr->_EXC_number == ASM_DEC_VECTOR)
- recoverable = 1;
- if (excPtr->_EXC_number == ASM_SYS_VECTOR)
-#ifdef TEST_RAW_EXCEPTION_CODE
- recoverable = 1;
-#else
- recoverable = 0;
-#endif
- if (!recoverable) {
- printk("unrecoverable exception!!! Push reset button\n");
- while(1);
- }
-}
-
-static void nop_except_enable(const rtems_raw_except_connect_data* ptr)
-{
-}
-
-static int except_always_enabled(const rtems_raw_except_connect_data* ptr)
-{
- return 1;
-}
-
-void initialize_exceptions(void)
-{
- int i;
-
- /*
- * Initialize all entries of the exception table with a description of the
- * default exception handler.
- */
- exception_config.exceptSize = NUM_EXCEPTIONS;
- exception_config.rawExceptHdlTbl = &exception_table[0];
- exception_config.defaultRawEntry.exceptIndex = 0;
- exception_config.defaultRawEntry.hdl.vector = 0;
- exception_config.defaultRawEntry.hdl.raw_hdl = default_exception_handler;
-
- for (i = 0; i < exception_config.exceptSize; i++) {
- printk("installing exception number %d\n", i);
- exception_table[i].exceptIndex = i;
- exception_table[i].hdl = exception_config.defaultRawEntry.hdl;
- exception_table[i].hdl.vector = i;
- exception_table[i].on = nop_except_enable;
- exception_table[i].off = nop_except_enable;
- exception_table[i].isOn = except_always_enabled;
- }
-
- /*
- * Now pass the initialized exception table to the exceptions module which
- * will install the handler pointers in the exception handler table.
- */
- if (!mpc5xx_init_exceptions(&exception_config)) {
- /*
- * At this stage we may not call CPU_Panic because it uses exceptions!!!
- */
- printk("Exception handling initialization failed\n");
- printk("System locked\n"); while(1);
- }
- else {
- printk("Exception handling initialization done\n");
- }
-}