diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc32xx/misc/restart.c')
-rw-r--r-- | c/src/lib/libbsp/arm/lpc32xx/misc/restart.c | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c b/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c index 68bf2c3ba2..2abacf0e38 100644 --- a/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c +++ b/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c @@ -30,24 +30,5 @@ void bsp_restart(void *addr) { - ARM_SWITCH_REGISTERS; - rtems_interrupt_level level; - uint32_t ctrl = 0; - - rtems_interrupt_disable(level); - - arm_cp15_data_cache_test_and_clean(); - arm_cp15_instruction_cache_invalidate(); - - ctrl = arm_cp15_get_control(); - ctrl &= ~(ARM_CP15_CTRL_I | ARM_CP15_CTRL_C | ARM_CP15_CTRL_M); - arm_cp15_set_control(ctrl); - - __asm__ volatile ( - ARM_SWITCH_TO_ARM - "mov pc, %[addr]\n" - ARM_SWITCH_BACK - : ARM_SWITCH_OUTPUT - : [addr] "r" (addr) - ); + LPC32XX_DO_RESTART(addr); } |