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