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