summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/or1k
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/or1k
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/or1k')
-rw-r--r--c/src/lib/libbsp/or1k/generic_or1k/Makefile.am2
-rw-r--r--c/src/lib/libbsp/or1k/generic_or1k/start/start.S181
2 files changed, 1 insertions, 182 deletions
diff --git a/c/src/lib/libbsp/or1k/generic_or1k/Makefile.am b/c/src/lib/libbsp/or1k/generic_or1k/Makefile.am
index dd8b7a5c75..fecd2e8c19 100644
--- a/c/src/lib/libbsp/or1k/generic_or1k/Makefile.am
+++ b/c/src/lib/libbsp/or1k/generic_or1k/Makefile.am
@@ -19,7 +19,7 @@ dist_project_lib_DATA = startup/bsp_specs
# Data #
###############################################################################
-start.$(OBJEXT): start/start.S
+start.$(OBJEXT): ../../../../../../bsps/or1k/generic_or1k/start/start.S
$(CPPASCOMPILE) -o $@ -c $<
project_lib_DATA = start.$(OBJEXT)
diff --git a/c/src/lib/libbsp/or1k/generic_or1k/start/start.S b/c/src/lib/libbsp/or1k/generic_or1k/start/start.S
deleted file mode 100644
index 26991c8960..0000000000
--- a/c/src/lib/libbsp/or1k/generic_or1k/start/start.S
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (c) 2014-2015 Hesham ALMatary <heshamelmatary@gmail.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>
-
-/* The following macro defines the first instructions every exception
- * should execute before jumping to its handler function from the
- * exception vector table. r3 is saved into the stack and loaded with
- * vector number before jumping to _ISR_Handler. r3 value is restored
- * back from _ISR_Handler after handling the exception and before
- * returning from interrupt.
- */
-#define EXCEPTION_SETUP(vector) \
- l.nop ;\
- l.addi r1, r1, -200 ;\
- l.sw 0(r1), r3; \
- l.addi r3, r0, vector; \
- l.j _ISR_Handler; \
- l.nop
-
- .extern boot_card
- .extern bsp_section_bss_begin
- .extern bsp_section_bss_end
-
- .extern bsp_start_vector_table_end
- .extern bsp_start_vector_table_size
- .extern bsp_vector_table_size
- .extern bsp_section_stack_begin
-
- .extern exception_frame_save
- .extern _OR1K_Exception_Process
- .extern _OR1K_Exception_default
- .extern rtems_clock_tick
- .extern _exit
- .extern printk
- .extern bsp_interrupt_handler_default
-
- /* Global symbols */
- .global _start
- .global bsp_start_vector_table_begin
-
-/* Popualte HW vector table */
-
-.section .vector, "ax"
-
-.org 0x100
-_reset:
- l.j _start
- l.nop
-
-.org 0x200
-_buserr:
- EXCEPTION_SETUP(2)
-
-.org 0x300
-_dPageFault:
- EXCEPTION_SETUP(3)
-
-.org 0x400
-_iPageFaule:
- EXCEPTION_SETUP(4)
-
-.org 0x500
-_timer:
- EXCEPTION_SETUP(5)
-
-.org 0x600
-_unalign:
- EXCEPTION_SETUP(6)
-
-.org 0x700
-_undefIns:
- EXCEPTION_SETUP(7)
-
-.org 0x800
-_exInt:
- EXCEPTION_SETUP(8)
-
-.org 0x900
-_dTLB:
- EXCEPTION_SETUP(9)
-
-.org 0xA00
-_iTLB:
- EXCEPTION_SETUP(10)
-
-.org 0xB00
-_range:
- EXCEPTION_SETUP(11)
-
-.org 0xC00
-_syscall:
- EXCEPTION_SETUP(12)
-
-.org 0xD00
-_fp:
- EXCEPTION_SETUP(13)
-
-.org 0xE00
-_trap:
- EXCEPTION_SETUP(14)
-
-.org 0xF00
-_undef1:
- EXCEPTION_SETUP(15)
-
-.org 0x1500
-_undef2:
- EXCEPTION_SETUP(16)
-
-.org 0x1900
-_undef3:
- EXCEPTION_SETUP(17)
-
-.org 0x1F00
-
-bsp_start_vector_table_begin:
-
- .word 0
- .word _start /* Reset */
- .word _OR1K_Exception_default /* Bus Error */
- .word _OR1K_Exception_default /* Data Page Fault */
- .word _OR1K_Exception_default /* Instruction Page Fault */
- .word _OR1K_Exception_default /* Tick timer */
- .word _OR1K_Exception_default /* Alignment */
- .word _OR1K_Exception_default /* Undefiend Instruction */
- .word _OR1K_Exception_default /* External Interrupt */
- .word _OR1K_Exception_default /* Data TLB Miss */
- .word _OR1K_Exception_default /* Instruction TLB Miss */
- .word _OR1K_Exception_default /* Range Exception */
- .word _OR1K_Exception_default /* System Call */
- .word _OR1K_Exception_default /* Floating Point Exception */
- .word _OR1K_Exception_default /* Trap */
- .word _OR1K_Exception_default /* Reserver for future use */
- .word _OR1K_Exception_default /* Reserved for implementation-specific */
- .word _OR1K_Exception_default /* Reserved for custom exceptions. */
-
-bsp_start_vector_table_end:
-
- .section ".bsp_start_text", "ax"
- .type _start,@function
-
-_start:
- /* Set SR register to Supervision mode */
- l.ori r1, r0, 0x1
- l.mtspr r0, r1, 17
-
- /* load stack and frame pointers */
- l.movhi r1, hi(bsp_section_stack_begin)
- l.ori r1, r1, lo(bsp_section_stack_begin)
- l.add r2, r0, r1
-
-/* Clearing .bss */
- l.movhi r13, hi(bsp_section_bss_begin)
- l.ori r13, r13, lo(bsp_section_bss_begin)
- l.movhi r15, hi(bsp_section_bss_end)
- l.ori r15, r15, lo(bsp_section_bss_end)
-
-_loop_clear_bss:
- l.sfgeu r13, r15
- l.bf _end_clear_bss
- l.addi r13, r13, 4
- l.sw 0(r13), r0
- l.j _loop_clear_bss
- l.nop
-_end_clear_bss:
-
- l.j boot_card
- l.nop
-
-/* Temporary code for unhandled exceptions */
-.section .text
-.align
-.global _unhandled_exception
-
-unhandled_exception:
- l.nop