From ef99210e68a04754438545f8db2a79e30d83ab90 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 29 Jun 2000 16:27:47 +0000 Subject: Patch from Eric Valette to do some cleanup. --- c/src/lib/libbsp/powerpc/shared/bootloader/ppcboot.lds | 2 +- c/src/lib/libbsp/powerpc/shared/startup/bspstart.c | 8 ++++---- c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c | 15 +++++++++++---- 3 files changed, 16 insertions(+), 9 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/powerpc/shared/bootloader/ppcboot.lds b/c/src/lib/libbsp/powerpc/shared/bootloader/ppcboot.lds index 9d46c0a83f..adf9130799 100644 --- a/c/src/lib/libbsp/powerpc/shared/bootloader/ppcboot.lds +++ b/c/src/lib/libbsp/powerpc/shared/bootloader/ppcboot.lds @@ -1,5 +1,5 @@ OUTPUT_ARCH(powerpc) -OUTPUT_FORMAT(ppcboot) +/* OUTPUT_FORMAT(ppcboot) */ /* Do we need any of these for elf? __DYNAMIC = 0; */ SECTIONS diff --git a/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c b/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c index c45decac70..f567367834 100644 --- a/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/shared/startup/bspstart.c @@ -77,14 +77,14 @@ unsigned int BSP_time_base_divisor; void BSP_panic(char *s) { - printk("RTEMS 4.x PANIC %s\n", s); - _return_to_ppcbug(); + printk("%s PANIC %s\n",_RTEMS_version, s); + __asm__ __volatile ("sc"); } void _BSP_Fatal_error(unsigned int v) { - printk("RTEMS 4.x PANIC ERROR %x\n", v); - _return_to_ppcbug(); + printk("%s PANIC ERROR %x\n",_RTEMS_version, v); + __asm__ __volatile ("sc"); } /* diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c b/c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c index 7310fbd2c5..8d0a500185 100644 --- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c +++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors_init.c @@ -65,11 +65,18 @@ void C_exception_handler(BSP_Exception_frame* excPtr) printk("\t XER = %x\n", excPtr->EXC_XER); printk("\t LR = %x\n", excPtr->EXC_LR); printk("\t MSR = %x\n", excPtr->EXC_MSR); - if ( (excPtr->_EXC_number == ASM_DEC_VECTOR) || - (excPtr->_EXC_number == ASM_SYS_VECTOR) - ) + if (excPtr->_EXC_number == ASM_DEC_VECTOR) recoverable = 1; - if (!recoverable) BSP_panic("unrecoverable exception!!! Push reset button\n"); + 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); + } } void nop_except_enable(const rtems_raw_except_connect_data* ptr) -- cgit v1.2.3