From cb585c31590c9bfa6675bfc7c5e04842edce0d4a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 29 Jan 1997 00:32:23 +0000 Subject: erc32 bsp supercedes sis --- c/src/lib/libbsp/sparc/erc32/startup/linkcmds | 132 ++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 c/src/lib/libbsp/sparc/erc32/startup/linkcmds (limited to 'c/src/lib/libbsp/sparc/erc32/startup/linkcmds') diff --git a/c/src/lib/libbsp/sparc/erc32/startup/linkcmds b/c/src/lib/libbsp/sparc/erc32/startup/linkcmds new file mode 100644 index 0000000000..8b68dd2c05 --- /dev/null +++ b/c/src/lib/libbsp/sparc/erc32/startup/linkcmds @@ -0,0 +1,132 @@ +/* linkcmds + * + * $Id$ + */ + +OUTPUT_ARCH(sparc) +__DYNAMIC = 0; + +/* + * The memory map looks like this: + * +--------------------+ <- low memory + * | .text | + * | etext | + * | ctor list | the ctor and dtor lists are for + * | dtor list | C++ support + * | _endtext | + * +--------------------+ + * | .data | initialized data goes here + * | _sdata | + * | _edata | + * +--------------------+ + * | .bss | + * | __bss_start | start of bss, cleared by crt0 + * | _end | start of heap, used by sbrk() + * +--------------------+ + * | heap space | + * | _ENDHEAP | + * | stack space | + * | __stack | top of stack + * +--------------------+ <- high memory + */ + + +/* + * User modifiable values: + * + * _CLOCK_SPEED in Mhz (used to program the counter/timers) + * + * _PROM_SIZE size of PROM (permissible values are 4K, 8K, 16K + * 32K, 64K, 128K, 256K, and 512K) + * _RAM_SIZE size of RAM (permissible values are 256K, 512K, + * 1MB, 2Mb, 4Mb, 8Mb, 16Mb, and 32Mb) + * + * MAKE SURE THESE MATCH THE MEMORY DESCRIPTION SECTION!!! + */ + +/* +_CLOCK_SPEED = 10; +*/ + +_PROM_SIZE = 512K; +_RAM_SIZE = 2M; + +_RAM_START = 0x02000000; +_RAM_END = _RAM_START + _RAM_SIZE; + +_PROM_START = 0x00000000; +_PROM_END = _PROM_START + _PROM_SIZE; + +/* + * Base address of the on-CPU peripherals + */ + +_ERC32_MEC = 0x01f80000; + +MEMORY +{ + rom : ORIGIN = 0x00000000, LENGTH = 512K + ram : ORIGIN = 0x02000000, LENGTH = 2M +} + +/* + * stick everything in ram (of course) + */ +SECTIONS +{ + .text : + { + CREATE_OBJECT_SYMBOLS + text_start = .; + _text_start = .; + *(.text) + etext = ALIGN(0x10); + _etext = .; + __CTOR_LIST__ = .; + LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) + *(.ctors) + LONG(0) + __CTOR_END__ = .; + __DTOR_LIST__ = .; + LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) + *(.dtors) + LONG(0) + __DTOR_END__ = .; + *(.lit) + *(.shdata) + _endtext = .; + } > ram + .data : + { + data_start = .; + _data_start = .; + _sdata = . ; + *(.data) + CONSTRUCTORS + edata = ALIGN(0x10); + _edata = .; + } > ram + .shbss : + { + *(.shbss) + } > ram + .bss : + { + __bss_start = ALIGN(0x8); + _bss_start = .; + bss_start = .; + *(.bss) + *(COMMON) + end = .; + _end = ALIGN(0x8); + __end = ALIGN(0x8); + } > ram + .stab . (NOLOAD) : + { + [ .stab ] + } + .stabstr . (NOLOAD) : + { + [ .stabstr ] + } +} -- cgit v1.2.3