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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [ecos-2.0/] [packages/] [hal/] [arm/] [xscale/] [iq80321/] [v2_0/] [include/] [hal_platform_extras.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1254 phoenix
#ifndef CYGONCE_HAL_PLATFORM_EXTRAS_H
2
#define CYGONCE_HAL_PLATFORM_EXTRAS_H
3
 
4
/*=============================================================================
5
//
6
//      hal_platform_extras.h
7
//
8
//      Platform specific MMU table.
9
//
10
//=============================================================================
11
//####ECOSGPLCOPYRIGHTBEGIN####
12
// -------------------------------------------
13
// This file is part of eCos, the Embedded Configurable Operating System.
14
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15
//
16
// eCos is free software; you can redistribute it and/or modify it under
17
// the terms of the GNU General Public License as published by the Free
18
// Software Foundation; either version 2 or (at your option) any later version.
19
//
20
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
21
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
22
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
23
// for more details.
24
//
25
// You should have received a copy of the GNU General Public License along
26
// with eCos; if not, write to the Free Software Foundation, Inc.,
27
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28
//
29
// As a special exception, if other files instantiate templates or use macros
30
// or inline functions from this file, or you compile this file and link it
31
// with other works to produce a work based on this file, this file does not
32
// by itself cause the resulting work to be covered by the GNU General Public
33
// License. However the source code for this file must still be made available
34
// in accordance with section (3) of the GNU General Public License.
35
//
36
// This exception does not invalidate any other reasons why a work based on
37
// this file might be covered by the GNU General Public License.
38
//
39
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
40
// at http://sources.redhat.com/ecos/ecos-license/
41
// -------------------------------------------
42
//####ECOSGPLCOPYRIGHTEND####
43
//=============================================================================
44
//#####DESCRIPTIONBEGIN####
45
//
46
// Author(s):    msalter
47
// Contributors: msalter
48
// Date:         2001-12-03
49
// Purpose:      Intel XScale IQ80321 platform specific mmu table
50
// Description:
51
// Usage:        #include <cyg/hal/hal_platform_extras.h>
52
//     Only used by "vectors.S"
53
//
54
//####DESCRIPTIONEND####
55
//
56
//===========================================================================*/
57
 
58
#if defined(CYG_HAL_STARTUP_ROM)
59
        .section .mmu_tables, "a"
60
 
61
#ifdef CYG_HAL_MEMORY_MAP_NORMAL
62
    mmu_table:
63
        //  This page table sets up the preferred mapping:
64
        //
65
        //  Virtual Address   Physical Address  Size (MB)  Description
66
        //  ---------------   ----------------  ---------  -----------
67
        //     0x00000000       0xA0000000         512     DRAM
68
        //     0x20000000       0x00000000        2048     ATU Outbound Direct
69
        //     0xA0000000       0x80000000         257     ATU Outbound Xlate
70
        //     0xB0100000       0x90100000         255     Unused
71
        //     0xC0000000       0xA0000000         512     Uncached DRAM alias
72
        //     0xE0000000       0xE0000000           1     Cache Flush
73
        //     0xE0100000       0xE0100000         255     Unused
74
        //     0xF0000000       0xF0000000           8     FLASH (PBIU CS0)
75
        //     0xF0800000       0xF0800000         224     Unused
76
        //     0xFE800000       0xFE800000           1     PBIU CS1-CS5
77
        //     0xFE900000       0xFE900000          22     Unused
78
        //     0xFFF00000       0xFFF00000           1     Verde PMMR
79
 
80
        // 512MB ECC DRAM
81
        // In flash based table: X=1, C=1, B=1, ECC
82
        .set    __base,0xA00
83
        .rept   0x200 - 0x000
84
        FL_SECTION_ENTRY __base,1,3,1,0,1,1
85
        .set    __base,__base+1
86
        .endr
87
 
88
        // 2048MB ATU Outbound direct
89
        // X=0, Non-cacheable, Non-bufferable
90
        .set    __base,0x000
91
        .rept   0xA00 - 0x200
92
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
93
        .set    __base,__base+1
94
        .endr
95
 
96
        // 257MB ATU Outbound translation
97
        // X=0, Non-cacheable, Non-bufferable
98
        .rept   0xB01 - 0xA00
99
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
100
        .set    __base,__base+1
101
        .endr
102
 
103
        // Nothing here
104
        .rept   0xC00 - 0xB01
105
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
106
        .set    __base,__base+1
107
        .endr
108
 
109
        // Uncached/unbuffered alias for 512MB ECC DRAM
110
        .set    __base,0xA00
111
        .rept   0xE00 - 0xC00
112
        FL_SECTION_ENTRY __base,0,3,1,0,0,0
113
        .set    __base,__base+1
114
        .endr
115
 
116
        // Cache flush region.
117
        // Don't need physical memory, just a cached area.
118
        .set    __base,0xE00
119
        .rept   0xE01 - 0xE00
120
        FL_SECTION_ENTRY __base,1,3,0,0,1,1
121
        .set    __base,__base+1
122
        .endr
123
 
124
        // Nothing here
125
        .rept   0xF00 - 0xE01
126
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
127
        .set    __base,__base+1
128
        .endr
129
 
130
        // 8MB of FLASH
131
        // X=0, Cacheable, Non-bufferable
132
        .rept   0xF08 - 0xF00
133
        FL_SECTION_ENTRY __base,0,3,0,0,1,0
134
        .set    __base,__base+1
135
        .endr
136
 
137
        // Nothing here
138
        .rept   0xFE8 - 0xF08
139
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
140
        .set    __base,__base+1
141
        .endr
142
 
143
        // PBIU CS1 - CS5
144
        // X=0, Non-cacheable, Non-bufferable
145
        .rept   0xFE9 - 0xFE8
146
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
147
        .set    __base,__base+1
148
        .endr
149
 
150
        // Nothing here
151
        .rept   0xFFF - 0xFE9
152
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
153
        .set    __base,__base+1
154
        .endr
155
 
156
        // Verde PMMR
157
        // X=0, Non-cacheable, Non-bufferable
158
        .rept   0x1000 - 0xFFF
159
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
160
        .set    __base,__base+1
161
        .endr
162
#else  /* CYG_HAL_MEMORY_MAP_NORMAL */
163
    mmu_table:
164
        //  This page table sets up an alternate mapping:
165
        //
166
        //  Virtual Address   Physical Address  Size (MB)  Description
167
        //  ---------------   ----------------  ---------  -----------
168
        //     0x00000000       0xA0000000           1     DRAM
169
        //     0x00100000       0x00100000        2047     ATU Outbound Direct
170
        //     0x80000000       0x80000000         257     ATU Outbound Xlate
171
        //     0x90100000       0x90100000         255     Invalid
172
        //     0xA0000000       0xA0000000         512     DRAM
173
        //     0xC0000000       0xA0000000         512     Uncached DRAM alias
174
        //     0xE0000000       0xE0000000           1     Cache Flush
175
        //     0xE0100000       0xE0100000         255     Invalid
176
        //     0xF0000000       0xF0000000           8     FLASH (PBIU CS0)
177
        //     0xF0800000       0xF0800000         224     Invalid
178
        //     0xFE800000       0xFE800000           1     PBIU CS1-CS5
179
        //     0xFE900000       0xFE900000          22     Invalid
180
        //     0xFFF00000       0xFFF00000           1     Verde PMMR
181
 
182
        // 1MB ECC DRAM
183
        // This is a duplicate mapping of the first MB of RAM. It is mapped
184
        // here for CPU exception vectors.
185
        .set    __base,0xA00
186
        .rept   0x001 - 0x000
187
        FL_SECTION_ENTRY __base,1,3,1,0,1,1
188
        .set    __base,__base+1
189
        .endr
190
        .set    __base,0x001
191
 
192
        // 2047MB ATU Outbound direct
193
        // X=0, Non-cacheable, Non-bufferable
194
        .rept   0x800 - 0x001
195
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
196
        .set    __base,__base+1
197
        .endr
198
 
199
        // 257MB ATU Outbound translation
200
        // X=0, Non-cacheable, Non-bufferable
201
        .rept   0x901 - 0x800
202
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
203
        .set    __base,__base+1
204
        .endr
205
 
206
        // Nothing here. Invalid.
207
        .rept   0xA00 - 0x901
208
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
209
        .set    __base,__base+1
210
        .endr
211
 
212
        // 512MB ECC DRAM
213
        // X=1, C=1, B=1, ECC
214
        .rept   0xC00 - 0xA00
215
        FL_SECTION_ENTRY __base,1,3,1,0,1,1
216
        .set    __base,__base+1
217
        .endr
218
 
219
        // Uncached/unbuffered alias for 512MB ECC DRAM
220
        .set    __base,0xA00
221
        .rept   0xE00 - 0xC00
222
        FL_SECTION_ENTRY __base,0,3,1,0,0,0
223
        .set    __base,__base+1
224
        .endr
225
 
226
        // Cache flush region.
227
        // Don't need physical memory, just a cached area.
228
        .set    __base,0xE00
229
        .rept   0xE01 - 0xE00
230
        FL_SECTION_ENTRY __base,1,3,0,0,1,1
231
        .set    __base,__base+1
232
        .endr
233
 
234
        // Nothing here
235
        .rept   0xF00 - 0xE01
236
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
237
        .set    __base,__base+1
238
        .endr
239
 
240
        // 8MB of FLASH
241
        // X=0, Cacheable, Non-bufferable
242
        .rept   0xF08 - 0xF00
243
        FL_SECTION_ENTRY __base,0,3,0,0,1,0
244
        .set    __base,__base+1
245
        .endr
246
 
247
        // Nothing here
248
        .rept   0xFE8 - 0xF08
249
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
250
        .set    __base,__base+1
251
        .endr
252
 
253
        // PBIU CS1 - CS5
254
        // X=0, Non-cacheable, Non-bufferable
255
        .rept   0xFE9 - 0xFE8
256
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
257
        .set    __base,__base+1
258
        .endr
259
 
260
        // Nothing here
261
        .rept   0xFFF - 0xFE9
262
        FL_SECTION_ENTRY __base,0,0,0,0,0,0
263
        .set    __base,__base+1
264
        .endr
265
 
266
        // Verde PMMR
267
        // X=0, Non-cacheable, Non-bufferable
268
        .rept   0x1000 - 0xFFF
269
        FL_SECTION_ENTRY __base,0,3,0,0,0,0
270
        .set    __base,__base+1
271
        .endr
272
#endif /* CYG_HAL_MEMORY_MAP_NORMAL */
273
 
274
 
275
#endif /* CYG_HAL_STARTUP_ROM */
276
 
277
/*---------------------------------------------------------------------------*/
278
/* end of hal_platform_setup.h                                               */
279
#endif /* CYGONCE_HAL_PLATFORM_SETUP_H */

powered by: WebSVN 2.1.0

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