1 |
27 |
unneback |
#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
|