summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/rtl22xx
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 10:19:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 13:08:36 +0200
commitfbcd7c8fa65eb695e96a62ea1c1ac7a024fa9dfc (patch)
treea17e285cf22cd49cd42e8b3ad562febc3987d566 /c/src/lib/libbsp/arm/rtl22xx
parentbsps: Move console drivers to bsps (diff)
downloadrtems-fbcd7c8fa65eb695e96a62ea1c1ac7a024fa9dfc.tar.bz2
bsps: Move start files to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/arm/rtl22xx')
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/rtl22xx/start/start.S157
2 files changed, 1 insertions, 158 deletions
diff --git a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
index e64bbeee9f..d4ac6664e9 100644
--- a/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/rtl22xx/Makefile.am
@@ -9,7 +9,7 @@ dist_project_lib_DATA = startup/bsp_specs
noinst_PROGRAMS =
-start.$(OBJEXT): start/start.S
+start.$(OBJEXT): ../../../../../../bsps/arm/rtl22xx/start/start.S
$(CPPASCOMPILE) -o $@ -c $<
project_lib_DATA = start.$(OBJEXT)
diff --git a/c/src/lib/libbsp/arm/rtl22xx/start/start.S b/c/src/lib/libbsp/arm/rtl22xx/start/start.S
deleted file mode 100644
index c038198aff..0000000000
--- a/c/src/lib/libbsp/arm/rtl22xx/start/start.S
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Philips LPC22XX/LPC21xx Startup code
- *
- * Copyright (c) 2007 Ray Xu<rayx.cn@gmail.com>
- * Change from CSB337's code by Jay Monkman <jtm@lopingdog.com>
- * 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 <bsp/linker-symbols.h>
-
-/* Some standard definitions...*/
-.equ PSR_MODE_USR, 0x10
-.equ PSR_MODE_FIQ, 0x11
-.equ PSR_MODE_IRQ, 0x12
-.equ PSR_MODE_SVC, 0x13
-.equ PSR_MODE_ABT, 0x17
-.equ PSR_MODE_UNDEF, 0x1B
-.equ PSR_MODE_SYS, 0x1F
-
-.equ PSR_I, 0x80
-.equ PSR_F, 0x40
-.equ PSR_T, 0x20
-
-.text
-.code 32
-.globl _start
-_start:
- /*
- * Since I don't plan to return to the bootloader,
- * I don't have to save the registers.
- *
- * I'll just set the CPSR for SVC mode, interrupts
- * off, and ARM instructions.
- */
-
- /* --- Initialize stack pointer registers */
- /* Enter IRQ mode and set up the IRQ stack pointer */
- mov r0, #(PSR_MODE_IRQ | PSR_I | PSR_F) /* No interrupts */
- bic r0, r0, #PSR_T
- msr cpsr, r0
- ldr r1, =bsp_stack_irq_size
- ldr sp, =bsp_stack_irq_begin
- add sp, sp, r1
-
- /* Enter FIQ mode and set up the FIQ stack pointer */
- mov r0, #(PSR_MODE_FIQ | PSR_I | PSR_F) /* No interrupts */
- bic r0, r0, #PSR_T
- msr cpsr, r0
- ldr r1, =bsp_stack_fiq_size
- ldr sp, =bsp_stack_fiq_begin
- add sp, sp, r1
-
- /* Enter ABT mode and set up the ABT stack pointer */
- mov r0, #(PSR_MODE_ABT | PSR_I | PSR_F) /* No interrupts */
- bic r0, r0, #PSR_T
- msr cpsr, r0
- bic r0, r0, #PSR_T
- ldr r1, =bsp_stack_abt_size
- ldr sp, =bsp_stack_abt_begin
- add sp, sp, r1
-
- /* Set up the SVC stack pointer last and stay in SVC mode */
- mov r0, #(PSR_MODE_SVC | PSR_I | PSR_F) /* No interrupts */
- bic r0, r0, #PSR_T
- msr cpsr, r0
- ldr r1, =bsp_stack_svc_size
- ldr sp, =bsp_stack_svc_begin
- add sp, sp, r1
- sub sp, sp, #0x64
-
- /*
- * Initialize the exception vectors. This includes the
- * exceptions vectors (0x00000000-0x0000001c), and the
- * pointers to the exception handlers (0x00000020-0x0000003c).
- */
- mov r0, #0
- adr r1, vector_block
- ldmia r1!, {r2-r9}
- stmia r0!, {r2-r9}
-
- ldmia r1!, {r2-r9}
- stmia r0!, {r2-r9}
-
-
- /* zero the bss */
- ldr r1, =bsp_section_bss_end
- ldr r0, =bsp_section_bss_begin
-
-_bss_init:
- mov r2, #0
- cmp r0, r1
- strlot r2, [r0], #4
- blo _bss_init /* loop while r0 < r1 */
-
-
- /* Now we are prepared to start the BSP's C code */
- mov r0, #0
-#ifdef __thumb__
- ldr r3, =boot_card
- bx r3
-#else
- bl boot_card
-
-
- /*
- * Theoretically, we could return to what started us up,
- * but we'd have to have saved the registers and stacks.
- * Instead, we'll just reset.
- */
- bl bsp_reset
-#endif
- .code 32
-
- /* We shouldn't get here. If we do, hang */
-_hang: b _hang
-
-
-/*******************************************************
- standard exception vectors table
- *** Must be located at address 0
-********************************************************/
-
-vector_block:
- ldr pc, handler_addr_reset
- ldr pc, handler_addr_undef
- ldr pc, handler_addr_swi
- ldr pc, handler_addr_prefetch
- ldr pc, handler_addr_abort
- nop
- ldr pc, handler_addr_irq
- ldr pc, handler_addr_fiq
-
-handler_addr_reset:
- .word _start
-
-handler_addr_undef:
- .word _ARMV4_Exception_undef_default
-
-handler_addr_swi:
- .word _ARMV4_Exception_swi_default
-
-handler_addr_prefetch:
- .word _ARMV4_Exception_pref_abort_default
-
-handler_addr_abort:
- .word _ARMV4_Exception_data_abort_default
-
-handler_addr_reserved:
- .word _ARMV4_Exception_reserved_default
-
-handler_addr_irq:
- .word _ARMV4_Exception_interrupt
-
-handler_addr_fiq:
- .word _ARMV4_Exception_fiq_default