diff options
Diffstat (limited to 'c/src/lib/libbsp/bfin/shared/start/start.S')
-rw-r--r-- | c/src/lib/libbsp/bfin/shared/start/start.S | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/c/src/lib/libbsp/bfin/shared/start/start.S b/c/src/lib/libbsp/bfin/shared/start/start.S deleted file mode 100644 index 3440f5ccc9..0000000000 --- a/c/src/lib/libbsp/bfin/shared/start/start.S +++ /dev/null @@ -1,95 +0,0 @@ - -#include <rtems/bfin/bfin.h> - -#include <bsp.h> -#include <bspopts.h> - -#ifndef LO -#define LO(con32) ((con32) & 0xFFFF) -#endif -#ifndef HI -#define HI(con32) (((con32) >> 16) & 0xFFFF) -#endif - -#if (BFIN_ON_SKYEYE) - .section .init -#else - .section .l1code -#endif - .align 4 - - .global __start -__start: - - /* Start by setting up a stack */ - sp.h = 0xFFB0; - sp.l = 0x0F00; - - /* Maybe we should zero the memory in the .bss section. */ - - /* This changes to the supervisor mode */ - p0.l = START; - p0.h = START; - p1.l = LO(EVT15); - p1.h = HI(EVT15); - - [P1] = P0; - - P0.h = HI(IMASK); - P0.l = LO(IMASK); - R0 = [P0]; - /* R1.l = EVT_IVG15 & 0xFFFF; */ - R1.l = 0x8000; - - R0 = R0 | R1; - - [P0] = R0; - - RAISE 15; - - P0.l = WAIT; - P0.h = WAIT; - - RETI = P0; - RTI; - - /* endless loop to wait */ - WAIT: - jump WAIT; - - START: - [--SP] = RETI; - - p0.h = _bss_start; - p0.l = _bss_start; - p1.h = _end; - p1.l = _end; - r0 = p0; - r1 = p1; - r1 = r1 - r0; - p1 = r1; - r0 = 0; - - /* Set _bss_start until _end to zero */ - lsetup(loop1,loop2) LC0 = p1; - loop1: b[p0] = r0; - loop2: p0 +=1; - - /* call boot_card( 0, 0 ) */ - r0 = 0; - r1 = 0; - p0.l = _boot_card; - p0.h = _boot_card; - - call (p0); - - HLT - p0.l = _exit; - p0.h = _exit; - P3 = P4; - jump (p0) /* Should not return. */ - -.global _bfin_null_isr -_bfin_null_isr: - rti; - |