source: rtems/c/src/lib/libbsp/i960/rxgen960/startup/rom.ld @ aec4888

4.104.114.84.95
Last change on this file since aec4888 was 2ea8df3, checked in by Joel Sherrill <joel.sherrill@…>, on 10/27/99 at 16:27:34

Added CVS Ids and a basic header. More header cleanup needed.

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