OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [i960/] [rxgen960/] [startup/] [linkcmds] - Blame information for rev 30

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*------------------------------------*/
2
/* rom.ld                             */
3
/* Last change : 19. 4.95             */
4
/*------------------------------------*
5
 * To build ROM based i960 image.
6
 *------------------------------------*/
7
 
8
/*
9
 *  $Id: linkcmds,v 1.2 2001-09-27 11:59:59 chris Exp $
10
 */
11
 
12
 
13
MEMORY
14
{
15
  config : org = 0xFeffFF30, len = 0xd0
16
  eprom  : org = 0xfec00000, len = 1024K
17
}
18
 
19
 
20
_bootAddr = 0xa0200000;
21
/*_HEAP = 0xA0100000 ; */
22
_rom_ibr_cksum = -(_romStart + _rom_prcb);
23
 
24
SECTIONS
25
{
26
  prcb :
27
    {
28
      INPUT(rom_ibr.o)
29
    } > config
30
 
31
    /* Only monitor start point and fault handler
32
     * will live in ROM as far as text is concerned.
33
     * Only fault table will live in ROM as far as data
34
     * is concerned.
35
     */
36
  romCode :
37
    {
38
        /* Make sure that the monitor start point
39
         * is the first location in EPROM.
40
         */
41
      rxgen_romld.o(.text)
42
        /* Procedures to copy code and
43
         * initialize bss in RAM.
44
         */
45
      sctns.o(.text)
46
        /* Make Sure Fault Table (and its handler's data)
47
         * live here so that they wouldn't get destroyed).
48
         */
49
      asmfault.o
50
      ihandler.o
51
      . = ALIGN(16);
52
      flttbl.o
53
        /* 16 byte aligned PRCB.
54
         */
55
      . = ALIGN(16);
56
        rom_prcb.o(.data)
57
      . = ALIGN(16);
58
        rom_cntrltbl.o(.data)
59
      . = ALIGN(16);
60
        intrtbl.o(.data)
61
      . = ALIGN(16);
62
        nulsystbl.o(.data)
63
      . = ALIGN(16);
64
        /* I need this symbol to know where code which is
65
         * to be copied reside in ROM. Align it on a 16
66
         * boundary.
67
         */
68
      . = ALIGN(16);
69
      _codeRomStart = .;
70
    } > eprom
71
 
72
    /* All the rest of the code will live in RAM.
73
     * Relocation are created as though code resides
74
     * in RAM, while code is placed right after romCode.
75
     * This is responsiblity of the ROM monitor to
76
     * copy code into ROM.
77
     */
78
  ramCode : AT(ADDR(romCode) + SIZEOF(romCode))
79
    {
80
        /* RAM-based code section start.
81
         * I need this symbol to know where to copy code
82
         * at initialization time .
83
         */
84
      _codeRamStart = .;
85
        /* RAM based fault recovery stuff.
86
         */
87
      _faultStart = .;
88
      asmstub.o
89
      fault.o
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
/* NEW TEST TEST TEST TEST */
107
                . = ALIGN (16);
108
 
109
        *(.eh_fram)
110
        . = ALIGN (16);
111
 
112
        /*
113
         * C++ constructors
114
         */
115
        __CTOR_LIST__ = .;
116
        LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
117
        *(.ctors)
118
        LONG(0)
119
        __CTOR_END__ = .;
120
        __DTOR_LIST__ = .;
121
        LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
122
        *(.dtors)
123
        LONG(0)
124
        __DTOR_END__ = .;
125
            etext = ALIGN( 0x10 ) ;
126
/* END NEW TEST TEST TEST */
127
        /* 16 byte aligned PRCB.
128
         */
129
      . = ALIGN(16);
130
      prcb.o(.data)
131
        /* 16 byte aligned Control Table.
132
         */
133
      . = ALIGN(16);
134
      cntrltbl.o(.data)
135
      . = ALIGN(16);
136
        systbl.o(.data)
137
        /* All the rest of program defined data goes here.
138
         */
139
      *(.data)
140
        /* RAM-based code section end.
141
         * I need this symbol to know where to copy code
142
         * at initialization time .
143
         */
144
      _codeRamEnd = .;
145
    } > eprom
146
 
147
    /* RAM based uninitialized data.
148
     */
149
  bss (NOLOAD) :
150
    {
151
        /* BSS section start. I need this symbol to
152
         * zero BSS on initialization.
153
         */
154
        /* Heap.  Aligned on a 64 boundary */
155
      /* . = ALIGN(64);
156
      _heap_initial = .;
157
      . += 64K;*/
158
        /* Supervisor Stack. Aligned on a 16 boundary.
159
         */
160
      . = ALIGN(16);
161
      _svrStackPtr = .;
162
      . += 16K;
163
        /* Interrupt Stack. Aligned on a 16 boundary.
164
         */
165
      . = ALIGN(16);
166
      _intStackPtr = .;
167
      . += 16K;
168
        /* Program defined BSS.
169
         */
170
      _bssStart = .;
171
      _bss_start = .;
172
      *(.bss)
173
        /* Program defined COMMON.
174
         */
175
      *(COMMON)
176
      _end = .;
177
        /* BSS section end. I need this symbol to
178
         * zero BSS on initialization.
179
         */
180
      _bssEnd = .;
181
      _bssStart_1 = .;
182
      _bssEnd_1 = .;
183
    } > eprom
184
 
185
}
186
 
187
/*-------------*/
188
/* End of file */
189
/*-------------*/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.