diff options
Diffstat (limited to 'c/src/lib/libbsp/lm32/shared/start/start.S')
-rw-r--r-- | c/src/lib/libbsp/lm32/shared/start/start.S | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/c/src/lib/libbsp/lm32/shared/start/start.S b/c/src/lib/libbsp/lm32/shared/start/start.S deleted file mode 100644 index 71cbb54119..0000000000 --- a/c/src/lib/libbsp/lm32/shared/start/start.S +++ /dev/null @@ -1,160 +0,0 @@ -/* LM32 startup code - * - * This is the entry point on reset and when loading the - * executive from a bootloader. - * - * 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. - * - * Jukka Pietarinen <jukka.pietarinen@mrf.fi>, 2008, - * Micro-Research Finland Oy - */ - -#include "bspopts.h" - - .section .boot,"a",@progbits - .align 4 - - .globl start - .type start,@function - .globl _start - .type _start,@function - .globl __start - .type __start,@function - .globl LatticeDDInit - .type LatticeDDInit,@function - .globl crt0 - .type crt0,@function - -LatticeDDInit: -__start: -_start: -start: - /* Clear r0 */ - xor r0,r0,r0 - /* Disable interrupts */ - wcsr IE, r0 - /* Mask all interrupts */ - wcsr IM,r0 - /* Set exception base address */ - mvhi r1, hi(start) - ori r1, r1, lo(start) - wcsr EBA, r1 - bi crt0 - nop -/* - * Unused handlers call debug handlers - */ -breakpoint_handler: - rcsr r7, DEBA - addi r7, r7, 32 - b r7 - nop - nop - nop - nop - nop -instruction_bus_error_handler: - rcsr r7, DEBA - addi r7, r7, 64 - b r7 - nop - nop - nop - nop - nop -watchpoint_handler: - rcsr r7, DEBA - addi r7, r7, 96 - b r7 - nop - nop - nop - nop - nop -data_bus_error_handler: - rcsr r7, DEBA - addi r7, r7, 128 - b r7 - nop - nop - nop - nop - nop -divide_by_zero_handler: - rcsr r7, DEBA - addi r7, r7, 160 - b r7 - nop - nop - nop - nop - nop -interrupt_handler: - .extern _ISR_Handler - mvhi r0, hi(_ISR_Handler) - ori r0, r0, lo(_ISR_Handler) - b r0 - nop - nop - nop - nop - nop -system_call_handler: - rcsr r7, DEBA - addi r7, r7, 224 - b r7 - nop - nop - nop - nop - nop - -crt0: - /* Flush data cache */ - addi r1, r0, 1 - wcsr DCC, r1 - nop - nop - nop - nop - /* Flush Instruction Cache */ - wcsr ICC, r1 - nop - nop - nop - nop - /* Initialize stack pointer */ - mvhi sp, hi(_fstack-4) - ori sp, sp, lo(_fstack-4) - /* Initialize global pointer */ - mvhi gp, hi(_edata) - ori gp, gp, lo(_edata) - /* Clear bss */ - mvhi r1, hi(_clear_start) - ori r1, r1, lo(_clear_start) - mvhi r3, hi(_clear_end) - ori r3, r3, lo(_clear_end) -.clear_bss: - be r1, r3, .end_clear_bss - sw (r1+0), r0 - addi r1, r1, 4 - bi .clear_bss -.end_clear_bss: - mvi r1, 0 - be r4, r0, .no_rescue - mvhi r1, hi(.rescue_str) - ori r1, r1, lo(.rescue_str) -.no_rescue: - mvhi r7, hi(boot_card) - ori r7, r7, lo(boot_card) - call r7 - # boot_card returns when RTEMS is shutdown -.dead_end: - bi .dead_end - -.section .rodata -.rescue_str: - .ascii "rescue" - |