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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [hal/] [powerpc/] [mpc8xxx/] [current/] [include/] [var_regs.h] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
#ifndef CYGONCE_HAL_VAR_REGS_H
2
#define CYGONCE_HAL_VAR_REGS_H
3
 
4
//==========================================================================
5
//
6
//      var_regs.h
7
//
8
//      PowerPC MPC8xxx CPU definitions
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 Free Software Foundation, 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      
19
// version.                                                                 
20
//
21
// eCos is distributed in the hope that it will be useful, but WITHOUT      
22
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or    
23
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License    
24
// for more details.                                                        
25
//
26
// You should have received a copy of the GNU General Public License        
27
// along with eCos; if not, write to the Free Software Foundation, Inc.,    
28
// 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.            
29
//
30
// As a special exception, if other files instantiate templates or use      
31
// macros or inline functions from this file, or you compile this file      
32
// and link it with other works to produce a work based on this file,       
33
// this file does not by itself cause the resulting work to be covered by   
34
// the GNU General Public License. However the source code for this file    
35
// must still be made available in accordance with section (3) of the GNU   
36
// General Public License v2.                                               
37
//
38
// This exception does not invalidate any other reasons why a work based    
39
// on this file might be covered by the GNU General Public License.         
40
// -------------------------------------------                              
41
// ####ECOSGPLCOPYRIGHTEND####                                              
42
//==========================================================================
43
//#####DESCRIPTIONBEGIN####
44
//
45
// Author(s):    pfine
46
// Contributors: jskov
47
// Date:         2001-12-12
48
// Purpose:      Provide MPC8260 register definitions
49
// Description:  Provide MPC8260 register definitions
50
//               The short definitions (sans CYGARC_REG_) are exported only
51
//               if CYGARC_HAL_COMMON_EXPORT_CPU_MACROS is defined.
52
// Usage:        Included via the acrhitecture register header:
53
//               #include <cyg/hal/ppc_regs.h>
54
//               ...
55
//              
56
//
57
//####DESCRIPTIONEND####
58
//
59
//==========================================================================
60
 
61
//--------------------------------------------------------------------------
62
#define CYGARC_REG_LR   8              // Link Register
63
#define CYGARC_REG_CTR   9              // Counter Register
64
 
65
#define CYGARC_REG_DSISR  18
66
#define CYGARC_REG_DAR    19
67
#define CYGARC_REG_DEC    22
68
#define CYGARC_REG_SDR1   25
69
 
70
#define CYGARC_REG_TBL  268
71
#define CYGARC_REG_TBU  269
72
 
73
#define CYGARC_REG_SPRG0  272
74
#define CYGARC_REG_SPRG1  273
75
#define CYGARC_REG_SPRG2  274
76
#define CYGARC_REG_SPRG3  275
77
#define CYGARC_REG_EAR    282
78
#define CYGARC_REG_PVR    287
79
 
80
#define CYGARC_REG_IBAT0U          528
81
#define CYGARC_REG_IBAT0L          529
82
#define CYGARC_REG_IBAT1U          530
83
#define CYGARC_REG_IBAT1L          531
84
#define CYGARC_REG_IBAT2U          532
85
#define CYGARC_REG_IBAT2L          533
86
#define CYGARC_REG_IBAT3U          534
87
#define CYGARC_REG_IBAT3L          535
88
 
89
#define CYGARC_REG_DBAT0U          536
90
#define CYGARC_REG_DBAT0L          537
91
#define CYGARC_REG_DBAT1U          538
92
#define CYGARC_REG_DBAT1L          539
93
#define CYGARC_REG_DBAT2U          540
94
#define CYGARC_REG_DBAT2L          541
95
#define CYGARC_REG_DBAT3U          542
96
#define CYGARC_REG_DBAT3L          543
97
 
98
#define CYGARC_REG_DMISS   976
99
#define CYGARC_REG_DCMP    977
100
#define CYGARC_REG_HASH1   978
101
#define CYGARC_REG_HASH2   979
102
#define CYGARC_REG_IMISS   980
103
#define CYGARC_REG_ICMP    981
104
#define CYGARC_REG_RPA     982
105
 
106
 
107
// Hardware Implementation Defined Special Purpose Registers
108
#define CYGARC_REG_HID0   1008
109
#define CYGARC_REG_HID1   1009
110
#define CYGARC_REG_IABR   1010
111
#define CYGARC_REG_HID2   1011
112
#define CYGARC_REG_DABR   1013
113
 
114
// MPC8260 Internal Memory Mapped Registers
115
// These values are the offsets from the base memory address, which
116
// is stored in the IMMR register (0x101A8).
117
#define CYGARC_REG_IMM_SIUMCR    0x0000   // SIU Module Configuration Register
118
#define CYGARC_REG_IMM_SYPCR     0x0004   // System Protection Control Register
119
#define CYGARC_REG_IMM_SWSR      0x000E   // Software Service Register
120
#define CYGARC_REG_IMM_BCR       0x0024   // Bus Configuration Register
121
#define CYGARC_REG_IMM_PPC_ACR   0x0028   // .60x Bus Arbiter Config Register
122
#define CYGARC_REG_IMM_PPC_ALRH  0x002C   // .60x Bus Arb-Level[High] Register
123
#define CYGARC_REG_IMM_PPC_ALRL  0x0030   // .60x Bus Arb-Level[Low] Register
124
#define CYGARC_REG_IMM_LCL_ACR   0x0034   // Local Arbiter Config Register
125
#define CYGARC_REG_IMM_LCL_ALRH  0x0038   // Local Arb-Level[High] Register
126
#define CYGARC_REG_IMM_LCL_ALRL  0x003C   // Local Arb-Level[Low] Register
127
#define CYGARC_REG_IMM_TESCR1    0x0040   // .60x Bus Transfer Error Status and
128
                                          //    Control Register 1
129
#define CYGARC_REG_IMM_TESCR2    0x0044   // .60x Bus Transfer Error Status and
130
                                          //    Control Register 2
131
 
132
#define CYGARC_REG_IMM_LTESCR1   0x0048   // Local Bus Transfer Error Status
133
                                          //    and Control Register 1
134
#define CYGARC_REG_IMM_LTESCR2   0x004C   // Local Bus Transfer Error Status and
135
                                          // //Control Register 2
136
 
137
#define CYGARC_REG_IMM_PDTEA     0x0050   // .60x Bus DMA Transfer
138
                                          //    Error Address
139
#define CYGARC_REG_IMM_PDTEM     0x0054   // .60x Bus DMA Transfer Error MSNUM
140
#define CYGARC_REG_IMM_LDTEA     0x0058   // Local Bus DMA Xfer Error Address
141
#define CYGARC_REG_IMM_LDTEM     0x005C   // Local Bus DMA Transfer Error MSNUM
142
 
143
#define CYGARC_REG_IMM_SCCR      0x0C80   // System Clock Control Register
144
#define CYGARC_REG_IMM_SCMR      0x0C88   // System Clock Mode Register
145
#define CYGARC_REG_IMM_BR0       0x0100   // Base Register Bank 0
146
#define CYGARC_REG_IMM_OR0       0x0104   // Option Register Bank 0
147
#define CYGARC_REG_IMM_BR1       0x0108   // Base Register Bank 1
148
#define CYGARC_REG_IMM_OR1       0x010C   // Option Register Bank 1
149
#define CYGARC_REG_IMM_BR2       0x0110   // Base Register Bank 2
150
#define CYGARC_REG_IMM_OR2       0x0114   // Option Regiser Bank 2
151
#define CYGARC_REG_IMM_BR3       0x0118   // Base Register Bank 3
152
#define CYGARC_REG_IMM_OR3       0x011C   // Option Register Bank 3
153
#define CYGARC_REG_IMM_BR4       0x0120   // Base Register Bank 4
154
#define CYGARC_REG_IMM_OR4       0x0124   // Option Register Bank 4
155
#define CYGARC_REG_IMM_BR5       0x0128   // Base Register Bank 5
156
#define CYGARC_REG_IMM_OR5       0x012C   // Option Register Bank 5
157
#define CYGARC_REG_IMM_BR6       0x0130   // Base Register Bank 6
158
#define CYGARC_REG_IMM_OR6       0x0134   // Option Register Bank 6
159
#define CYGARC_REG_IMM_BR7       0x0138   // Base Register Bank 7
160
#define CYGARC_REG_IMM_OR7       0x013C   // Option Register Bank 7
161
#define CYGARC_REG_IMM_BR8       0x0140   // Base Register Bank 8
162
#define CYGARC_REG_IMM_OR8       0x0144   // Option Regiser Bank 8
163
#define CYGARC_REG_IMM_BR9       0x0148   // Base Register Bank 9
164
#define CYGARC_REG_IMM_OR9       0x014C   // Option Register Bank 9
165
#define CYGARC_REG_IMM_BR10      0x0150   // Base Register Bank 10
166
#define CYGARC_REG_IMM_OR10      0x0154   // Option Register Bank 10
167
#define CYGARC_REG_IMM_BR11      0x0158   // Base Register Bank 11
168
#define CYGARC_REG_IMM_OR11      0x015C   // Option Register Bank 11
169
 
170
#define CYGARC_REG_IMM_MAR       0x0168   // Memory Address Register
171
#define CYGARC_REG_IMM_MAMR      0x0170   // Machine A mode Register
172
#define CYGARC_REG_IMM_MBMR      0x0174   // Machine B mode Register
173
#define CYGARC_REG_IMM_MCMR      0x0178   // Machine C mode Register
174
 
175
#define CYGARC_REG_IMM_MPTPR     0x0184   // Memory Periodic Timer
176
                                          //    Prescaler Register
177
#define CYGARC_REG_IMM_MDR       0x0188   // Memory Data Register
178
#define CYGARC_REG_IMM_PSDMR     0x0190   // PowerPC Bus SDRAM Machine
179
                                          //    Mode Register
180
#define CYGARC_REG_IMM_LSDMR     0x0194   // Local Bus SDRAM Machine
181
                                          //    Mode Register
182
#define CYGARC_REG_IMM_PURT      0x0198   // .60x Bus-assigned UPM Refresh timer
183
#define CYGARC_REG_IMM_PSRT      0x019C   // .60x Bus Assigned SDRAM
184
                                          //    Refresh Timer
185
#define CYGARC_REG_IMM_LURT      0x01A0   // Local Bus-assigned UPM
186
                                          //    Refresh timer
187
#define CYGARC_REG_IMM_LSRT      0x01A4   // Local Bus Assigned SDRAM
188
                                          //    Refresh Timer
189
#define CYGARC_REG_IMM_IMMR      0x01A8   // Internal I/O base register offset
190
 
191
// Interrupt Controller
192
#define CYGARC_REG_IMM_SICR      0x0C00   // SIU Interrupt Config Register
193
#define CYGARC_REG_IMM_SIVEC     0x0C04   // SIU Interrupt Vector Register
194
#define CYGARC_REG_IMM_SIPNR_H   0x0C08   // SIU Interrupt Pending Reg. High
195
#define CYGARC_REG_IMM_SIPNR_L   0x0C0C   // SIU Interrupt Pending Reg. Low
196
#define CYGARC_REG_IMM_SIPRR     0x0C10   // SIU Interrupt Priority Register
197
#define CYGARC_REG_IMM_SCPRR_H   0x0C14   // CPM Interrupt Priority Reg. High
198
#define CYGARC_REG_IMM_SCPRR_L   0x0C18   // CPM Interrupt Priority Reg. Low
199
#define CYGARC_REG_IMM_SIMR_H    0x0C1C   // SIU Interrupt Mask Register High
200
#define CYGARC_REG_IMM_SIMR_L    0x0C20   // SIU Interrupt Mask Register High
201
#define CYGARC_REG_IMM_SIEXR     0x0C24   // SIU External Interrupt Ctrl Reg.
202
 
203
// Parallel I/O (GPIO) 
204
#define CYGARC_REG_IMM_PDIRA     0x0D00   // Port A data direction
205
#define CYGARC_REG_IMM_PPARA     0x0D04   // Port A pin assignment
206
#define CYGARC_REG_IMM_PSORA     0x0D08   // Port A special options
207
#define CYGARC_REG_IMM_PODRA     0x0D0C   // Port A open drain
208
#define CYGARC_REG_IMM_PDATA     0x0D10   // Port A data
209
#define CYGARC_REG_IMM_PDIRB     0x0D20   // Port B data direction
210
#define CYGARC_REG_IMM_PPARB     0x0D24   // Port B pin assignment
211
#define CYGARC_REG_IMM_PSORB     0x0D28   // Port B special options
212
#define CYGARC_REG_IMM_PODRB     0x0D2C   // Port A open drain
213
#define CYGARC_REG_IMM_PDATB     0x0D30   // Port A data
214
#define CYGARC_REG_IMM_PDIRC     0x0D40   // Port C data direction
215
#define CYGARC_REG_IMM_PPARC     0x0D44   // Port C pin assignment
216
#define CYGARC_REG_IMM_PSORC     0x0D48   // Port C special options
217
#define CYGARC_REG_IMM_PODRC     0x0D4C   // Port A open drain
218
#define CYGARC_REG_IMM_PDATC     0x0D50   // Port A data
219
#define CYGARC_REG_IMM_PDIRD     0x0D60   // Port D data direction
220
#define CYGARC_REG_IMM_PPARD     0x0D64   // Port D pin assignment
221
#define CYGARC_REG_IMM_PSORD     0x0D68   // Port D special options
222
#define CYGARC_REG_IMM_PODRD     0x0D6C   // Port A open drain
223
#define CYGARC_REG_IMM_PDATD     0x0D70   // Port A data
224
 
225
#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
226
#define HID0       CYGARC_REG_HID0
227
#define HID1       CYGARC_REG_HID1
228
#define HID2       CYGARC_REG_HID2
229
#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
230
 
231
//--------------------------------------------------------------------------
232
#ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
233
 
234
// BATs
235
#define IBAT0U          528
236
#define IBAT0L          529
237
#define IBAT1U          530
238
#define IBAT1L          531
239
#define IBAT2U          532
240
#define IBAT2L          533
241
#define IBAT3U          534
242
#define IBAT3L          535
243
 
244
#define DBAT0U          536
245
#define DBAT0L          537
246
#define DBAT1U          538
247
#define DBAT1L          539
248
#define DBAT2U          540
249
#define DBAT2L          541
250
#define DBAT3U          542
251
#define DBAT3L          543
252
 
253
#define UBAT_BEPIMASK   0xfffe0000      // effective address mask
254
#define UBAT_BLMASK     0x00001ffc      // block length mask
255
#define UBAT_VS         0x00000002      // supervisor mode valid bit
256
#define UBAT_VP         0x00000001      // problem mode valid bit
257
 
258
#define LBAT_BRPNMASK   0xfffe0000      // real address mask
259
#define LBAT_W          0x00000040      // write-through
260
#define LBAT_I          0x00000020      // caching-inhibited
261
#define LBAT_M          0x00000010      // memory coherence
262
#define LBAT_G          0x00000008      // guarded
263
 
264
#define LBAT_PP_NA      0x00000000      // no access
265
#define LBAT_PP_RO      0x00000001      // read-only
266
#define LBAT_PP_RW      0x00000002      // read/write
267
 
268
 
269
#endif // ifdef CYGARC_HAL_COMMON_EXPORT_CPU_MACROS
270
 
271
//-----------------------------------------------------------------------------
272
#endif // ifdef CYGONCE_HAL_VAR_REGS_H
273
// End of var_regs.h

powered by: WebSVN 2.1.0

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