summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sh/shsim/startup
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 10:35:35 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-20 13:52:14 +0200
commit99648958668d3a33ee57974479b36201fe303f34 (patch)
tree6f27ea790e2823c6156e71219a4f54680263fac6 /c/src/lib/libbsp/sh/shsim/startup
parentbsps: Move start files to bsps (diff)
downloadrtems-99648958668d3a33ee57974479b36201fe303f34.tar.bz2
bsps: Move startup files to bsps
Adjust build support files to new directory layout. This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'c/src/lib/libbsp/sh/shsim/startup')
-rw-r--r--c/src/lib/libbsp/sh/shsim/startup/bsp_specs9
-rw-r--r--c/src/lib/libbsp/sh/shsim/startup/cpu_asm.c83
-rw-r--r--c/src/lib/libbsp/sh/shsim/startup/ispshgdb.c146
-rw-r--r--c/src/lib/libbsp/sh/shsim/startup/linkcmds255
-rw-r--r--c/src/lib/libbsp/sh/shsim/startup/sysexit.c22
5 files changed, 0 insertions, 515 deletions
diff --git a/c/src/lib/libbsp/sh/shsim/startup/bsp_specs b/c/src/lib/libbsp/sh/shsim/startup/bsp_specs
deleted file mode 100644
index 87638cc027..0000000000
--- a/c/src/lib/libbsp/sh/shsim/startup/bsp_specs
+++ /dev/null
@@ -1,9 +0,0 @@
-%rename endfile old_endfile
-%rename startfile old_startfile
-
-*startfile:
-%{!qrtems: %(old_startfile)} \
-%{!nostdlib: %{qrtems: crti.o%s crtbegin.o%s}}
-
-*endfile:
-%{!qrtems: %(old_endfile)} %{qrtems: crtend.o%s crtn.o%s}
diff --git a/c/src/lib/libbsp/sh/shsim/startup/cpu_asm.c b/c/src/lib/libbsp/sh/shsim/startup/cpu_asm.c
deleted file mode 100644
index 2ca8926a24..0000000000
--- a/c/src/lib/libbsp/sh/shsim/startup/cpu_asm.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Support for SuperH Simulator in GDB
- */
-
-/*
- * COPYRIGHT (c) 1989-2008.
- * On-Line Applications Research Corporation (OAR).
- *
- * 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 <rtems/system.h>
-#include <rtems/score/cpu.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/percpu.h>
-#include <rtems/score/threaddispatch.h>
-#include <rtems/score/sh.h>
-
-#if (CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
- unsigned long *_old_stack_ptr;
-#endif
-
-register unsigned long *stack_ptr __asm__ ("r15");
-
-void __ISR_Handler(uint32_t vector);
-
-/*
- * This routine provides the RTEMS interrupt management.
- */
-void __ISR_Handler( uint32_t vector)
-{
- ISR_Level level;
-
- _ISR_Local_disable( level );
-
- _Thread_Dispatch_disable();
-
-#if (CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
- if ( _ISR_Nest_level == 0 )
- {
- /* Install irq stack */
- _old_stack_ptr = stack_ptr;
- stack_ptr = _CPU_Interrupt_stack_high;
- }
-
-#endif
-
- _ISR_Nest_level++;
-
- _ISR_Local_enable( level );
-
- /* call isp */
- if ( _ISR_Vector_table[ vector])
- (*_ISR_Vector_table[ vector ])( vector );
-
- _ISR_Local_disable( level );
-
- _Thread_Dispatch_unnest( _Per_CPU_Get() );
-
- _ISR_Nest_level--;
-
-#if (CPU_HAS_SOFTWARE_INTERRUPT_STACK == TRUE)
-
- if ( _ISR_Nest_level == 0 )
- /* restore old stack pointer */
- stack_ptr = _old_stack_ptr;
-#endif
-
- _ISR_Local_enable( level );
-
- if ( _ISR_Nest_level )
- return;
-
- if ( !_Thread_Dispatch_is_enabled() ) {
- return;
- }
-
- if ( _Thread_Dispatch_necessary ) {
- _Thread_Dispatch();
- }
-}
diff --git a/c/src/lib/libbsp/sh/shsim/startup/ispshgdb.c b/c/src/lib/libbsp/sh/shsim/startup/ispshgdb.c
deleted file mode 100644
index 09843172d9..0000000000
--- a/c/src/lib/libbsp/sh/shsim/startup/ispshgdb.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * This file contains the isp frames for the user interrupts.
- * From these procedures __ISR_Handler is called with the vector number
- * as argument.
- *
- * __ISR_Handler is kept in a separate file (cpu_asm.c), because a bug in
- * some releases of gcc doesn't properly handle #pragma interrupt, if a
- * file contains both isrs and normal functions.
- *
- * Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de) and
- * Bernd Becker (becker@faw.uni-ulm.de)
- *
- * COPYRIGHT (c) 1997-1998, FAW Ulm, Germany
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
- *
- *
- * COPYRIGHT (c) 1998.
- * On-Line Applications Research Corporation (OAR).
- *
- * 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.
- *
- * Modified to reflect dummy isp entries for GDB SH simulator by Joel.
- */
-
-#include <rtems/system.h>
-
-/*
- * This is a exception vector table
- *
- * It has the same structure as the actual vector table (vectab)
- */
-
-void _dummy_isp(uint32_t);
-
-proc_ptr _Hardware_isr_Table[256]={
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp, /* PWRon Reset, Maual Reset,...*/
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-/* trapa 0 -31 */
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp,
-_dummy_isp, _dummy_isp, _dummy_isp, _dummy_isp, /* irq 152-155*/
-_dummy_isp
-};
-
-#define Str(a)#a
-
-/*
- * Some versions of gcc and all version of egcs at least until egcs-1.1b
- * are not able to handle #pragma interrupt correctly if more than 1 isr is
- * contained in a file and when optimizing.
- * We try to work around this problem by using the macro below.
- */
-#define isp( name, number, func)\
-__asm__ (".global _"Str(name)"\n\t"\
- "_"Str(name)": \n\t"\
- " mov.l r0,@-r15 \n\t"\
- " mov.l r1,@-r15 \n\t"\
- " mov.l r2,@-r15 \n\t"\
- " mov.l r3,@-r15 \n\t"\
- " mov.l r4,@-r15 \n\t"\
- " mov.l r5,@-r15 \n\t"\
- " mov.l r6,@-r15 \n\t"\
- " mov.l r7,@-r15 \n\t"\
- " mov.l r14,@-r15 \n\t"\
- " sts.l pr,@-r15 \n\t"\
- " sts.l mach,@-r15 \n\t"\
- " sts.l macl,@-r15 \n\t"\
- " mov r15,r14 \n\t"\
- " mov.l "Str(name)"_v, r2 \n\t"\
- " mov.l "Str(name)"_k, r1\n\t"\
- " jsr @r1 \n\t"\
- " mov r2,r4 \n\t"\
- " mov r14,r15 \n\t"\
- " lds.l @r15+,macl \n\t"\
- " lds.l @r15+,mach \n\t"\
- " lds.l @r15+,pr \n\t"\
- " mov.l @r15+,r14 \n\t"\
- " mov.l @r15+,r7 \n\t"\
- " mov.l @r15+,r6 \n\t"\
- " mov.l @r15+,r5 \n\t"\
- " mov.l @r15+,r4 \n\t"\
- " mov.l @r15+,r3 \n\t"\
- " mov.l @r15+,r2 \n\t"\
- " mov.l @r15+,r1 \n\t"\
- " mov.l @r15+,r0 \n\t"\
- " rte \n\t"\
- " nop \n\t"\
- " .align 2 \n\t"\
- #name"_k: \n\t"\
- ".long "Str(func)"\n\t"\
- #name"_v: \n\t"\
- ".long "Str(number));
-
-/************************************************
- * Dummy interrupt service procedure for
- * interrupts being not allowed --> Trap 34
- ************************************************/
-__asm__ (" .section .text\n\
-.global __dummy_isp\n\
-__dummy_isp:\n\
- mov.l r14,@-r15\n\
- mov r15, r14\n\
- trapa #34\n\
- mov.l @r15+,r14\n\
- rte\n\
- nop");
-
diff --git a/c/src/lib/libbsp/sh/shsim/startup/linkcmds b/c/src/lib/libbsp/sh/shsim/startup/linkcmds
deleted file mode 100644
index 41c7245da0..0000000000
--- a/c/src/lib/libbsp/sh/shsim/startup/linkcmds
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Memory layout for an SH 7032 with main memory in area 0
- *
- * NOTES:
- * + All RAM/ROM areas are mapped onto area 0, because gdb's simulator
- * is not able to simulate memory areas but area 0. Area 5 (on-chip
- * peripherials) can not be mapped onto area 0 and will cause SIGILL
- * exceptions.
- * + Assumed to be compatible with other SH-cpu family members (eg. SH7045)
- *
- * Authors: Ralf Corsepius (corsepiu@faw.uni-ulm.de)
- *
- * COPYRIGHT (c) 2001, Ralf Corsepius, Ulm, Germany
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-OUTPUT_ARCH(sh)
-ENTRY(_start)
-STARTUP(start.o)
-
-_RamBase = DEFINED(_RamBase) ? _RamBase : 0x00000000;
-_RamSize = DEFINED(_RamSize) ? _RamSize : 16M;
-_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x0;
-
-MEMORY
-{
-/* Real memory layout submitted
- rom : o = 0x00000000, l = 128k
- ram : o = 0x00040000, l = 256k
-*/
-
-/* Memory layout which links all tests */
- rom : o = 0x01000000, l = 512k
- ram : o = 0x00040000, l = 512k
-
- onchip_peri : o = 0x05000000, l = 512
-}
-
-SECTIONS
-{
- /* boot vector table */
- .monvects (NOLOAD) :
- {
- _monvects = . ;
- } > rom
-
- /* monitor play area */
- .monram 0x00040000 (NOLOAD) :
- {
- _ramstart = .;
- } > ram
-
- /* monitor vector table */
- .vects 0x00042000 (NOLOAD) : {
- _vectab = . ;
- *(.vects);
- }
-
- /* Read-only sections, merged into text segment: */
-
- . = 0x00044000 ;
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .gnu.version : { *(.gnu.version) }
- .gnu.version_d : { *(.gnu.version_d) }
- .gnu.version_r : { *(.gnu.version_r) }
- .rela.dyn :
- {
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
- *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
- *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
- *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- } >ram
- .rel.text :
- { *(.rel.text) *(.rel.gnu.linkonce.t*) }
- .rel.data :
- { *(.rel.data) *(.rel.gnu.linkonce.d*) }
- .rel.rodata :
- { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
- .rel.got : { *(.rel.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rel.init : { *(.rel.init) }
- .rel.fini : { *(.rel.fini) }
- .rel.bss : { *(.rel.bss) }
- .rel.plt : { *(.rel.plt) }
- .plt : { *(.plt) }
- .text . :
- {
- _start = .;
- *(.text*)
- *(.stub)
-
- /*
- * Special FreeBSD sysctl sections.
- */
- . = ALIGN (16);
- ___start_set_sysctl_set = .;
- *(set_sysc*); /* set_sysctl_* but name is truncated by SH-coff */
- ___stop_set_sysctl_set = ABSOLUTE(.);
- *(set_doma*); /* set_domain_* but name is truncated by SH-coff */
- *(set_pseu*); /* set_pseudo_* but name is truncated by SH-coff */
-
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.gnu.linkonce.t*)
- } > ram
- .init :
- {
- KEEP (*(.init))
- } >ram
- .fini :
- {
- KEEP (*(.fini))
- } >ram
- _etext = .;
- PROVIDE (etext = .);
- .rodata . : { *(.rodata*) .rodata.* *(.gnu.linkonce.r*) } > ram
- .rodata1 . : { *(.rodata1) } > ram
- .tdata : {
- __TLS_Data_begin = .;
- *(.tdata .tdata.* .gnu.linkonce.td.*)
- __TLS_Data_end = .;
- } > ram
- .tbss : {
- __TLS_BSS_begin = .;
- *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon)
- __TLS_BSS_end = .;
- } > ram
- .init . : { KEEP(*(.init)) } > ram =0
- .fini . : { KEEP(*(.fini)) } > ram =0
- .ctors . : { KEEP(*(.ctors)) } > ram =0
- .dtors . : { KEEP(*(.dtors)) } > ram =0
- __TLS_Data_size = __TLS_Data_end - __TLS_Data_begin;
- __TLS_Data_begin = __TLS_Data_size != 0 ? __TLS_Data_begin : __TLS_BSS_begin;
- __TLS_Data_end = __TLS_Data_size != 0 ? __TLS_Data_end : __TLS_BSS_begin;
- __TLS_BSS_size = __TLS_BSS_end - __TLS_BSS_begin;
- __TLS_Size = __TLS_BSS_end - __TLS_Data_begin;
- __TLS_Alignment = MAX (ALIGNOF (.tdata), ALIGNOF (.tbss));
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. */
- . = ALIGN(128) + (. & (128 - 1));
- .data . :
- {
- *(.data*)
- *(.gcc_exc*)
- ___EH_FRAME_BEGIN__ = .;
- *(.eh_fram*)
- ___EH_FRAME_END__ = .;
- LONG(0);
- *(.gcc_except_table*)
- *(.gnu.linkonce.d*)
- CONSTRUCTORS
- } > ram
- .data1 . : { *(.data1) }
- .rtemsroset : {
- /* for pre rtems-libbsd FreeBSD code */
- __start_set_sysctl_set = .;
- *(set_sysctl_*);
- __stop_set_sysctl_set = .;
- *(set_domain_*);
- *(set_pseudo_*);
-
- KEEP (*(SORT(.rtemsroset.*)))
- } >ram
- .rtemsrwset : {
- KEEP (*(SORT(.rtemsrwset.*)))
- } >ram
-
- .got . : { *(.got.plt) *(.got) }
- .dynamic . : { *(.dynamic) }
- /* We want the small data sections together, so single-instruction offsets
- can access them all, and initialized data all before uninitialized, so
- we can shorten the on-disk segment size. */
- .sdata . : { *(.sdata) }
- _edata = .;
- PROVIDE (edata = .);
- __bss_start = .;
- .sbss . : { *(.sbss*) *(.scommon) }
- .bss . :
- {
- *(.dynbss)
- *(.bss .bss* .gnu.linkonce.b*)
- *(COMMON)
- } > ram
- _end = . ;
- PROVIDE (end = .);
-
- .stack : {
- . += 0x1000;
- *(.stack)
- _stack = .;
- } > ram
- _stack = .;
-
- _WorkAreaBase = . ;
-
- _CPU_Interrupt_stack_low = 0x00080000 ;
- _CPU_Interrupt_stack_high = _CPU_Interrupt_stack_low + 4096 ;
-
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to the beginning
- of the section so we begin them at 0. */
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
-
-/*
- .stack 0x00081ff0 : { _stack = .; *(.stack) } > onchip_ram
-*/
- /* These must appear regardless of . */
-}
diff --git a/c/src/lib/libbsp/sh/shsim/startup/sysexit.c b/c/src/lib/libbsp/sh/shsim/startup/sysexit.c
deleted file mode 100644
index dde20f35e8..0000000000
--- a/c/src/lib/libbsp/sh/shsim/startup/sysexit.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * This file contains the simulator specific exit trap.
- */
-
-/*
- * COPYRIGHT (c) 1989-2014.
- * On-Line Applications Research Corporation (OAR).
- *
- * 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.h>
-#include <bsp/syscall.h>
-
-int errno; /* assumed to exist by exit_k() */
-
-int _sys_exit (int n)
-{
- return __trap34 (SYS_exit, n, 0, 0);
-}