3 /* Uncomment this if you want srecords. This is needed for a.out
4 * if you plan to use GDB.
8 GROUP(-lmvme162 -lc -lgcc)
12 * Setup the memory map of the Motorola MVME135 Board
13 * stack grows down from high memory.
15 * The memory map look like this:
16 * +--------------------+ <- low memory
19 * | ctor list | the ctor and dtor lists are for
20 * | dtor list | C++ support
21 * +--------------------+
22 * | .data | initialized data goes here
24 * +--------------------+
26 * | __bss_start | start of bss, cleared by crt0
27 * | _end | start of heap, used by sbrk()
28 * +--------------------+
32 * | __stack | top of stack
33 * +--------------------+
38 monitor : ORIGIN = 0x0000, LENGTH = 64K
39 ram (rwx) : ORIGIN = 0x10000, LENGTH = 16M
43 * allocate the stack to be at the top of memory, since the stack
47 PROVIDE (__stack = 16M - 8);
50 * Initalize some symbols to be zero so we can reference them in the
51 * crt0 without core dumping. These functions are all optional, but
52 * we do this so we can have our crt0 always use them if they exist.
53 * This is so BSPs work better when using the crt0 installed with gcc.
54 * We have to initalize them twice, so we cover a.out (which prepends
55 * an underscore) and coff object file formats.
57 PROVIDE (hardware_init_hook = 0);
58 PROVIDE (_hardware_init_hook = 0);
59 PROVIDE (software_init_hook = 0);
60 PROVIDE (_software_init_hook = 0);
62 * stick everything in ram (of course)
72 LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
78 LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
86 __INIT_SECTION__ = . ;
87 LONG (0x4e560000) /* linkw %fp,#0 */
89 SHORT (0x4e5e) /* unlk %fp */
90 SHORT (0x4e75) /* rts */
92 __FINI_SECTION__ = . ;
93 LONG (0x4e560000) /* linkw %fp,#0 */
95 SHORT (0x4e5e) /* unlk %fp */
96 SHORT (0x4e75) /* rts */
125 .stabstr 0 (NOLOAD) :