source: rtems/c/src/lib/libbsp/i960/rxgen960/startup/dram.ld @ 702c5f5

4.104.114.84.95
Last change on this file since 702c5f5 was 702c5f5, checked in by Joel Sherrill <joel.sherrill@…>, on 10/27/99 at 15:29:18

The rxgen960 BSP and i960 RPM support was submitted by Mark Bronson
<mark@…> of RAMIX.

  • Property mode set to 100644
File size: 3.7 KB
Line 
1/*------------------------------------*/
2/* rom.ld                             */
3/* Last change : 19. 4.95             */
4/*------------------------------------*
5 * To build ROM based i960 image.
6 *------------------------------------*/
7
8
9MEMORY
10{
11  dram   : org = 0xa2000000, len = 120K
12}
13
14
15_bootAddr = 0xa0200000;
16_HEAP = 0xA0100000 ;
17
18SECTIONS
19{
20    /* Only monitor start point and fault handler
21     * will live in ROM as far as text is concerned.
22     * Only fault table will live in ROM as far as data
23     * is concerned. 
24     */
25  romCode :
26    {
27        /* Make sure that the monitor start point
28         * is the first location in EPROM.
29         */
30      rommon.o960(.text)
31        /* Procedures to copy code and
32         * initialize bss in RAM.
33         */
34      sctns.o960(.text)   
35        /* Make Sure Fault Table (and its handler's data)
36         * live here so that they wouldn't get destroyed).
37         */
38      asmfault.o960   
39      flttbl.o960
40        /* 16 byte aligned PRCB.
41         */
42      . = ALIGN(16);
43      rom_prcb.o960(.data)
44        /* 16 byte aligned Control Table.
45         */
46      . = ALIGN(16);
47      rom_cntrltbl.o960(.data)       
48      . = ALIGN(16);
49        intrtbl.o960(.data)
50      . = ALIGN(16);
51        nulsystbl.o960(.data)
52      . = ALIGN(16);
53        /* I need this symbol to know where code which is
54         * to be copied reside in ROM. Align it on a 16
55         * boundary.
56         */       
57      . = ALIGN(16); 
58      _codeRomStart = .;   
59    } > dram
60   
61    /* All the rest of the code will live in RAM.
62     * Relocation are created as though code resides
63     * in RAM, while code is placed right after romCode.
64     * This is responsiblity of the ROM monitor to
65     * copy code into ROM.
66     */   
67  ramCode : AT(ADDR(romCode) + SIZEOF(romCode))
68    {
69        /* RAM-based code section start.
70         * I need this symbol to know where to copy code
71         * at initialization time .
72         */
73      _codeRamStart = .;
74        /* RAM based fault recovery stuff.
75         */
76      _faultStart = .;
77      fault.o960
78      _faultEnd = .;
79        /* Check sum to gurantee that
80         * the above section wasn't broken.
81         */
82      . = ALIGN(16);
83      _faultCheckSum = .;
84      . += 4;
85        /* Fault Buffer to keep the state of
86         * the fauled procedure.
87         */
88      _faultBuffer = .;
89      . += 256;   
90        /* All the rest of the text goes here.
91         */
92      . = ALIGN(16);   
93      *(.text)
94        /* 16 byte aligned PRCB.
95         */
96      . = ALIGN(16);
97      prcb.o960(.data)
98        /* 16 byte aligned Control Table.
99         */
100      . = ALIGN(16);
101      cntrltbl.o960(.data)                 
102      . = ALIGN(16);
103        systbl.o960(.data)
104        /* All the rest of program defined data goes here.
105         */
106      *(.data)
107        /* RAM-based code section end.
108         * I need this symbol to know where to copy code
109         * at initialization time .
110         */   
111      _codeRamEnd = .;
112    } > sram
113 
114    /* RAM based uninitialized data.
115     */   
116  bss (NOLOAD) :
117    {
118        /* BSS section start. I need this symbol to
119         * zero BSS on initialization.
120         */
121      _bssStart = .;
122        /* Supervisor Stack. Aligned on a 16 boundary.
123         */
124      . = ALIGN(16);
125      _svrStackPtr = .;
126      . += 4K;
127        /* Interrupt Stack. Aligned on a 16 boundary.
128         */
129      . = ALIGN(16);
130      _intStackPtr = .;
131      . += 4K;
132        /* Program defined BSS.
133         */
134      *(.bss)
135        /* Program defined COMMON.
136         */
137      *(COMMON)
138        /* BSS section end. I need this symbol to
139         * zero BSS on initialization.
140         */
141      _bssEnd = .;
142      _bssStart_1 = .;
143      _bssEnd_1 = .;
144    } > dram
145
146}
147
148/*-------------*/
149/* End of file */
150/*-------------*/
Note: See TracBrowser for help on using the repository browser.