summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/arm_bare_bsp/startup
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/arm_bare_bsp/startup')
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c160
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c39
-rw-r--r--c/src/lib/libbsp/arm/arm_bare_bsp/startup/linkcmds316
3 files changed, 0 insertions, 515 deletions
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c
deleted file mode 100644
index 416552d80c..0000000000
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/bspstart.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*-------------------------------------------------------------------------+
-| This file contains the ARM BSP startup package. It includes application,
-| board, and monitor specific initialization and configuration. The generic CPU
-| dependent initialization has been performed before this routine is invoked.
-+--------------------------------------------------------------------------+
-|
-| Copyright (c) 2000 Canon Research Centre France SA.
-| Emmanuel Raguet, mailto:raguet@crf.canon.fr
-|
-| The license and distribution terms for this file may be
-| found in found in the file LICENSE in this distribution or at
-| http://www.rtems.com/license/LICENSE.
-|
-+--------------------------------------------------------------------------*/
-
-#include <bsp.h>
-#include <rtems/libcsupport.h>
-#include <rtems/libio.h>
-
-#include <uart.h>
-
-/*-------------------------------------------------------------------------+
-| Global Variables
-+--------------------------------------------------------------------------*/
-
-/*
- * must be initialized with the right address
- */
-volatile unsigned long *Regs = (unsigned long*)0xdeadbeef; /* Chip registers */
-
-extern uint32_t _end; /* End of BSS. Defined in 'linkcmds'. */
-/*
- * Size of heap if it is 0 it will be dynamically defined by memory size,
- * otherwise the value should be changed by binary patch
- */
-uint32_t _heap_size = 0;
-
-/* Size of stack used during initialization. Defined in 'start.s'. */
-extern uint32_t _stack_size;
-
-uint32_t rtemsFreeMemStart;
- /* Address of start of free memory - should be updated
- after creating new partitions or regions. */
-
-/* The original BSP configuration table from the application and our copy of it
- with some changes. */
-
-extern rtems_configuration_table Configuration;
- rtems_configuration_table BSP_Configuration;
-
-rtems_cpu_table Cpu_table; /* CPU configuration table. */
-char *rtems_progname; /* Program name - from main(). */
-
-/*-------------------------------------------------------------------------+
-| External Prototypes
-+--------------------------------------------------------------------------*/
-extern void rtems_irq_mngt_init(void);
-void bsp_libc_init( void *, uint32_t, int );
-void bsp_postdriver_hook(void);
-
-/*-------------------------------------------------------------------------+
-| Function: bsp_pretasking_hook
-| Description: BSP pretasking hook. Called just before drivers are
-| initialized. Used to setup libc and install any BSP
-| extensions. NOTE: Must not use libc (to do io) from here,
-| since drivers are not yet initialized.
-| Global Variables: None.
-| Arguments: None.
-| Returns: Nothing.
-+--------------------------------------------------------------------------*/
-void bsp_pretasking_hook(void)
-{
-
- if(_heap_size == 0)
- {
- _heap_size = 0x420000 - rtemsFreeMemStart;
- }
-
- bsp_libc_init((void *)rtemsFreeMemStart, _heap_size, 0);
-
- rtemsFreeMemStart += _heap_size; /* HEAP_SIZE in KBytes */
-
-#ifdef RTEMS_DEBUG
-
- rtems_debug_enable(RTEMS_DEBUG_ALL_MASK);
-
-#endif /* RTEMS_DEBUG */
-
-} /* bsp_pretasking_hook */
-
-/*-------------------------------------------------------------------------+
-| Function: bsp_start
-| Description: Called before main is invoked.
-| Global Variables: None.
-| Arguments: None.
-| Returns: Nothing.
-+--------------------------------------------------------------------------*/
-void bsp_start_default( void )
-{
- rtemsFreeMemStart = (uint32_t)(&_end); /* &_end+_stack_size;*/
- /* set the value of start of free memory. */
-
- /* If we don't have command line arguments set default program name. */
-
- Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */
- Cpu_table.predriver_hook = NULL; /* use system's */
- Cpu_table.postdriver_hook = bsp_postdriver_hook;
- Cpu_table.idle_task = NULL;
- /* do not override system IDLE task */
- Cpu_table.do_zero_of_workspace = TRUE;
- Cpu_table.interrupt_stack_size = 4096;
- Cpu_table.extra_mpci_receive_server_stack = 0;
-
- /* Place RTEMS workspace at beginning of free memory. */
- BSP_Configuration.work_space_start = (void *)rtemsFreeMemStart;
-
- rtemsFreeMemStart += BSP_Configuration.work_space_size;
-
- /*
- * Init rtems exceptions management
- */
- rtems_exception_init_mngt();
-
- /*
- * Init rtems interrupt management
- */
- rtems_irq_mngt_init();
-
- /*
- * The following information is very useful when debugging.
- */
-
-#if 0
- printk( "work_space_size = 0x%x\n", BSP_Configuration.work_space_size );
- printk( "maximum_extensions = 0x%x\n", BSP_Configuration.maximum_extensions );
- printk( "microseconds_per_tick = 0x%x\n",
- BSP_Configuration.microseconds_per_tick );
- printk( "ticks_per_timeslice = 0x%x\n",
- BSP_Configuration.ticks_per_timeslice );
- printk( "maximum_devices = 0x%x\n", BSP_Configuration.maximum_devices );
- printk( "number_of_device_drivers = 0x%x\n",
- BSP_Configuration.number_of_device_drivers );
- printk( "Device_driver_table = 0x%x\n",
- BSP_Configuration.Device_driver_table );
-
- printk( "_heap_size = 0x%x\n", _heap_size );
- /* printk( "_stack_size = 0x%x\n", _stack_size );*/
- printk( "rtemsFreeMemStart = 0x%x\n", rtemsFreeMemStart );
- printk( "work_space_start = 0x%x\n", BSP_Configuration.work_space_start );
- printk( "work_space_size = 0x%x\n", BSP_Configuration.work_space_size );
-#endif
-
-} /* bsp_start */
-
-/*
- * By making this a weak alias for bsp_start_default, a brave soul
- * can override the actual bsp_start routine used.
- */
-
-void bsp_start (void) __attribute__ ((weak, alias("bsp_start_default")));
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c
deleted file mode 100644
index 03e240cc33..0000000000
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/exit.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-------------------------------------------------------------------------+
-| exit.c - ARM BSP
-+--------------------------------------------------------------------------+
-| Routines to shutdown and reboot the BSP.
-+--------------------------------------------------------------------------+
-|
-| Copyright (c) 2000 Canon Research Centre France SA.
-| Emmanuel Raguet, mailto:raguet@crf.canon.fr
-|
-| The license and distribution terms for this file may be
-| found in found in the file LICENSE in this distribution or at
-| http://www.rtems.com/license/LICENSE.
-|
-+--------------------------------------------------------------------------*/
-
-#include <stdio.h>
-#include <bsp.h>
-#include <rtems/bspIo.h>
-#include <rtems/libio.h>
-
-void rtemsReboot (void)
-{
- asm volatile ("b _start");
-}
-
-void bsp_cleanup(void)
-{
- unsigned char ch;
- static char line[]="\nEXECUTIVE SHUTDOWN! Any key to reboot...";
- /*
- * AT this point, the console driver is disconnected => we must
- * use polled output/input. This is exactly what printk
- * does.
- */
- printk("\n");
- printk(line);
- ch = BSP_poll_char();
- rtemsReboot();
-}
diff --git a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/linkcmds b/c/src/lib/libbsp/arm/arm_bare_bsp/startup/linkcmds
deleted file mode 100644
index e10d701531..0000000000
--- a/c/src/lib/libbsp/arm/arm_bare_bsp/startup/linkcmds
+++ /dev/null
@@ -1,316 +0,0 @@
-OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
- "elf32-littlearm")
-OUTPUT_ARCH(arm)
-ENTRY(_start)
-MEMORY {
-/* Settings as submitted which won't match an arbitrary user board
- and are not enough to link every test case so changed to link all tests.
- FLASH (rx) : ORIGIN = 0x200000, LENGTH = 512K
- RAM (!rx) : ORIGIN = 0x400000, LENGTH = 128K
-*/
- FLASH (rx) : ORIGIN = 0x200000, LENGTH = 1024K
- RAM (!rx) : ORIGIN = 0x600000, LENGTH = 128K
-}
-
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
-/* . = 0 + SIZEOF_HEADERS;*/
- .hash : { *(.hash) } > FLASH
- .dynsym : { *(.dynsym) } > FLASH
- .dynstr : { *(.dynstr) } > FLASH
- .gnu.version : { *(.gnu.version) } > FLASH
- .gnu.version_d : { *(.gnu.version_d) } > FLASH
- .gnu.version_r : { *(.gnu.version_r) } > FLASH
- .rel.init : { *(.rel.init) } > FLASH
- .rela.init : { *(.rela.init) } > FLASH
- .rel.text :
- {
- *(.rel.text)
- *(.rel.text.*)
- *(.rel.gnu.linkonce.t*)
- } > FLASH
- .rela.text :
- {
- *(.rela.text)
- *(.rela.text.*)
- *(.rela.gnu.linkonce.t*)
- } > FLASH
- .rel.fini : { *(.rel.fini) } > FLASH
- .rela.fini : { *(.rela.fini) } > FLASH
- .rel.rodata :
- {
- *(.rel.rodata)
- *(.rel.rodata.*)
- *(.rel.gnu.linkonce.r*)
- } > FLASH
- .rela.rodata :
- {
- *(.rela.rodata)
- *(.rela.rodata.*)
- *(.rela.gnu.linkonce.r*)
- } > FLASH
- .rel.data :
- {
- *(.rel.data)
- *(.rel.data.*)
- *(.rel.gnu.linkonce.d*)
- } > FLASH
- .rela.data :
- {
- *(.rela.data)
- *(.rela.data.*)
- *(.rela.gnu.linkonce.d*)
- } > FLASH
- .rel.ctors : { *(.rel.ctors) } > FLASH
- .rela.ctors : { *(.rela.ctors) } > FLASH
- .rel.dtors : { *(.rel.dtors) } > FLASH
- .rela.dtors : { *(.rela.dtors) } > FLASH
- .rel.got : { *(.rel.got) } > FLASH
- .rela.got : { *(.rela.got) } > FLASH
-}
-
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
-/* . = 0 + SIZEOF_HEADERS;*/
- .hash : { *(.hash) } > FLASH
- .dynsym : { *(.dynsym) } > FLASH
- .dynstr : { *(.dynstr) } > FLASH
- .gnu.version : { *(.gnu.version) } > FLASH
- .gnu.version_d : { *(.gnu.version_d) } > FLASH
- .gnu.version_r : { *(.gnu.version_r) } > FLASH
- .rel.init : { *(.rel.init) } > FLASH
- .rela.init : { *(.rela.init) } > FLASH
- .rel.text :
- {
- *(.rel.text)
- *(.rel.text.*)
- *(.rel.gnu.linkonce.t*)
- } > FLASH
- .rela.text :
- {
- *(.rela.text)
- *(.rela.text.*)
- *(.rela.gnu.linkonce.t*)
- } > FLASH
- .rel.fini : { *(.rel.fini) } > FLASH
- .rela.fini : { *(.rela.fini) } > FLASH
- .rel.rodata :
- {
- *(.rel.rodata)
- *(.rel.rodata.*)
- *(.rel.gnu.linkonce.r*)
- } > FLASH
- .rela.rodata :
- {
- *(.rela.rodata)
- *(.rela.rodata.*)
- *(.rela.gnu.linkonce.r*)
- } > FLASH
- .rel.data :
- {
- *(.rel.data)
- *(.rel.data.*)
- *(.rel.gnu.linkonce.d*)
- } > FLASH
- .rela.data :
- {
- *(.rela.data)
- *(.rela.data.*)
- *(.rela.gnu.linkonce.d*)
- } > FLASH
- .rel.ctors : { *(.rel.ctors) } > FLASH
- .rela.ctors : { *(.rela.ctors) } > FLASH
- .rel.dtors : { *(.rel.dtors) } > FLASH
- .rela.dtors : { *(.rela.dtors) } > FLASH
- .rel.got : { *(.rel.got) } > FLASH
- .rela.got : { *(.rela.got) } > FLASH
- .rel.sdata :
- {
- *(.rel.sdata)
- *(.rel.sdata.*)
- *(.rel.gnu.linkonce.s*)
- } > FLASH
- .rela.sdata :
- {
- *(.rela.sdata)
- *(.rela.sdata.*)
- *(.rela.gnu.linkonce.s*)
- } > FLASH
- .rel.sbss : { *(.rel.sbss) } > FLASH
- .rela.sbss : { *(.rela.sbss) } > FLASH
- .rel.bss : { *(.rel.bss) } > FLASH
- .rela.bss : { *(.rela.bss) } > FLASH
- .rel.plt : { *(.rel.plt) } > FLASH
- .rela.plt : { *(.rela.plt) } > FLASH
- .init :
- {
- KEEP (*(.init))
- } > FLASH /*=0*/
- .plt : { *(.plt) } > FLASH
- .text :
- {
- *(.text)
- *(.text.*)
- *(.stub)
-
- /*
- * Special FreeBSD sysctl sections.
- */
- . = ALIGN (16);
- __start_set_sysctl_set = .;
- *(set_sysctl_*);
- __stop_set_sysctl_set = ABSOLUTE(.);
- *(set_domain_*);
- *(set_pseudo_*);
-
- /* .gnu.warning sections are handled specially by elf32.em. */
- *(.gnu.warning)
- *(.gnu.linkonce.t*)
- *(.glue_7t) *(.glue_7)
- } > FLASH /*=0*/
- _etext = .;
- PROVIDE (etext = .);
- .fini :
- {
- KEEP (*(.fini))
- } > FLASH /*=0*/
- .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r*) } > FLASH
- .rodata1 : { *(.rodata1) } > FLASH
- _erodata = ABSOLUTE(.);
- PROVIDE (erodata = ABSOLUTE(.));
- /* 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(256);
- _begdata = ALIGN(256);
- .arm_end_text :
- {
- . = ALIGN(256);
- _initdata = ALIGN(256);
- } > FLASH
- .data : AT (_begdata)
- {
- *(.data*)
- *(.gnu.linkonce.d*)
- *(.jcr)
- SORT(CONSTRUCTORS)
- } > RAM
- .data1 : { *(.data1) } > RAM
- .eh_frame : { *(.eh_frame) } > RAM
- .gcc_except_table : { *(.gcc_except_table) } > RAM
- .ctors :
- {
- /* gcc uses crtbegin.o to find the start of
- the constructors, so we make sure it is
- first. Because this is a wildcard, it
- doesn't matter if the user does not
- actually link against crtbegin.o; the
- linker won't look for a file to match a
- wildcard. The wildcard also means that it
- doesn't matter which directory crtbegin.o
- is in. */
- KEEP (*crtbegin.o(.ctors))
- /* We don't want to include the .ctor section from
- from the crtend.o file until after the sorted ctors.
- The .ctor section from the crtend file contains the
- end of ctors marker and it must be last */
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .ctors))
- KEEP (*(SORT(.ctors.*)))
- KEEP (*(.ctors))
- } > RAM
- .dtors :
- {
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE (*crtend.o ) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- } > RAM
- .got : { *(.got.plt) *(.got) } > RAM
- .dynamic : { *(.dynamic) } > RAM
- /* 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)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- } > RAM
- .arm_data :
- {
- _edata = .;
- __bss_start = .;
- __bss_start__ = .;
- } > RAM
- .sbss :
- {
- *(.dynsbss)
- *(.sbss)
- *(.sbss.*)
- *(.scommon)
- } > RAM
- .bss :
- {
- *(.dynbss)
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- /* Align here to ensure that the .bss section occupies space up to
- _end. Align after .bss to ensure correct alignment even if the
- .bss section disappears because there are no input sections. */
- . = ALIGN(32 / 8);
- } > RAM
- . = ALIGN(32 / 8);
- .arm_end :
- {
- _end = .;
- _bss_end__ = . ;
- __bss_end__ = . ;
- __end__ = . ;
- } > RAM
- /* 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 0x80000 : { _stack = .; *(.stack) }*/
- /* These must appear regardless of . */
-}
-
-
-
-