1 |
27 |
unneback |
#ifndef CYGONCE_HAL_PPC_QUICC2_MPC8260_H
|
2 |
|
|
#define CYGONCE_HAL_PPC_QUICC2_MPC8260_H
|
3 |
|
|
|
4 |
|
|
//==========================================================================
|
5 |
|
|
//
|
6 |
|
|
// mpc8260.h
|
7 |
|
|
//
|
8 |
|
|
// PowerPC QUICC2 register 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): Red Hat
|
48 |
|
|
// Contributors: hmt
|
49 |
|
|
// Date: 1999-06-08
|
50 |
|
|
// Purpose: Provide PPC QUICC2 definitions
|
51 |
|
|
// Description: Provide PPC QUICC2 definitions
|
52 |
|
|
// Usage: THIS IS NOT AN EXTERNAL API
|
53 |
|
|
// This file is in the include dir to share it between
|
54 |
|
|
// QUICCII serial code and MPC8260 initialization code.
|
55 |
|
|
// #include <cyg/hal/quicc/mpc8260.h>
|
56 |
|
|
// ...
|
57 |
|
|
//
|
58 |
|
|
//
|
59 |
|
|
//####DESCRIPTIONEND####
|
60 |
|
|
//
|
61 |
|
|
//==========================================================================
|
62 |
|
|
|
63 |
|
|
/*-------------------------*/
|
64 |
|
|
/* Single buffer component */
|
65 |
|
|
/*-------------------------*/
|
66 |
|
|
|
67 |
|
|
typedef struct BufferPool
|
68 |
|
|
|
69 |
|
|
{
|
70 |
|
|
CYG_BYTE RxBuffer;
|
71 |
|
|
CYG_BYTE TxBuffer;
|
72 |
|
|
|
73 |
|
|
} LB;
|
74 |
|
|
|
75 |
|
|
|
76 |
|
|
/*--------------------------*/
|
77 |
|
|
/* Buffer Descriptor Format */
|
78 |
|
|
/*--------------------------*/
|
79 |
|
|
|
80 |
|
|
typedef struct BufferDescriptor
|
81 |
|
|
|
82 |
|
|
{
|
83 |
|
|
CYG_WORD16 bd_cstatus; /* control and status */
|
84 |
|
|
CYG_WORD16 bd_length; /* transfer length */
|
85 |
|
|
volatile CYG_BYTE *bd_addr; /* buffer address */
|
86 |
|
|
|
87 |
|
|
} BD;
|
88 |
|
|
|
89 |
|
|
|
90 |
|
|
/*-------------------------------*/
|
91 |
|
|
/* Buffer Descriptor Ring format */
|
92 |
|
|
/*-------------------------------*/
|
93 |
|
|
|
94 |
|
|
typedef struct BufferDescRings
|
95 |
|
|
|
96 |
|
|
{
|
97 |
|
|
BD RxBD; /* Rx BD ring */
|
98 |
|
|
BD TxBD; /* Tx BD ring */
|
99 |
|
|
|
100 |
|
|
} BDRINGS;
|
101 |
|
|
|
102 |
|
|
#define _Packed
|
103 |
|
|
#define _PackedType __attribute__((packed))
|
104 |
|
|
|
105 |
|
|
/******************************************************************************
|
106 |
|
|
*
|
107 |
|
|
* PARAMETER RAM (PRAM) FOR EACH PERIPHERAL
|
108 |
|
|
*
|
109 |
|
|
* Each subsection contains protocol-specific PRAM for each peripheral,
|
110 |
|
|
* followed by the PRAM common to all protocols for that peripheral. These
|
111 |
|
|
* structs are used as needed in the main MPC8260 memory map structure. Note
|
112 |
|
|
* that different modes of operation will require the use of different PRAM
|
113 |
|
|
* structs, and that certain structs may overlay and conflict with the use of
|
114 |
|
|
* other PRAM areas. Consult the MPC8260 User Manual for details as to what
|
115 |
|
|
* is unavailable when certain protocols are run on certain peripherals.
|
116 |
|
|
*
|
117 |
|
|
******************************************************************************/
|
118 |
|
|
|
119 |
|
|
|
120 |
|
|
|
121 |
|
|
/*---------------------------------------------------------------------------*/
|
122 |
|
|
/* SERIAL COMMUNICATION CONTROLLER (SCC) */
|
123 |
|
|
/*---------------------------------------------------------------------------*/
|
124 |
|
|
|
125 |
|
|
/*----------*/
|
126 |
|
|
/* SCC HDLC */
|
127 |
|
|
/*----------*/
|
128 |
|
|
|
129 |
|
|
typedef _Packed struct
|
130 |
|
|
{
|
131 |
|
|
CYG_BYTE reserved1[4]; /* Reserved area */
|
132 |
|
|
CYG_WORD c_mask; /* CRC constant */
|
133 |
|
|
CYG_WORD c_pres; /* CRC preset */
|
134 |
|
|
CYG_WORD16 disfc; /* discarded frame counter */
|
135 |
|
|
CYG_WORD16 crcec; /* CRC error counter */
|
136 |
|
|
CYG_WORD16 abtsc; /* abort sequence counter */
|
137 |
|
|
CYG_WORD16 nmarc; /* nonmatching address rx cnt */
|
138 |
|
|
CYG_WORD16 retrc; /* frame transmission counter. */
|
139 |
|
|
/* For FCC this area is reserved.*/
|
140 |
|
|
CYG_WORD16 mflr; /* maximum frame length reg */
|
141 |
|
|
CYG_WORD16 max_cnt; /* maximum length counter */
|
142 |
|
|
CYG_WORD16 rfthr; /* received frames threshold */
|
143 |
|
|
CYG_WORD16 rfcnt; /* received frames count */
|
144 |
|
|
CYG_WORD16 hmask; /* user defined frm addr mask */
|
145 |
|
|
CYG_WORD16 haddr1; /* user defined frm address 1 */
|
146 |
|
|
CYG_WORD16 haddr2; /* user defined frm address 2 */
|
147 |
|
|
CYG_WORD16 haddr3; /* user defined frm address 3 */
|
148 |
|
|
CYG_WORD16 haddr4; /* user defined frm address 4 */
|
149 |
|
|
CYG_WORD16 tmp; /* temp */
|
150 |
|
|
CYG_WORD16 tmp_mb; /* temp */
|
151 |
|
|
} _PackedType t_HdlcScc_Pram;
|
152 |
|
|
|
153 |
|
|
|
154 |
|
|
/*--------------*/
|
155 |
|
|
/* SCC Ethernet */
|
156 |
|
|
/*--------------*/
|
157 |
|
|
|
158 |
|
|
typedef _Packed struct
|
159 |
|
|
{
|
160 |
|
|
CYG_WORD c_pres; /* CRC preset */
|
161 |
|
|
CYG_WORD c_mask; /* CRC constant mask*/
|
162 |
|
|
CYG_WORD crcec; /* CRC error counter */
|
163 |
|
|
CYG_WORD alec; /* alignment error counter */
|
164 |
|
|
CYG_WORD disfc; /* discarded frame counter */
|
165 |
|
|
CYG_WORD16 pads; /* Short frame pad character. */
|
166 |
|
|
CYG_WORD16 ret_lim; /* Retry limit threshold. */
|
167 |
|
|
CYG_WORD16 ret_cnt; /* Retry limit counter. */
|
168 |
|
|
CYG_WORD16 mflr; /* maximum frame length reg */
|
169 |
|
|
CYG_WORD16 minflr; /* minimum frame length reg */
|
170 |
|
|
CYG_WORD16 maxd1; /* max DMA1 length register. */
|
171 |
|
|
CYG_WORD16 maxd2; /* max DMA2 length register. */
|
172 |
|
|
CYG_WORD16 maxd; /* Rx max DMA. */
|
173 |
|
|
CYG_WORD16 dma_cnt; /* Rx DMA counter. */
|
174 |
|
|
CYG_WORD16 max_b; /* max buffer descriptor byte count. */
|
175 |
|
|
CYG_WORD16 gaddr1; /* group address filter */
|
176 |
|
|
CYG_WORD16 gaddr2; /* group address filter */
|
177 |
|
|
CYG_WORD16 gaddr3; /* group address filter */
|
178 |
|
|
CYG_WORD16 gaddr4; /* group address filter */
|
179 |
|
|
CYG_WORD tbuf0_data0; /* Saved area 0, current frame. */
|
180 |
|
|
CYG_WORD tbuf0_data1; /* Saved area 1, current frame. */
|
181 |
|
|
CYG_WORD tbuf0_rba0;
|
182 |
|
|
CYG_WORD tbuf0_crc;
|
183 |
|
|
CYG_WORD16 tbuf0_bcnt;
|
184 |
|
|
CYG_WORD16 paddr1_h; /* physical address (MSB) */
|
185 |
|
|
CYG_WORD16 paddr1_m; /* physical address */
|
186 |
|
|
CYG_WORD16 paddr1_l; /* physical address (LSB) */
|
187 |
|
|
CYG_WORD16 p_per; /* persistence */
|
188 |
|
|
CYG_WORD16 rfbd_ptr; /* Rx first BD pointer. */
|
189 |
|
|
CYG_WORD16 tfbd_ptr; /* Tx first BD pointer. */
|
190 |
|
|
CYG_WORD16 tlbd_ptr; /* Tx last BD pointer. */
|
191 |
|
|
CYG_WORD tbuf1_data0; /* Saved area 0, next frame. */
|
192 |
|
|
CYG_WORD tbuf1_data1; /* Saved area 1, next frame. */
|
193 |
|
|
CYG_WORD tbuf1_rba0;
|
194 |
|
|
CYG_WORD tbuf1_crc;
|
195 |
|
|
CYG_WORD16 tbuf1_bcnt;
|
196 |
|
|
CYG_WORD16 tx_len; /* tx frame length counter */
|
197 |
|
|
CYG_WORD16 iaddr1; /* individual address filter. */
|
198 |
|
|
CYG_WORD16 iaddr2; /* individual address filter. */
|
199 |
|
|
CYG_WORD16 iaddr3; /* individual address filter. */
|
200 |
|
|
CYG_WORD16 iaddr4; /* individual address filter. */
|
201 |
|
|
CYG_WORD16 boff_cnt; /* back-off counter */
|
202 |
|
|
CYG_WORD16 taddr_h; /* temp address (MSB) */
|
203 |
|
|
CYG_WORD16 taddr_m; /* temp address */
|
204 |
|
|
CYG_WORD16 taddr_l; /* temp address (LSB) */
|
205 |
|
|
} _PackedType t_EnetScc_Pram;
|
206 |
|
|
|
207 |
|
|
/*----------*/
|
208 |
|
|
/* SCC UART */
|
209 |
|
|
/*----------*/
|
210 |
|
|
|
211 |
|
|
typedef _Packed struct
|
212 |
|
|
{
|
213 |
|
|
CYG_BYTE reserved1[8]; /* Reserved area */
|
214 |
|
|
CYG_WORD16 max_idl; /* maximum idle characters */
|
215 |
|
|
CYG_WORD16 idlc; /* rx idle counter (internal) */
|
216 |
|
|
CYG_WORD16 brkcr; /* break count register */
|
217 |
|
|
CYG_WORD16 parec; /* Rx parity error counter */
|
218 |
|
|
CYG_WORD16 frmec; /* Rx framing error counter */
|
219 |
|
|
CYG_WORD16 nosec; /* Rx noise counter */
|
220 |
|
|
CYG_WORD16 brkec; /* Rx break character counter */
|
221 |
|
|
CYG_WORD16 brkln; /* Receive break length */
|
222 |
|
|
CYG_WORD16 uaddr1; /* address character 1 */
|
223 |
|
|
CYG_WORD16 uaddr2; /* address character 2 */
|
224 |
|
|
CYG_WORD16 rtemp; /* temp storage */
|
225 |
|
|
CYG_WORD16 toseq; /* Tx out of sequence char */
|
226 |
|
|
CYG_WORD16 cc[8]; /* Rx control characters */
|
227 |
|
|
CYG_WORD16 rccm; /* Rx control char mask */
|
228 |
|
|
CYG_WORD16 rccr; /* Rx control char register */
|
229 |
|
|
CYG_WORD16 rlbc; /* Receive last break char */
|
230 |
|
|
} _PackedType t_UartScc_Pram;
|
231 |
|
|
|
232 |
|
|
|
233 |
|
|
/*-----------------*/
|
234 |
|
|
/* SCC Transparent */
|
235 |
|
|
/*-----------------*/
|
236 |
|
|
|
237 |
|
|
typedef _Packed struct
|
238 |
|
|
{
|
239 |
|
|
CYG_WORD c_mask; /* CRC constant */
|
240 |
|
|
CYG_WORD c_pres; /* CRC preset */
|
241 |
|
|
} _PackedType t_TransScc_Pram;
|
242 |
|
|
|
243 |
|
|
|
244 |
|
|
/*------------*/
|
245 |
|
|
/* SCC Bisync */
|
246 |
|
|
/*------------*/
|
247 |
|
|
|
248 |
|
|
typedef _Packed struct
|
249 |
|
|
{
|
250 |
|
|
CYG_BYTE reserved1[4]; /* Reserved area */
|
251 |
|
|
CYG_WORD crcc; /* CRC Constant Temp Value */
|
252 |
|
|
CYG_WORD16 prcrc; /* Preset Receiver CRC-16/LRC */
|
253 |
|
|
CYG_WORD16 ptcrc; /* Preset Transmitter CRC-16/LRC */
|
254 |
|
|
CYG_WORD16 parec; /* Receive Parity Error Counter */
|
255 |
|
|
CYG_WORD16 bsync; /* BISYNC SYNC Character */
|
256 |
|
|
CYG_WORD16 bdle; /* BISYNC DLE Character */
|
257 |
|
|
CYG_WORD16 cc[8]; /* Rx control characters */
|
258 |
|
|
CYG_WORD16 rccm; /* Receive Control Character Mask */
|
259 |
|
|
} _PackedType t_BisyncScc_Pram;
|
260 |
|
|
|
261 |
|
|
|
262 |
|
|
/*-----------------*/
|
263 |
|
|
/* SCC Common PRAM */
|
264 |
|
|
/*-----------------*/
|
265 |
|
|
|
266 |
|
|
typedef _Packed struct
|
267 |
|
|
{
|
268 |
|
|
CYG_WORD16 rbase; /* RX BD base address */
|
269 |
|
|
CYG_WORD16 tbase; /* TX BD base address */
|
270 |
|
|
CYG_BYTE rfcr; /* Rx function code */
|
271 |
|
|
CYG_BYTE tfcr; /* Tx function code */
|
272 |
|
|
CYG_WORD16 mrblr; /* Rx buffer length */
|
273 |
|
|
CYG_WORD rstate; /* Rx internal state */
|
274 |
|
|
CYG_WORD rptr; /* Rx internal data pointer */
|
275 |
|
|
CYG_WORD16 rbptr; /* rb BD Pointer */
|
276 |
|
|
CYG_WORD16 rcount; /* Rx internal byte count */
|
277 |
|
|
CYG_WORD rtemp; /* Rx temp */
|
278 |
|
|
CYG_WORD tstate; /* Tx internal state */
|
279 |
|
|
CYG_WORD tptr; /* Tx internal data pointer */
|
280 |
|
|
CYG_WORD16 tbptr; /* Tx BD pointer */
|
281 |
|
|
CYG_WORD16 tcount; /* Tx byte count */
|
282 |
|
|
CYG_WORD ttemp; /* Tx temp */
|
283 |
|
|
CYG_WORD rcrc; /* temp receive CRC */
|
284 |
|
|
CYG_WORD tcrc; /* temp transmit CRC */
|
285 |
|
|
union
|
286 |
|
|
{
|
287 |
|
|
t_HdlcScc_Pram h;
|
288 |
|
|
t_EnetScc_Pram e;
|
289 |
|
|
t_UartScc_Pram u;
|
290 |
|
|
t_TransScc_Pram t;
|
291 |
|
|
t_BisyncScc_Pram b;
|
292 |
|
|
} SpecificProtocol;
|
293 |
|
|
volatile CYG_BYTE COMPLETE_SIZE_OF_DPRAM_PAGE[0x5c];
|
294 |
|
|
} _PackedType t_Scc_Pram;
|
295 |
|
|
|
296 |
|
|
|
297 |
|
|
|
298 |
|
|
/*---------------------------------------------------------------------------*/
|
299 |
|
|
/* FAST COMMUNICATION CONTROLLER (FCC) */
|
300 |
|
|
/*---------------------------------------------------------------------------*/
|
301 |
|
|
|
302 |
|
|
/*----------*/
|
303 |
|
|
/* FCC HDLC */
|
304 |
|
|
/*----------*/
|
305 |
|
|
|
306 |
|
|
typedef _Packed struct
|
307 |
|
|
{
|
308 |
|
|
CYG_BYTE reserved1[8]; /* Reserved area */
|
309 |
|
|
CYG_WORD c_mask; /* CRC constant */
|
310 |
|
|
CYG_WORD c_pres; /* CRC preset */
|
311 |
|
|
CYG_WORD16 disfc; /* discarded frame counter */
|
312 |
|
|
CYG_WORD16 crcec; /* CRC error counter */
|
313 |
|
|
CYG_WORD16 abtsc; /* abort sequence counter */
|
314 |
|
|
CYG_WORD16 nmarc; /* nonmatching address rx cnt */
|
315 |
|
|
CYG_WORD max_cnt; /* maximum length counter */
|
316 |
|
|
CYG_WORD16 mflr; /* maximum frame length reg */
|
317 |
|
|
CYG_WORD16 rfthr; /* received frames threshold */
|
318 |
|
|
CYG_WORD16 rfcnt; /* received frames count */
|
319 |
|
|
CYG_WORD16 hmask; /* user defined frm addr mask */
|
320 |
|
|
CYG_WORD16 haddr1; /* user defined frm address 1 */
|
321 |
|
|
CYG_WORD16 haddr2; /* user defined frm address 2 */
|
322 |
|
|
CYG_WORD16 haddr3; /* user defined frm address 3 */
|
323 |
|
|
CYG_WORD16 haddr4; /* user defined frm address 4 */
|
324 |
|
|
CYG_WORD16 tmp; /* temp */
|
325 |
|
|
CYG_WORD16 tmp_mb; /* temp */
|
326 |
|
|
} _PackedType t_HdlcFcc_Pram;
|
327 |
|
|
|
328 |
|
|
|
329 |
|
|
/*--------------*/
|
330 |
|
|
/* FCC Ethernet */
|
331 |
|
|
/*--------------*/
|
332 |
|
|
|
333 |
|
|
typedef _Packed struct
|
334 |
|
|
{
|
335 |
|
|
CYG_WORD stat_bus; /* Internal use buffer. */
|
336 |
|
|
CYG_WORD cam_ptr; /* CAM address. */
|
337 |
|
|
CYG_WORD c_mask; /* CRC constant mask*/
|
338 |
|
|
CYG_WORD c_pres; /* CRC preset */
|
339 |
|
|
CYG_WORD crcec; /* CRC error counter */
|
340 |
|
|
CYG_WORD alec; /* alignment error counter */
|
341 |
|
|
CYG_WORD disfc; /* discarded frame counter */
|
342 |
|
|
CYG_WORD16 ret_lim; /* Retry limit threshold. */
|
343 |
|
|
CYG_WORD16 ret_cnt; /* Retry limit counter. */
|
344 |
|
|
CYG_WORD16 p_per; /* persistence */
|
345 |
|
|
CYG_WORD16 boff_cnt; /* back-off counter */
|
346 |
|
|
CYG_WORD gaddr_h; /* group address filter, high */
|
347 |
|
|
CYG_WORD gaddr_l; /* group address filter, low */
|
348 |
|
|
CYG_WORD16 tfcstat; /* out of sequece Tx BD staus. */
|
349 |
|
|
CYG_WORD16 tfclen; /* out of sequece Tx BD length. */
|
350 |
|
|
CYG_WORD tfcptr; /* out of sequece Tx BD data pointer. */
|
351 |
|
|
CYG_WORD16 mflr; /* maximum frame length reg */
|
352 |
|
|
CYG_WORD16 paddr1_h; /* physical address (MSB) */
|
353 |
|
|
CYG_WORD16 paddr1_m; /* physical address */
|
354 |
|
|
CYG_WORD16 paddr1_l; /* physical address (LSB) */
|
355 |
|
|
CYG_WORD16 ibd_cnt; /* internal BD counter. */
|
356 |
|
|
CYG_WORD16 ibd_start; /* internal BD start pointer. */
|
357 |
|
|
CYG_WORD16 ibd_end; /* internal BD end pointer. */
|
358 |
|
|
CYG_WORD16 tx_len; /* tx frame length counter */
|
359 |
|
|
CYG_BYTE ibd_base[0x20]; /* internal micro code usage. */
|
360 |
|
|
CYG_WORD iaddr_h; /* individual address filter, high */
|
361 |
|
|
CYG_WORD iaddr_l; /* individual address filter, low */
|
362 |
|
|
CYG_WORD16 minflr; /* minimum frame length reg */
|
363 |
|
|
CYG_WORD16 taddr_h; /* temp address (MSB) */
|
364 |
|
|
CYG_WORD16 taddr_m; /* temp address */
|
365 |
|
|
CYG_WORD16 taddr_l; /* temp address (LSB) */
|
366 |
|
|
CYG_WORD16 pad_ptr; /* pad_ptr. */
|
367 |
|
|
CYG_WORD16 cf_type; /* flow control frame type coding. */
|
368 |
|
|
CYG_WORD16 cf_range; /* flow control frame range. */
|
369 |
|
|
CYG_WORD16 max_b; /* max buffer descriptor byte count. */
|
370 |
|
|
CYG_WORD16 maxd1; /* max DMA1 length register. */
|
371 |
|
|
CYG_WORD16 maxd2; /* max DMA2 length register. */
|
372 |
|
|
CYG_WORD16 maxd; /* Rx max DMA. */
|
373 |
|
|
CYG_WORD16 dma_cnt; /* Rx DMA counter. */
|
374 |
|
|
|
375 |
|
|
/* counter: */
|
376 |
|
|
CYG_WORD octc; /* received octets counter. */
|
377 |
|
|
CYG_WORD colc; /* estimated number of collisions */
|
378 |
|
|
CYG_WORD broc; /* received good packets of broadcast address */
|
379 |
|
|
CYG_WORD mulc; /* received good packets of multicast address */
|
380 |
|
|
CYG_WORD uspc; /* received packets shorter then 64 octets. */
|
381 |
|
|
CYG_WORD frgc; /* as uspc + bad packets */
|
382 |
|
|
CYG_WORD ospc; /* received packets longer then 1518 octets. */
|
383 |
|
|
CYG_WORD jbrc; /* as ospc + bad packets */
|
384 |
|
|
CYG_WORD p64c; /* received packets of 64 octets.. */
|
385 |
|
|
CYG_WORD p65c; /* received packets of 65-128 octets.. */
|
386 |
|
|
CYG_WORD p128c; /* received packets of 128-255 octets.. */
|
387 |
|
|
CYG_WORD p256c; /* received packets of 256-511 octets.. */
|
388 |
|
|
CYG_WORD p512c; /* received packets of 512-1023 octets.. */
|
389 |
|
|
CYG_WORD p1024c; /* received packets of 1024-1518 octets.. */
|
390 |
|
|
CYG_WORD cam_buf; /* cam respond internal buffer. */
|
391 |
|
|
CYG_WORD16 rfthr; /* received frames threshold */
|
392 |
|
|
CYG_WORD16 rfcnt; /* received frames count */
|
393 |
|
|
} _PackedType t_EnetFcc_Pram;
|
394 |
|
|
|
395 |
|
|
|
396 |
|
|
/*-----------------*/
|
397 |
|
|
/* FCC Common PRAM */
|
398 |
|
|
/*-----------------*/
|
399 |
|
|
|
400 |
|
|
typedef _Packed struct
|
401 |
|
|
{
|
402 |
|
|
CYG_WORD16 riptr; /* Rx internal temporary data pointer. */
|
403 |
|
|
CYG_WORD16 tiptr; /* Tx internal temporary data pointer. */
|
404 |
|
|
CYG_WORD16 reserved0; /* Reserved */
|
405 |
|
|
CYG_WORD16 mrblr; /* Rx buffer length */
|
406 |
|
|
CYG_WORD rstate; /* Rx internal state */
|
407 |
|
|
CYG_WORD rbase; /* RX BD base address */
|
408 |
|
|
CYG_WORD16 rbdstat; /* Rx BD status and control */
|
409 |
|
|
CYG_WORD16 rbdlen; /* Rx BD data length */
|
410 |
|
|
CYG_WORD rdptr; /* rx BD data pointer */
|
411 |
|
|
CYG_WORD tstate; /* Tx internal state */
|
412 |
|
|
CYG_WORD tbase; /* TX BD base address */
|
413 |
|
|
CYG_WORD16 tbdstat; /* Tx BD status and control */
|
414 |
|
|
CYG_WORD16 tbdlen; /* Tx BD data length */
|
415 |
|
|
CYG_WORD tdptr; /* Tx data pointer */
|
416 |
|
|
CYG_WORD rbptr; /* rx BD pointer */
|
417 |
|
|
CYG_WORD tbptr; /* Tx BD pointer */
|
418 |
|
|
CYG_WORD rcrc; /* Temp receive CRC */
|
419 |
|
|
CYG_WORD reserved_1[0x1];
|
420 |
|
|
CYG_WORD tcrc; /* Temp transmit CRC */
|
421 |
|
|
union /* Protocol-Specific parameter ram */
|
422 |
|
|
{
|
423 |
|
|
t_HdlcFcc_Pram h;
|
424 |
|
|
t_EnetFcc_Pram e;
|
425 |
|
|
} SpecificProtocol;
|
426 |
|
|
} _PackedType t_Fcc_Pram;
|
427 |
|
|
|
428 |
|
|
|
429 |
|
|
|
430 |
|
|
/*---------------------------------------------------------------------------*/
|
431 |
|
|
/* MULTICHANNEL COMMUNICATION CONTROLLER (MCC) */
|
432 |
|
|
/*---------------------------------------------------------------------------*/
|
433 |
|
|
|
434 |
|
|
/******************************************************************************
|
435 |
|
|
* Note that each MCC uses multiple logical channels. We first define the *
|
436 |
|
|
* PRAM for a logical channel (which can be used in either HDLC or Transparent *
|
437 |
|
|
* mode; wherever there are differences, it is specified), followed by the *
|
438 |
|
|
* PRAM for an MCC itself. *
|
439 |
|
|
******************************************************************************/
|
440 |
|
|
|
441 |
|
|
/*---------------------*/
|
442 |
|
|
/* MCC Logical Channel */
|
443 |
|
|
/*---------------------*/
|
444 |
|
|
|
445 |
|
|
typedef _Packed struct
|
446 |
|
|
{
|
447 |
|
|
CYG_WORD tstate; /* Tx internal state. */
|
448 |
|
|
CYG_WORD zistate; /* Zero insertion machine state. */
|
449 |
|
|
CYG_WORD zidata0; /* Zero insertion high CYG_WORD16. */
|
450 |
|
|
CYG_WORD zidata1; /* Zero insertion low CYG_WORD16. */
|
451 |
|
|
CYG_WORD16 tbdflags; /* Tx internal BD flags. */
|
452 |
|
|
CYG_WORD16 tbdcnt; /* Tx internal byte count . */
|
453 |
|
|
CYG_WORD tbdptr; /* Tx internal data pointer. */
|
454 |
|
|
CYG_WORD16 intmask; /* Interrupt mask flags. */
|
455 |
|
|
CYG_WORD16 chamr; /* channel mode register. */
|
456 |
|
|
CYG_WORD tcrc; /* Transparent: reserved. */
|
457 |
|
|
/* Hdlc: Temp receive CRC.*/
|
458 |
|
|
CYG_WORD rstate; /* Rx internal state. */
|
459 |
|
|
CYG_WORD zdstate; /* Zero deletion machine state. */
|
460 |
|
|
CYG_WORD zddata0; /* Zero deletion high CYG_WORD16. */
|
461 |
|
|
CYG_WORD zddata1; /* Zero deletion low CYG_WORD16. */
|
462 |
|
|
CYG_WORD16 rbdflags; /* Rx internal BD flags. */
|
463 |
|
|
CYG_WORD16 rbdcnt; /* Rx internal byte count . */
|
464 |
|
|
CYG_WORD rbdptr; /* Rx internal data pointer. */
|
465 |
|
|
CYG_WORD16 maxrlen; /* Transparent: Max receive buffer length. */
|
466 |
|
|
/* Hdlc: Max receive frame length. */
|
467 |
|
|
CYG_WORD16 sync_maxcnt;/* Transparent: Receive synchronization pattern*/
|
468 |
|
|
/* Hdlc: Max length counter. */
|
469 |
|
|
CYG_WORD rcrc; /* Transparent: reserved. */
|
470 |
|
|
/* Hdlc: Temp receive CRC.*/
|
471 |
|
|
} _PackedType t_Mch_Pram;
|
472 |
|
|
|
473 |
|
|
|
474 |
|
|
/*----------*/
|
475 |
|
|
/* MCC PRAM */
|
476 |
|
|
/*----------*/
|
477 |
|
|
|
478 |
|
|
typedef _Packed struct
|
479 |
|
|
{
|
480 |
|
|
CYG_WORD mccbase; /* A pointer to starting address of BD rings. */
|
481 |
|
|
CYG_WORD16 mccstate; /* Controller state. */
|
482 |
|
|
CYG_WORD16 mrblr; /* Maximum receive buffer length. */
|
483 |
|
|
CYG_WORD16 grfthr; /* Global receive frame threshold. */
|
484 |
|
|
CYG_WORD16 grfcnt; /* Global receive frame counter. */
|
485 |
|
|
CYG_WORD rinttmp; /* Temp location for receive interrupt table entry. */
|
486 |
|
|
CYG_WORD data0; /* Temporary location for holding data. */
|
487 |
|
|
CYG_WORD data1; /* Temporary location for holding data. */
|
488 |
|
|
CYG_WORD tintbase; /* Transmit interrupt table base address. */
|
489 |
|
|
CYG_WORD tintptr; /* Transmit interrupt table pointer. */
|
490 |
|
|
CYG_WORD tinttmp; /* Temp location for receive interrupt table entry. */
|
491 |
|
|
CYG_WORD16 sctpbase; /* A pointer to the super channel transmit table*/
|
492 |
|
|
CYG_BYTE res0[0x2]; /* Reserved area */
|
493 |
|
|
CYG_WORD c_mask32; /* CRC constant. */
|
494 |
|
|
CYG_WORD16 xtrabase; /* A pointer to the beginning of extra parameters */
|
495 |
|
|
CYG_WORD16 c_mask16; /* CRC constant. */
|
496 |
|
|
CYG_WORD rinttmp0; /* Temp location for receive interrupt table entry. */
|
497 |
|
|
CYG_WORD rinttmp1; /* Temp location for receive interrupt table entry. */
|
498 |
|
|
CYG_WORD rinttmp2; /* Temp location for receive interrupt table entry. */
|
499 |
|
|
CYG_WORD rinttmp3; /* Temp location for receive interrupt table entry. */
|
500 |
|
|
CYG_WORD rintbase0; /* Receive interrupt table base address. */
|
501 |
|
|
CYG_WORD rintptr0; /* Receive interrupt table pointer. */
|
502 |
|
|
CYG_WORD rintbase1; /* Receive interrupt table base address. */
|
503 |
|
|
CYG_WORD rintptr1; /* Receive interrupt table pointer. */
|
504 |
|
|
CYG_WORD rintbase2; /* Receive interrupt table base address. */
|
505 |
|
|
CYG_WORD rintptr2; /* Receive interrupt table pointer. */
|
506 |
|
|
CYG_WORD rintbase3; /* Receive interrupt table base address. */
|
507 |
|
|
CYG_WORD rintptr3; /* Receive interrupt table pointer. */
|
508 |
|
|
CYG_BYTE pad[0xa0];
|
509 |
|
|
} _PackedType t_Mcc_Pram;
|
510 |
|
|
|
511 |
|
|
|
512 |
|
|
|
513 |
|
|
/*---------------------------------------------------------------------------*/
|
514 |
|
|
/* ATM PARAMETER RAM */
|
515 |
|
|
/*---------------------------------------------------------------------------*/
|
516 |
|
|
|
517 |
|
|
|
518 |
|
|
/*--------------------------------------*/
|
519 |
|
|
/* Address Compression parameters table */
|
520 |
|
|
/*--------------------------------------*/
|
521 |
|
|
|
522 |
|
|
_Packed struct AddressCompressionPram
|
523 |
|
|
{
|
524 |
|
|
volatile CYG_WORD VptBase; /* VP-level addressing table base address */
|
525 |
|
|
volatile CYG_WORD VctBase; /* VC-level addressing table base address */
|
526 |
|
|
volatile CYG_WORD Vpt1Base; /* VP1-level addressing table base address */
|
527 |
|
|
volatile CYG_WORD Vct1Base; /* VC1-level addressing table base address */
|
528 |
|
|
volatile CYG_WORD16 VpMask; /* VP mask for address compression look-up */
|
529 |
|
|
} _PackedType;
|
530 |
|
|
|
531 |
|
|
|
532 |
|
|
/*-------------------------------*/
|
533 |
|
|
/* External CAM parameters table */
|
534 |
|
|
/*-------------------------------*/
|
535 |
|
|
|
536 |
|
|
_Packed struct ExtCamPram
|
537 |
|
|
{
|
538 |
|
|
volatile CYG_WORD ExtCamBase; /* Base address of the external CAM */
|
539 |
|
|
volatile CYG_BYTE reserved00[4]; /* Reserved */
|
540 |
|
|
volatile CYG_WORD ExtCam1Base; /* Base address of the external CAM1 */
|
541 |
|
|
volatile CYG_BYTE reserved01[6]; /* Reserved */
|
542 |
|
|
} _PackedType;
|
543 |
|
|
|
544 |
|
|
|
545 |
|
|
/*---------------------------*/
|
546 |
|
|
/* ATM mode parameters table */
|
547 |
|
|
/*---------------------------*/
|
548 |
|
|
|
549 |
|
|
typedef _Packed struct AtmPram
|
550 |
|
|
{
|
551 |
|
|
volatile CYG_BYTE reserved0[64]; /* Reserved */
|
552 |
|
|
volatile CYG_WORD16 RxCellTmpBase; /* Rx cell temporary base address */
|
553 |
|
|
volatile CYG_WORD16 TxCellTmpBase; /* Tx cell temporary base address */
|
554 |
|
|
volatile CYG_WORD16 UdcTmpBase; /* UDC temp base address (in UDC mode only) */
|
555 |
|
|
volatile CYG_WORD16 IntRctBase; /* Internal RTC base address */
|
556 |
|
|
volatile CYG_WORD16 IntTctBase; /* Internal TCT base address */
|
557 |
|
|
volatile CYG_WORD16 IntTcteBase; /* Internal ACT base address */
|
558 |
|
|
volatile CYG_BYTE reserved1[4]; /* reserved four bytes */
|
559 |
|
|
volatile CYG_WORD ExtRctBase; /* Extrnal RTC base address */
|
560 |
|
|
volatile CYG_WORD ExtTctBase; /* Extrnal TCT base address */
|
561 |
|
|
volatile CYG_WORD ExtTcteBase; /* Extrnal ACT base address */
|
562 |
|
|
volatile CYG_WORD16 UeadOffset; /* The offset in half-wordunits of the UEAD
|
563 |
|
|
entry in the UDC extra header. Should be
|
564 |
|
|
even address. If little-endian format is
|
565 |
|
|
used, the UeadOffset is of the little-endian
|
566 |
|
|
format. */
|
567 |
|
|
volatile CYG_BYTE reserved2[2]; /* Reserved */
|
568 |
|
|
volatile CYG_WORD16 PmtBase; /* Performance monitoring table base address */
|
569 |
|
|
volatile CYG_WORD16 ApcParamBase; /* APC Parameters table base address */
|
570 |
|
|
volatile CYG_WORD16 FbpParamBase; /* Free buffer pool parameters base address */
|
571 |
|
|
volatile CYG_WORD16 IntQParamBase; /* Interrupt queue parameters table base */
|
572 |
|
|
volatile CYG_BYTE reserved3[2];
|
573 |
|
|
volatile CYG_WORD16 UniStatTableBase; /* UNI statistics table base */
|
574 |
|
|
volatile CYG_WORD BdBaseExt; /* BD ring base address extension */
|
575 |
|
|
union
|
576 |
|
|
{
|
577 |
|
|
struct AddressCompressionPram AddrCompression;
|
578 |
|
|
struct ExtCamPram ExtCam;
|
579 |
|
|
} AddrMapping; /* Address look-up mechanism */
|
580 |
|
|
volatile CYG_WORD16 VciFiltering; /* VCI filtering enable bits. If bit i is set,
|
581 |
|
|
the cell with VCI=i will be sent to the
|
582 |
|
|
raw cell queue. The bits 0-2 and 5 should
|
583 |
|
|
be zero. */
|
584 |
|
|
volatile CYG_WORD16 Gmode; /* Global mode */
|
585 |
|
|
volatile CYG_WORD16 CommInfo1; /* The information field associated with the */
|
586 |
|
|
volatile CYG_WORD CommInfo2; /* last host command */
|
587 |
|
|
volatile CYG_BYTE reserved4[4]; /* Reserved */
|
588 |
|
|
volatile CYG_WORD CRC32Preset; /* Preset for CRC32 */
|
589 |
|
|
volatile CYG_WORD CRC32Mask; /* Constant mask for CRC32 */
|
590 |
|
|
volatile CYG_WORD16 AAL1SnpTableBase; /* AAl1 SNP protection look-up table base */
|
591 |
|
|
volatile CYG_WORD16 reserved5; /* Reserved */
|
592 |
|
|
volatile CYG_WORD SrtsBase; /* External SRTS logic base address. For AAL1
|
593 |
|
|
only. Should be 16 bytes aligned */
|
594 |
|
|
volatile CYG_WORD16 IdleBase; /* Idle cell base address */
|
595 |
|
|
volatile CYG_WORD16 IdleSize; /* Idle cell size: 52, 56, 60, 64 */
|
596 |
|
|
volatile CYG_WORD EmptyCellPayload; /* Empty cell payload (little-indian) */
|
597 |
|
|
|
598 |
|
|
/* ABR specific only */
|
599 |
|
|
volatile CYG_WORD Trm; /* Upper bound on time between F-RM cells for active source */
|
600 |
|
|
volatile CYG_WORD16 Nrm; /* Controls the maximum data cells sent for each F-RM cell. */
|
601 |
|
|
volatile CYG_WORD16 Mrm; /* Controls bandwidth between F-RM, B-RM and user data cell */
|
602 |
|
|
volatile CYG_WORD16 Tcr; /* Tag cell rate */
|
603 |
|
|
volatile CYG_WORD16 AbrRxTcte; /* ABR reserved area address (2-CYG_WORD16 aligned)*/
|
604 |
|
|
volatile CYG_BYTE reserved7[76]; /* Reserved */
|
605 |
|
|
} _PackedType t_Atm_Pram;
|
606 |
|
|
|
607 |
|
|
|
608 |
|
|
|
609 |
|
|
/*---------------------------------------------------------------------------*/
|
610 |
|
|
/* SERIAL MANAGEMENT CHANNEL (SMC) */
|
611 |
|
|
/*---------------------------------------------------------------------------*/
|
612 |
|
|
|
613 |
|
|
typedef _Packed struct
|
614 |
|
|
{
|
615 |
|
|
CYG_WORD16 rbase; /* Rx BD Base Address */
|
616 |
|
|
CYG_WORD16 tbase; /* Tx BD Base Address */
|
617 |
|
|
CYG_BYTE rfcr; /* Rx function code */
|
618 |
|
|
CYG_BYTE tfcr; /* Tx function code */
|
619 |
|
|
CYG_WORD16 mrblr; /* Rx buffer length */
|
620 |
|
|
CYG_WORD rstate; /* Rx internal state */
|
621 |
|
|
CYG_WORD rptr; /* Rx internal data pointer */
|
622 |
|
|
CYG_WORD16 rbptr; /* rb BD Pointer */
|
623 |
|
|
CYG_WORD16 rcount; /* Rx internal byte count */
|
624 |
|
|
CYG_WORD rtemp; /* Rx temp */
|
625 |
|
|
CYG_WORD tstate; /* Tx internal state */
|
626 |
|
|
CYG_WORD tptr; /* Tx internal data pointer */
|
627 |
|
|
CYG_WORD16 tbptr; /* Tx BD pointer */
|
628 |
|
|
CYG_WORD16 tcount; /* Tx byte count */
|
629 |
|
|
CYG_WORD ttemp; /* Tx temp */
|
630 |
|
|
|
631 |
|
|
/* SMC UART-specific PRAM */
|
632 |
|
|
CYG_WORD16 max_idl; /* Maximum IDLE Characters */
|
633 |
|
|
CYG_WORD16 idlc; /* Temporary IDLE Counter */
|
634 |
|
|
CYG_WORD16 brkln; /* Last Rx Break Length */
|
635 |
|
|
CYG_WORD16 brkec; /* Rx Break Condition Counter */
|
636 |
|
|
CYG_WORD16 brkcr; /* Break Count Register (Tx) */
|
637 |
|
|
CYG_WORD16 r_mask; /* Temporary bit mask */
|
638 |
|
|
|
639 |
|
|
} _PackedType t_Smc_Pram;
|
640 |
|
|
|
641 |
|
|
|
642 |
|
|
|
643 |
|
|
/*---------------------------------------------------------------------------*/
|
644 |
|
|
/* IDMA PARAMETER RAM */
|
645 |
|
|
/*---------------------------------------------------------------------------*/
|
646 |
|
|
|
647 |
|
|
typedef _Packed struct
|
648 |
|
|
{
|
649 |
|
|
CYG_WORD16 ibase; /* IDMA BD Base Address */
|
650 |
|
|
CYG_WORD16 dcm; /* DMA channel mode register */
|
651 |
|
|
CYG_WORD16 ibdptr; /* next bd ptr */
|
652 |
|
|
CYG_WORD16 DPR_buf; /* ptr to internal 64 byte buffer */
|
653 |
|
|
CYG_WORD16 BUF_inv; /* The quantity of data in DPR_buf */
|
654 |
|
|
CYG_WORD16 SS_max; /* Steady State Max. transfer size */
|
655 |
|
|
CYG_WORD16 DPR_in_ptr; /* write ptr for the internal buffer */
|
656 |
|
|
CYG_WORD16 sts; /* Source Transfer Size */
|
657 |
|
|
CYG_WORD16 DPR_out_ptr; /* read ptr for the internal buffer */
|
658 |
|
|
CYG_WORD16 seob; /* Source end of burst */
|
659 |
|
|
CYG_WORD16 deob; /* Destination end of burst */
|
660 |
|
|
CYG_WORD16 dts; /* Destination Transfer Size */
|
661 |
|
|
CYG_WORD16 RetAdd; /* return address when ERM==1 */
|
662 |
|
|
CYG_WORD16 Reserved; /* reserved */
|
663 |
|
|
CYG_WORD BD_cnt; /* Internal byte count */
|
664 |
|
|
CYG_WORD S_ptr; /* source internal data ptr */
|
665 |
|
|
CYG_WORD D_ptr; /* destination internal data ptr */
|
666 |
|
|
CYG_WORD istate; /* Internal state */
|
667 |
|
|
|
668 |
|
|
} _PackedType t_Idma_Pram;
|
669 |
|
|
|
670 |
|
|
|
671 |
|
|
|
672 |
|
|
/*-------------------------------------------------------------------*/
|
673 |
|
|
/* INTER-INTEGRATED CIRCUIT (I2C) */
|
674 |
|
|
/*-------------------------------------------------------------------*/
|
675 |
|
|
|
676 |
|
|
typedef _Packed struct
|
677 |
|
|
{
|
678 |
|
|
CYG_WORD16 rbase; /* RX BD base address */
|
679 |
|
|
CYG_WORD16 tbase; /* TX BD base address */
|
680 |
|
|
CYG_BYTE rfcr; /* Rx function code */
|
681 |
|
|
CYG_BYTE tfcr; /* Tx function code */
|
682 |
|
|
CYG_WORD16 mrblr; /* Rx buffer length */
|
683 |
|
|
CYG_WORD rstate; /* Rx internal state */
|
684 |
|
|
CYG_WORD rptr; /* Rx internal data pointer */
|
685 |
|
|
CYG_WORD16 rbptr; /* rb BD Pointer */
|
686 |
|
|
CYG_WORD16 rcount; /* Rx internal byte count */
|
687 |
|
|
CYG_WORD rtemp; /* Rx temp */
|
688 |
|
|
CYG_WORD tstate; /* Tx internal state */
|
689 |
|
|
CYG_WORD tptr; /* Tx internal data pointer */
|
690 |
|
|
CYG_WORD16 tbptr; /* Tx BD pointer */
|
691 |
|
|
CYG_WORD16 tcount; /* Tx byte count */
|
692 |
|
|
CYG_WORD ttemp; /* Tx temp */
|
693 |
|
|
|
694 |
|
|
} _PackedType t_I2c_Pram;
|
695 |
|
|
|
696 |
|
|
|
697 |
|
|
|
698 |
|
|
/*---------------------------------------------------------------------------*/
|
699 |
|
|
/* SERIAL PERIPHERAL INTERFACE (SPI) */
|
700 |
|
|
/*---------------------------------------------------------------------------*/
|
701 |
|
|
|
702 |
|
|
typedef _Packed struct
|
703 |
|
|
{
|
704 |
|
|
CYG_WORD16 rbase; /* Rx BD Base Address */
|
705 |
|
|
CYG_WORD16 tbase; /* Tx BD Base Address */
|
706 |
|
|
CYG_BYTE rfcr; /* Rx function code */
|
707 |
|
|
CYG_BYTE tfcr; /* Tx function code */
|
708 |
|
|
CYG_WORD16 mrblr; /* Rx buffer length */
|
709 |
|
|
CYG_WORD rstate; /* Rx internal state */
|
710 |
|
|
CYG_WORD rptr; /* Rx internal data pointer */
|
711 |
|
|
CYG_WORD16 rbptr; /* Rx BD Pointer */
|
712 |
|
|
CYG_WORD16 rcount; /* Rx internal byte count */
|
713 |
|
|
CYG_WORD rtemp; /* Rx temp */
|
714 |
|
|
CYG_WORD tstate; /* Tx internal state */
|
715 |
|
|
CYG_WORD tptr; /* Tx internal data pointer */
|
716 |
|
|
CYG_WORD16 tbptr; /* Tx BD pointer */
|
717 |
|
|
CYG_WORD16 tcount; /* Tx byte count */
|
718 |
|
|
CYG_WORD ttemp; /* Tx temp */
|
719 |
|
|
CYG_BYTE reserved[8];
|
720 |
|
|
|
721 |
|
|
} _PackedType t_Spi_Pram;
|
722 |
|
|
|
723 |
|
|
|
724 |
|
|
|
725 |
|
|
/*---------------------------------------------------------------------------*/
|
726 |
|
|
/* RISC TIMER PARAMETER RAM */
|
727 |
|
|
/*---------------------------------------------------------------------------*/
|
728 |
|
|
|
729 |
|
|
typedef _Packed struct
|
730 |
|
|
{
|
731 |
|
|
|
732 |
|
|
CYG_WORD16 tm_base; /* RISC timer table base adr */
|
733 |
|
|
CYG_WORD16 tm_ptr; /* RISC timer table pointer */
|
734 |
|
|
CYG_WORD16 r_tmr; /* RISC timer mode register */
|
735 |
|
|
CYG_WORD16 r_tmv; /* RISC timer valid register */
|
736 |
|
|
CYG_WORD tm_cmd; /* RISC timer cmd register */
|
737 |
|
|
CYG_WORD tm_cnt; /* RISC timer internal cnt */
|
738 |
|
|
} _PackedType t_timer_pram;
|
739 |
|
|
|
740 |
|
|
|
741 |
|
|
|
742 |
|
|
/*--------------------------------------------------------------------------*/
|
743 |
|
|
/* ROM MICROCODE PARAMETER RAM AREA */
|
744 |
|
|
/*--------------------------------------------------------------------------*/
|
745 |
|
|
|
746 |
|
|
typedef _Packed struct
|
747 |
|
|
{
|
748 |
|
|
CYG_WORD16 rev_num; /* Ucode Revision Number */
|
749 |
|
|
CYG_WORD16 d_ptr; /* MISC Dump area pointer */
|
750 |
|
|
} _PackedType t_ucode_pram;
|
751 |
|
|
|
752 |
|
|
/*--------------------------------------------------------------------------*/
|
753 |
|
|
/* MAIN DEFINITION OF MPC8260 INTERNAL MEMORY MAP */
|
754 |
|
|
/*--------------------------------------------------------------------------*/
|
755 |
|
|
|
756 |
|
|
typedef _Packed struct
|
757 |
|
|
{
|
758 |
|
|
|
759 |
|
|
/* cpm_ram */
|
760 |
|
|
t_Mch_Pram mch_pram[256]; /* MCC logical channels parameter ram */
|
761 |
|
|
volatile CYG_BYTE reserved0[0x4000]; /* Reserved area */
|
762 |
|
|
|
763 |
|
|
/* DPR_BASE+0x8000*/
|
764 |
|
|
union
|
765 |
|
|
{
|
766 |
|
|
|
767 |
|
|
/*for access to the PRAM structs for SCCs, FCCs, and MCCs */
|
768 |
|
|
struct serials
|
769 |
|
|
{
|
770 |
|
|
t_Scc_Pram scc_pram[4];
|
771 |
|
|
t_Fcc_Pram fcc_pram[3];
|
772 |
|
|
t_Mcc_Pram mcc_pram[2];
|
773 |
|
|
volatile CYG_BYTE reserved1[0x700];
|
774 |
|
|
} serials;
|
775 |
|
|
|
776 |
|
|
/* for access to ATM PRAM structs */
|
777 |
|
|
struct atm
|
778 |
|
|
{
|
779 |
|
|
volatile CYG_BYTE reserved2[0x400];
|
780 |
|
|
t_Atm_Pram atm_pram[2];
|
781 |
|
|
volatile CYG_BYTE reserved3[0xa00];
|
782 |
|
|
} atm;
|
783 |
|
|
|
784 |
|
|
/* for access to the memory locations holding user-defined
|
785 |
|
|
base addresses of PRAM for SMCs, IDMA, SPI, and I2C. */
|
786 |
|
|
struct standard
|
787 |
|
|
{
|
788 |
|
|
volatile CYG_BYTE scc1[0x100];
|
789 |
|
|
volatile CYG_BYTE scc2[0x100];
|
790 |
|
|
volatile CYG_BYTE scc3[0x100];
|
791 |
|
|
volatile CYG_BYTE scc4[0x100];
|
792 |
|
|
volatile CYG_BYTE fcc1[0x100];
|
793 |
|
|
volatile CYG_BYTE fcc2[0x100];
|
794 |
|
|
volatile CYG_BYTE fcc3[0x100];
|
795 |
|
|
volatile CYG_BYTE mcc1[0x80];
|
796 |
|
|
volatile CYG_BYTE reserved_0[0x7c];
|
797 |
|
|
volatile CYG_BYTE smc1[0x2];
|
798 |
|
|
volatile CYG_BYTE idma1[0x2];
|
799 |
|
|
volatile CYG_BYTE mcc2[0x80];
|
800 |
|
|
volatile CYG_BYTE reserved_1[0x7c];
|
801 |
|
|
volatile CYG_BYTE smc2[0x2];
|
802 |
|
|
volatile CYG_BYTE idma2[0x2];
|
803 |
|
|
volatile CYG_BYTE reserved_2[0xfc];
|
804 |
|
|
volatile CYG_BYTE spi[0x2];
|
805 |
|
|
volatile CYG_BYTE idma3[0x2];
|
806 |
|
|
volatile CYG_BYTE reserved_3[0xe0];
|
807 |
|
|
volatile CYG_BYTE timers[0x10];
|
808 |
|
|
volatile CYG_BYTE Rev_num[0x2];
|
809 |
|
|
volatile CYG_BYTE D_ptr[0x2];
|
810 |
|
|
volatile CYG_BYTE reserved_4[0x4];
|
811 |
|
|
volatile CYG_BYTE rand[0x4];
|
812 |
|
|
volatile CYG_BYTE i2c[0x2];
|
813 |
|
|
volatile CYG_BYTE idma4[0x2];
|
814 |
|
|
volatile CYG_BYTE reserved_5[0x500];
|
815 |
|
|
} standard;
|
816 |
|
|
|
817 |
|
|
} pram;
|
818 |
|
|
|
819 |
|
|
volatile CYG_BYTE reserved11[0x2000]; /* Reserved area */
|
820 |
|
|
volatile CYG_BYTE cpm_ram_dpram_2[0x1000]; /* Internal RAM */
|
821 |
|
|
volatile CYG_BYTE reserved12[0x4000]; /* Reserved area */
|
822 |
|
|
|
823 |
|
|
/* siu */
|
824 |
|
|
volatile CYG_WORD siu_siumcr; /* SIU Module Configuration Register */
|
825 |
|
|
volatile CYG_WORD siu_sypcr; /* System Protection Control Register */
|
826 |
|
|
volatile CYG_BYTE reserved13[0x6]; /* Reserved area */
|
827 |
|
|
volatile CYG_WORD16 siu_swsr; /* Software Service Register */
|
828 |
|
|
|
829 |
|
|
/* buses */
|
830 |
|
|
volatile CYG_BYTE reserved14[0x14]; /* Reserved area */
|
831 |
|
|
volatile CYG_WORD bcr; /* Bus Configuration Register */
|
832 |
|
|
volatile CYG_BYTE ppc_acr; /* Arbiter Configuration Register */
|
833 |
|
|
volatile CYG_BYTE reserved15[0x3]; /* Reserved area */
|
834 |
|
|
volatile CYG_WORD ppc_alrh; /* Arbitration level Register (First clients)*/
|
835 |
|
|
volatile CYG_WORD ppc_alrl; /* Arbitration Level Register (Next clients) */
|
836 |
|
|
volatile CYG_BYTE lcl_acr; /* LCL Arbiter Configuration Register */
|
837 |
|
|
volatile CYG_BYTE reserved16[0x3]; /* Reserved area */
|
838 |
|
|
volatile CYG_WORD lcl_alrh; /* LCL Arbitration level Register (First clients)*/
|
839 |
|
|
volatile CYG_WORD lcl_alrl; /* LCL Arbitration Level Register (Next clients) */
|
840 |
|
|
volatile CYG_WORD tescr1; /* PPC bus transfer error status control register 1 */
|
841 |
|
|
volatile CYG_WORD tescr2; /* PPC bus transfer error status control register 2 */
|
842 |
|
|
volatile CYG_WORD ltescr1; /* Local bus transfer error status control register 1 */
|
843 |
|
|
volatile CYG_WORD ltescr2; /* Local bus transfer error status control register 2 */
|
844 |
|
|
volatile CYG_WORD pdtea; /* PPC bus DMA Transfer Error Address */
|
845 |
|
|
volatile CYG_BYTE pdtem; /* PPC bus DMA Transfer Error MSNUM */
|
846 |
|
|
volatile CYG_BYTE reserved17[0x3]; /* Reserved area */
|
847 |
|
|
volatile CYG_WORD ldtea; /* PPC bus DMA Transfer Error Address */
|
848 |
|
|
volatile CYG_BYTE ldtem; /* PPC bus DMA Transfer Error MSNUM */
|
849 |
|
|
volatile CYG_BYTE reserved18[0xa3]; /* Reserved area */
|
850 |
|
|
|
851 |
|
|
/* memc */
|
852 |
|
|
struct mem_regs
|
853 |
|
|
{
|
854 |
|
|
volatile CYG_WORD memc_br; /* Base Register */
|
855 |
|
|
volatile CYG_WORD memc_or; /* Option Register */
|
856 |
|
|
} mem_regs[12];
|
857 |
|
|
volatile CYG_BYTE reserved19[0x8]; /* Reserved area */
|
858 |
|
|
volatile CYG_WORD memc_mar; /* Memory Address Register */
|
859 |
|
|
volatile CYG_BYTE reserved20[0x4]; /* Reserved area */
|
860 |
|
|
volatile CYG_WORD memc_mamr; /* Machine A Mode Register */
|
861 |
|
|
volatile CYG_WORD memc_mbmr; /* Machine B Mode Register */
|
862 |
|
|
volatile CYG_WORD memc_mcmr; /* Machine C Mode Register */
|
863 |
|
|
volatile CYG_WORD memc_mdmr; /* Machine D Mode Register */
|
864 |
|
|
volatile CYG_BYTE reserved21[0x4]; /* Reserved area */
|
865 |
|
|
volatile CYG_WORD16 memc_mptpr; /* Memory Periodic Timer Prescaler */
|
866 |
|
|
volatile CYG_BYTE reserved22[0x2]; /* Reserved area */
|
867 |
|
|
volatile CYG_WORD memc_mdr; /* Memory Data Register */
|
868 |
|
|
volatile CYG_BYTE reserved23[0x4]; /* Reserved area */
|
869 |
|
|
volatile CYG_WORD memc_psdmr; /* PowerPC Bus SDRAM machine Mode Register */
|
870 |
|
|
volatile CYG_WORD memc_lsdmr; /* Local Bus SDRAM machine Mode Registe */
|
871 |
|
|
volatile CYG_BYTE memc_purt; /* PowerPC Bus assigned UPM Refresh Timer */
|
872 |
|
|
volatile CYG_BYTE reserved24[0x3]; /* Reserved area */
|
873 |
|
|
volatile CYG_BYTE memc_psrt; /* PowerPC BusBus assigned SDRAM Refresh Timer */
|
874 |
|
|
volatile CYG_BYTE reserved25[0x3]; /* Reserved area */
|
875 |
|
|
volatile CYG_BYTE memc_lurt; /* Local Bus assigned UPM Refresh Timer */
|
876 |
|
|
volatile CYG_BYTE reserved26[0x3]; /* Reserved area */
|
877 |
|
|
volatile CYG_BYTE memc_lsrt; /* Local Bus assigned SDRAM Refresh Timer */
|
878 |
|
|
volatile CYG_BYTE reserved27[0x3]; /* Reserved area */
|
879 |
|
|
volatile CYG_WORD memc_immr; /* Internal Memory Map Register */
|
880 |
|
|
|
881 |
|
|
/* pci */
|
882 |
|
|
volatile CYG_WORD pcibr0; /* Base address+valid for PCI window 1 */
|
883 |
|
|
volatile CYG_WORD pcibr1; /* Base address+valid for PCI window 2 */
|
884 |
|
|
volatile CYG_BYTE reserved28[0x10]; /* Reserved area */
|
885 |
|
|
volatile CYG_WORD pcimsk0; /* Mask for PCI window 1 */
|
886 |
|
|
volatile CYG_WORD pcimsk1; /* Mask for PCI window 2 */
|
887 |
|
|
volatile CYG_BYTE reserved29[0x54]; /* Reserved area */
|
888 |
|
|
|
889 |
|
|
/* si_timers */
|
890 |
|
|
volatile CYG_WORD16 si_timers_tmcntsc; /* Time Counter Status and Control Register */
|
891 |
|
|
volatile CYG_BYTE reserved30[0x2]; /* Reserved area */
|
892 |
|
|
volatile CYG_WORD si_timers_tmcnt; /* Time Counter Register */
|
893 |
|
|
volatile CYG_WORD si_timers_tmcntsec; /* Time Counter Seconds*/
|
894 |
|
|
volatile CYG_WORD si_timers_tmcntal; /* Time Counter Alarm Register */
|
895 |
|
|
volatile CYG_BYTE reserved31[0x10]; /* Reserved area */
|
896 |
|
|
volatile CYG_WORD16 si_timers_piscr; /* Periodic Interrupt Status and Control Reg. */
|
897 |
|
|
volatile CYG_BYTE reserved32[0x2]; /* Reserved area */
|
898 |
|
|
volatile CYG_WORD si_timers_pitc; /* Periodic Interrupt Count Register */
|
899 |
|
|
volatile CYG_WORD si_timers_pitr; /* Periodic Interrupt Timer Register */
|
900 |
|
|
volatile CYG_BYTE reserved33[0x54]; /* Reserved area */
|
901 |
|
|
|
902 |
|
|
/* test module registers */
|
903 |
|
|
volatile CYG_WORD tstmhr;
|
904 |
|
|
volatile CYG_WORD tstmlr;
|
905 |
|
|
volatile CYG_WORD16 tster;
|
906 |
|
|
volatile CYG_BYTE reserved34[0x156]; /* Reserved area */
|
907 |
|
|
|
908 |
|
|
/* pci, part 2 */
|
909 |
|
|
volatile CYG_WORD pci_pci; /* PCI Configuration space */
|
910 |
|
|
volatile CYG_BYTE reserved35[0x7fc]; /* Reserved area */
|
911 |
|
|
|
912 |
|
|
/* ic */
|
913 |
|
|
volatile CYG_WORD16 ic_sicr; /* Interrupt Configuration Register */
|
914 |
|
|
volatile CYG_BYTE reserved36[0x2]; /* Reserved area */
|
915 |
|
|
volatile CYG_WORD ic_sivec; /* CP Interrupt Vector Register */
|
916 |
|
|
volatile CYG_WORD ic_sipnr_h; /* Interrupt Pending Register (HIGH) */
|
917 |
|
|
volatile CYG_WORD ic_sipnr_l; /* Interrupt Pending Register (LOW) */
|
918 |
|
|
volatile CYG_WORD ic_siprr; /* SIU Interrupt Priority Register */
|
919 |
|
|
volatile CYG_WORD ic_scprr_h; /* Interrupt Priority Register (HIGH) */
|
920 |
|
|
volatile CYG_WORD ic_scprr_l; /* Interrupt Priority Register (LOW) */
|
921 |
|
|
volatile CYG_WORD ic_simr_h; /* Interrupt Mask Register (HIGH) */
|
922 |
|
|
volatile CYG_WORD ic_simr_l; /* Interrupt Mask Register (LOW) */
|
923 |
|
|
volatile CYG_WORD ic_siexr; /* External Interrupt Control Register */
|
924 |
|
|
volatile CYG_BYTE reserved37[0x58]; /* Reserved area */
|
925 |
|
|
|
926 |
|
|
/* clocks */
|
927 |
|
|
volatile CYG_WORD clocks_sccr; /* System Clock Control Register */
|
928 |
|
|
volatile CYG_BYTE reserved38[0x4]; /* Reserved area */
|
929 |
|
|
volatile CYG_WORD clocks_scmr; /* System Clock Mode Register */
|
930 |
|
|
volatile CYG_BYTE reserved39[0x4]; /* Reserved area */
|
931 |
|
|
volatile CYG_WORD clocks_rsr; /* Reset Status Register */
|
932 |
|
|
volatile CYG_WORD clocks_rmr; /* Reset Moode Register */
|
933 |
|
|
volatile CYG_BYTE reserved40[0x68]; /* Reserved area */
|
934 |
|
|
|
935 |
|
|
/* io_ports */
|
936 |
|
|
struct io_regs
|
937 |
|
|
{
|
938 |
|
|
volatile CYG_WORD pdir; /* Port A-D Data Direction Register */
|
939 |
|
|
volatile CYG_WORD ppar; /* Port A-D Pin Assignment Register */
|
940 |
|
|
volatile CYG_WORD psor; /* Port A-D Special Operation Register */
|
941 |
|
|
volatile CYG_WORD podr; /* Port A-D Open Drain Register */
|
942 |
|
|
volatile CYG_WORD pdat; /* Port A-D Data Register */
|
943 |
|
|
volatile CYG_BYTE reserved41[0xc]; /* Reserved area */
|
944 |
|
|
} io_regs[4];
|
945 |
|
|
|
946 |
|
|
/* cpm_timers */
|
947 |
|
|
volatile CYG_BYTE cpm_timers_tgcr1; /* Timer Global Configuration Register */
|
948 |
|
|
volatile CYG_BYTE reserved42[0x3]; /* Reserved area */
|
949 |
|
|
volatile CYG_BYTE cpm_timers_tgcr2; /* Timer Global Configuration Register */
|
950 |
|
|
volatile CYG_BYTE reserved43[0xb]; /* Reserved area */
|
951 |
|
|
volatile CYG_WORD16 cpm_timers_tmr1; /* Timer Mode Register */
|
952 |
|
|
volatile CYG_WORD16 cpm_timers_tmr2; /* Timer Mode Register */
|
953 |
|
|
volatile CYG_WORD16 cpm_timers_trr1; /* Timer Reference Register */
|
954 |
|
|
volatile CYG_WORD16 cpm_timers_trr2; /* Timer Reference Register */
|
955 |
|
|
volatile CYG_WORD16 cpm_timers_tcr1; /* Timer Capture Register */
|
956 |
|
|
volatile CYG_WORD16 cpm_timers_tcr2; /* Timer Capture Register */
|
957 |
|
|
volatile CYG_WORD16 cpm_timers_tcn1; /* Timer Counter */
|
958 |
|
|
volatile CYG_WORD16 cpm_timers_tcn2; /* Timer Counter */
|
959 |
|
|
volatile CYG_WORD16 cpm_timers_tmr3; /* Timer Mode Register */
|
960 |
|
|
volatile CYG_WORD16 cpm_timers_tmr4; /* Timer Mode Register */
|
961 |
|
|
volatile CYG_WORD16 cpm_timers_trr3; /* Timer Reference Register */
|
962 |
|
|
volatile CYG_WORD16 cpm_timers_trr4; /* Timer Reference Register */
|
963 |
|
|
volatile CYG_WORD16 cpm_timers_tcr3; /* Timer Capture Register */
|
964 |
|
|
volatile CYG_WORD16 cpm_timers_tcr4; /* Timer Capture Register */
|
965 |
|
|
volatile CYG_WORD16 cpm_timers_tcn3; /* Timer Counter */
|
966 |
|
|
volatile CYG_WORD16 cpm_timers_tcn4; /* Timer Counter */
|
967 |
|
|
volatile CYG_WORD16 cpm_timers_ter[4]; /* Timer Event Register */
|
968 |
|
|
volatile CYG_BYTE reserved44[0x260]; /* Reserved area */
|
969 |
|
|
|
970 |
|
|
/* sdma general */
|
971 |
|
|
volatile CYG_BYTE sdma_sdsr; /* SDMA Status Register */
|
972 |
|
|
volatile CYG_BYTE reserved45[0x3]; /* Reserved area */
|
973 |
|
|
volatile CYG_BYTE sdma_sdmr; /* SDMA Mask Register */
|
974 |
|
|
volatile CYG_BYTE reserved46[0x3]; /* Reserved area */
|
975 |
|
|
|
976 |
|
|
/* idma */
|
977 |
|
|
volatile CYG_BYTE idma_idsr1; /* IDMA Status Register */
|
978 |
|
|
volatile CYG_BYTE reserved47[0x3]; /* Reserved area */
|
979 |
|
|
volatile CYG_BYTE idma_idmr1; /* IDMA Mask Register */
|
980 |
|
|
volatile CYG_BYTE reserved48[0x3]; /* Reserved area */
|
981 |
|
|
volatile CYG_BYTE idma_idsr2; /* IDMA Status Register */
|
982 |
|
|
volatile CYG_BYTE reserved49[0x3]; /* Reserved area */
|
983 |
|
|
volatile CYG_BYTE idma_idmr2; /* IDMA Mask Register */
|
984 |
|
|
volatile CYG_BYTE reserved50[0x3]; /* Reserved area */
|
985 |
|
|
volatile CYG_BYTE idma_idsr3; /* IDMA Status Register */
|
986 |
|
|
volatile CYG_BYTE reserved51[0x3]; /* Reserved area */
|
987 |
|
|
volatile CYG_BYTE idma_idmr3; /* IDMA Mask Register */
|
988 |
|
|
volatile CYG_BYTE reserved52[0x3]; /* Reserved area */
|
989 |
|
|
volatile CYG_BYTE idma_idsr4; /* IDMA Status Register */
|
990 |
|
|
volatile CYG_BYTE reserved53[0x3]; /* Reserved area */
|
991 |
|
|
volatile CYG_BYTE idma_idmr4; /* IDMA Mask Register */
|
992 |
|
|
volatile CYG_BYTE reserved54[0x2c3]; /* Reserved area */
|
993 |
|
|
|
994 |
|
|
/* fcc */
|
995 |
|
|
struct fcc_regs
|
996 |
|
|
{
|
997 |
|
|
volatile CYG_WORD fcc_gfmr; /* FCC General Mode Register */
|
998 |
|
|
volatile CYG_WORD fcc_psmr; /* FCC Protocol Specific Mode Register */
|
999 |
|
|
volatile CYG_WORD16 fcc_todr; /* FCC Transmit On Demand Register */
|
1000 |
|
|
volatile CYG_BYTE reserved55[0x2]; /* Reserved area */
|
1001 |
|
|
volatile CYG_WORD16 fcc_dsr; /* FCC Data Sync. Register */
|
1002 |
|
|
volatile CYG_BYTE reserved56[0x2]; /* Reserved area */
|
1003 |
|
|
volatile CYG_WORD fcc_fcce; /* FCC Event Register */
|
1004 |
|
|
volatile CYG_WORD fcc_fccm; /* FCC Mask Register */
|
1005 |
|
|
volatile CYG_BYTE fcc_fccs; /* FCC Status Register */
|
1006 |
|
|
volatile CYG_BYTE reserved57[0x3]; /* Reserved area */
|
1007 |
|
|
volatile CYG_WORD fcc_ftprr; /* FCC Transmit Partial Rate Register */
|
1008 |
|
|
} fcc_regs[3];
|
1009 |
|
|
volatile CYG_BYTE reserved58[0x290]; /* Reserved area */
|
1010 |
|
|
|
1011 |
|
|
/* brgs 5 through 8 */
|
1012 |
|
|
volatile CYG_WORD brgs_brgc5; /* Baud Rate Generator 5 Config Register */
|
1013 |
|
|
volatile CYG_WORD brgs_brgc6; /* Baud Rate Generator 6 Config Register */
|
1014 |
|
|
volatile CYG_WORD brgs_brgc7; /* Baud Rate Generator 7 Config Register */
|
1015 |
|
|
volatile CYG_WORD brgs_brgc8; /* Baud Rate Generator 8 Config Register */
|
1016 |
|
|
volatile CYG_BYTE reserved59[0x260]; /* Reserved area */
|
1017 |
|
|
|
1018 |
|
|
/* i2c */
|
1019 |
|
|
volatile CYG_BYTE i2c_i2mod; /* IC Mode Register */
|
1020 |
|
|
volatile CYG_BYTE reserved60[0x3]; /* Reserved area */
|
1021 |
|
|
volatile CYG_BYTE i2c_i2add; /* IC Address Register */
|
1022 |
|
|
volatile CYG_BYTE reserved61[0x3]; /* Reserved area */
|
1023 |
|
|
volatile CYG_BYTE i2c_i2brg; /* IC BRG Register */
|
1024 |
|
|
volatile CYG_BYTE reserved62[0x3]; /* Reserved area */
|
1025 |
|
|
volatile CYG_BYTE i2c_i2com; /* IC Command Register */
|
1026 |
|
|
volatile CYG_BYTE reserved63[0x3]; /* Reserved area */
|
1027 |
|
|
volatile CYG_BYTE i2c_i2cer; /* IC Event Register */
|
1028 |
|
|
volatile CYG_BYTE reserved64[0x3]; /* Reserved area */
|
1029 |
|
|
volatile CYG_BYTE i2c_i2cmr; /* IC Mask Register */
|
1030 |
|
|
volatile CYG_BYTE reserved65[0x14b]; /* Reserved area */
|
1031 |
|
|
|
1032 |
|
|
/* cpm */
|
1033 |
|
|
volatile CYG_WORD cpm_cpcr; /* Communication Processor Command Register */
|
1034 |
|
|
volatile CYG_WORD cpm_rccr; /* RISC Configuration Register */
|
1035 |
|
|
volatile CYG_WORD cpm_rmdr; /* RISC Microcode Dev. Support Control Reg. */
|
1036 |
|
|
volatile CYG_WORD16 cpm_rctr1; /* RISC Controller Trap Register */
|
1037 |
|
|
volatile CYG_WORD16 cpm_rctr2; /* RISC Controller Trap Register */
|
1038 |
|
|
volatile CYG_WORD16 cpm_rctr3; /* RISC Controller Trap Register */
|
1039 |
|
|
volatile CYG_WORD16 cpm_rctr4; /* RISC Controller Trap Register */
|
1040 |
|
|
volatile CYG_BYTE reserved66[0x2]; /* Reserved area */
|
1041 |
|
|
volatile CYG_WORD16 cpm_rter; /* RISC Timers Event Register */
|
1042 |
|
|
volatile CYG_BYTE reserved67[0x2]; /* Reserved area */
|
1043 |
|
|
volatile CYG_WORD16 cpm_rtmr; /* RISC Timers Mask Register */
|
1044 |
|
|
volatile CYG_WORD16 cpm_rtscr; /* RISC Time-Stamp Timer Control Register */
|
1045 |
|
|
volatile CYG_WORD16 cpm_rmds; /* RISC Development Support Status Register */
|
1046 |
|
|
volatile CYG_WORD cpm_rtsr; /* RISC Time-Stamp Register */
|
1047 |
|
|
volatile CYG_BYTE reserved68[0xc]; /* Reserved area */
|
1048 |
|
|
|
1049 |
|
|
/* brgs 1 through 4 */
|
1050 |
|
|
volatile CYG_WORD brgs_brgc1; /* Baud Rate Generator 5 Config Register */
|
1051 |
|
|
volatile CYG_WORD brgs_brgc2; /* Baud Rate Generator 2 Config Register */
|
1052 |
|
|
volatile CYG_WORD brgs_brgc3; /* Baud Rate Generator 3 Config Register */
|
1053 |
|
|
volatile CYG_WORD brgs_brgc4; /* Baud Rate Generator 4 Config Register */
|
1054 |
|
|
|
1055 |
|
|
/* scc */
|
1056 |
|
|
struct scc_regs_8260
|
1057 |
|
|
{
|
1058 |
|
|
volatile CYG_WORD gsmr_l; /* SCC General Mode Register */
|
1059 |
|
|
volatile CYG_WORD gsmr_h; /* SCC General Mode Register */
|
1060 |
|
|
volatile CYG_WORD16 psmr; /* SCC Protocol Specific Mode Register */
|
1061 |
|
|
volatile CYG_BYTE reserved69[0x2]; /* Reserved area */
|
1062 |
|
|
volatile CYG_WORD16 todr; /* SCC Transmit-On-Demand Register */
|
1063 |
|
|
volatile CYG_WORD16 dsr; /* SCC Data Synchronization Register */
|
1064 |
|
|
volatile CYG_WORD16 scce; /* SCC Event Register */
|
1065 |
|
|
volatile CYG_BYTE reserved70[0x2]; /* Reserved area */
|
1066 |
|
|
volatile CYG_WORD16 sccm; /* SCC Mask Register */
|
1067 |
|
|
volatile CYG_BYTE reserved71; /* Reserved area */
|
1068 |
|
|
volatile CYG_BYTE sccs; /* SCC Status Register */
|
1069 |
|
|
volatile CYG_BYTE reserved72[0x8]; /* Reserved area */
|
1070 |
|
|
} scc_regs[4];
|
1071 |
|
|
|
1072 |
|
|
/* smc */
|
1073 |
|
|
struct smc_regs_8260
|
1074 |
|
|
{
|
1075 |
|
|
volatile CYG_BYTE reserved73[0x2]; /* Reserved area */
|
1076 |
|
|
volatile CYG_WORD16 smc_smcmr; /* SMC Mode Register */
|
1077 |
|
|
volatile CYG_BYTE reserved74[0x2]; /* Reserved area */
|
1078 |
|
|
volatile CYG_BYTE smc_smce; /* SMC Event Register */
|
1079 |
|
|
volatile CYG_BYTE reserved75[0x3]; /* Reserved area */
|
1080 |
|
|
volatile CYG_BYTE smc_smcm; /* SMC Mask Register */
|
1081 |
|
|
volatile CYG_BYTE reserved76[0x5]; /* Reserved area */
|
1082 |
|
|
} smc_regs[2];
|
1083 |
|
|
|
1084 |
|
|
/* spi */
|
1085 |
|
|
volatile CYG_WORD16 spi_spmode; /* SPI Mode Register */
|
1086 |
|
|
volatile CYG_BYTE reserved77[0x4]; /* Reserved area */
|
1087 |
|
|
volatile CYG_BYTE spi_spie; /* SPI Event Register */
|
1088 |
|
|
volatile CYG_BYTE reserved78[0x3]; /* Reserved area */
|
1089 |
|
|
volatile CYG_BYTE spi_spim; /* SPI Mask Register */
|
1090 |
|
|
volatile CYG_BYTE reserved79[0x2]; /* Reserved area */
|
1091 |
|
|
volatile CYG_BYTE spi_spcom; /* SPI Command Register */
|
1092 |
|
|
volatile CYG_BYTE reserved80[0x52]; /* Reserved area */
|
1093 |
|
|
|
1094 |
|
|
/* cpm_mux */
|
1095 |
|
|
|
1096 |
|
|
volatile CYG_BYTE cpm_mux_cmxsi1cr; /* CPM MUX SI Clock Route Register */
|
1097 |
|
|
volatile CYG_BYTE reserved81; /* Reserved area */
|
1098 |
|
|
volatile CYG_BYTE cpm_mux_cmxsi2cr; /* CPM MUX SI Clock Route Register */
|
1099 |
|
|
volatile CYG_BYTE reserved82; /* Reserved area */
|
1100 |
|
|
volatile CYG_WORD cpm_mux_cmxfcr; /* CPM MUX FCC Clock Route Register */
|
1101 |
|
|
volatile CYG_WORD cpm_mux_cmxscr; /* CPM MUX SCC Clock Route Register */
|
1102 |
|
|
volatile CYG_BYTE cpm_mux_cmxsmr; /* CPM MUX SMC Clock Route Register */
|
1103 |
|
|
volatile CYG_BYTE reserved83; /* Reserved area */
|
1104 |
|
|
volatile CYG_WORD16 cpm_mux_cmxuar; /* CPM MUX UTOPIA Address Register */
|
1105 |
|
|
volatile CYG_BYTE reserved84[0x10]; /* Reserved area */
|
1106 |
|
|
|
1107 |
|
|
/* si */
|
1108 |
|
|
struct si_regs
|
1109 |
|
|
{
|
1110 |
|
|
volatile CYG_WORD16 si_si1mr[4]; /* SI TDM Mode Registers */
|
1111 |
|
|
volatile CYG_BYTE si_si1gmr; /* SI Global Mode Register */
|
1112 |
|
|
volatile CYG_BYTE reserved85; /* Reserved area */
|
1113 |
|
|
volatile CYG_BYTE si_si1cmdr; /* SI Command Register */
|
1114 |
|
|
volatile CYG_BYTE reserved86; /* Reserved area */
|
1115 |
|
|
volatile CYG_BYTE si_si1str; /* SI Status Register */
|
1116 |
|
|
volatile CYG_BYTE reserved87; /* Reserved area */
|
1117 |
|
|
volatile CYG_WORD16 si_si1rsr; /* SI RAM Shadow Address Register */
|
1118 |
|
|
volatile CYG_WORD16 mcc_mcce; /* MCC Event Register */
|
1119 |
|
|
volatile CYG_BYTE reserved88[0x2]; /* Reserved area */
|
1120 |
|
|
volatile CYG_WORD16 mcc_mccm; /* MCC Mask Register */
|
1121 |
|
|
volatile CYG_BYTE reserved89[0x2]; /* Reserved area */
|
1122 |
|
|
volatile CYG_BYTE mcc_mccf; /* MCC Configuration Register */
|
1123 |
|
|
volatile CYG_BYTE reserved90[0x7]; /* Reserved area */
|
1124 |
|
|
} si_regs[2];
|
1125 |
|
|
volatile CYG_BYTE reserved91[0x4a0]; /* Reserved area */
|
1126 |
|
|
|
1127 |
|
|
/* si_ram */
|
1128 |
|
|
struct si_ram
|
1129 |
|
|
{
|
1130 |
|
|
CYG_WORD16 si1_ram_si1_tx_ram[0x100]; /* SI Transmit Routing RAM */
|
1131 |
|
|
volatile CYG_BYTE reserved92[0x200]; /* Reserved area */
|
1132 |
|
|
CYG_WORD16 si1_ram_si1_rx_ram[0x100]; /* SI Receive Routing RAM */
|
1133 |
|
|
volatile CYG_BYTE reserved93[0x200]; /* Reserved area */
|
1134 |
|
|
} si_ram[2];
|
1135 |
|
|
volatile CYG_BYTE reserved94[0x1000]; /* Reserved area */
|
1136 |
|
|
|
1137 |
|
|
} _PackedType t_PQ2IMM;
|
1138 |
|
|
|
1139 |
|
|
|
1140 |
|
|
|
1141 |
|
|
|
1142 |
|
|
|
1143 |
|
|
/***************************************************************************/
|
1144 |
|
|
/* General Global Definitions */
|
1145 |
|
|
/***************************************************************************/
|
1146 |
|
|
|
1147 |
|
|
#define PAGE1 0 /* SCC1 Index into SCC Param RAM Array */
|
1148 |
|
|
#define PAGE2 1 /* SCC2 Index into SCC Param RAM Array */
|
1149 |
|
|
#define PAGE3 2 /* SCC3 Index into SCC Param RAM Array */
|
1150 |
|
|
#define PAGE4 3 /* SCC4 Index into SCC Param RAM Array */
|
1151 |
|
|
|
1152 |
|
|
#define SCC1 0 /* SCC1 Index into SCC Regs Array */
|
1153 |
|
|
#define SCC2 1 /* SCC2 Index into SCC Regs Array */
|
1154 |
|
|
#define SCC3 2 /* SCC3 Index into SCC Regs Array */
|
1155 |
|
|
#define SCC4 3 /* SCC4 Index into SCC Regs Array */
|
1156 |
|
|
|
1157 |
|
|
#define SMC1 0 /* SMC1 Index into SMC Regs Array */
|
1158 |
|
|
#define SMC2 1 /* SMC2 Index into SMC Regs Array */
|
1159 |
|
|
|
1160 |
|
|
#define PORT_A 0 /* Parallel port A registers */
|
1161 |
|
|
#define PORT_B 1 /* Parallel port B registers */
|
1162 |
|
|
#define PORT_C 2 /* Parallel port C registers */
|
1163 |
|
|
#define PORT_D 3 /* Parallel port D registers */
|
1164 |
|
|
|
1165 |
|
|
/*--------------------------------*/
|
1166 |
|
|
/* KEEP ALIVE POWER REGISTERS KEY */
|
1167 |
|
|
/*--------------------------------*/
|
1168 |
|
|
|
1169 |
|
|
#define KEEP_ALIVE_KEY 0x55ccaa33
|
1170 |
|
|
|
1171 |
|
|
/*------------------------------------------*
|
1172 |
|
|
* CPM Command Register (CPCR) *
|
1173 |
|
|
*-------------------------------------------*
|
1174 |
|
|
* NOTE: This register is cleared by reset. *
|
1175 |
|
|
* See MPC8260 User's Manual. *
|
1176 |
|
|
*-------------------------------------------*/
|
1177 |
|
|
|
1178 |
|
|
#define CPCR_RST 0x80000000 /* Software Reset Command */
|
1179 |
|
|
#define CPCR_FLG 0x00010000 /* Command Semaphore Flag */
|
1180 |
|
|
|
1181 |
|
|
/*-----------------------------------------------*/
|
1182 |
|
|
/* Definitions for SCC CPCR Subblock/Page codes. */
|
1183 |
|
|
/*-----------------------------------------------*/
|
1184 |
|
|
|
1185 |
|
|
#define SCC1_PAGE_SUBBLOCK 0x00800000 /* page 0, code = 4 */
|
1186 |
|
|
#define SCC2_PAGE_SUBBLOCK 0x04A00000 /* page 1, code = 5 */
|
1187 |
|
|
#define SCC3_PAGE_SUBBLOCK 0x08C00000 /* page 2, code = 6 */
|
1188 |
|
|
#define SCC4_PAGE_SUBBLOCK 0x0CE00000 /* page 3, code = 7 */
|
1189 |
|
|
|
1190 |
|
|
/*-----------------------------------------------*/
|
1191 |
|
|
/* Definitions for SMC CPCR Subblock/Page codes. */
|
1192 |
|
|
/*-----------------------------------------------*/
|
1193 |
|
|
|
1194 |
|
|
#define SMC1_PAGE_SUBBLOCK 0x1D000000 /* page 7, code = 8 */
|
1195 |
|
|
#define SMC2_PAGE_SUBBLOCK 0x21200000 /* page 8, code = 9 */
|
1196 |
|
|
|
1197 |
|
|
/*-----------------------------*/
|
1198 |
|
|
/* Opcode definitions for SCCs, opcodes for SMC's are the same
|
1199 |
|
|
* except not all codes are valid for SMC */
|
1200 |
|
|
/*-----------------------------*/
|
1201 |
|
|
|
1202 |
|
|
#define CPCR_INIT_TX_RX_PARAMS 0x00000000 /* Opcode 0 */
|
1203 |
|
|
#define CPCR_INIT_RX_PARAMS 0x00000001 /* Opcode 1 */
|
1204 |
|
|
#define CPCR_INIT_TX_PARAMS 0x00000002 /* Opcode 2 */
|
1205 |
|
|
#define CPCR_ENTER_HUNT_MODE 0x00000003 /* Opcode 3 */
|
1206 |
|
|
#define CPCR_STOP_TX 0x00000004 /* Opcode 4 */
|
1207 |
|
|
#define CPCR_GRACEFUL_STOP_TX 0x00000005 /* Opcode 5 */
|
1208 |
|
|
#define CPCR_RESTART_TX 0x00000006 /* Opcode 6 */
|
1209 |
|
|
#define CPCR_CLOSE_RX_BD 0x00000007 /* Opcode 7 */
|
1210 |
|
|
#define CPCR_SET_GRP_ADDR 0x00000008 /* Opcode 8 */
|
1211 |
|
|
#define CPCR_RESET_BCS 0x0000000A /* Opcode 10 */
|
1212 |
|
|
|
1213 |
|
|
/*-----------------------------------------------------*/
|
1214 |
|
|
/* General Definitions for SCC CPCR Command Operations */
|
1215 |
|
|
/*-----------------------------------------------------*/
|
1216 |
|
|
|
1217 |
|
|
#define READY_TO_RX_CMD 0x00000000
|
1218 |
|
|
|
1219 |
|
|
/*-------------------------*/
|
1220 |
|
|
/* General SCC Definitions */
|
1221 |
|
|
/*-------------------------*/
|
1222 |
|
|
|
1223 |
|
|
#define DISABLE_TX_RX 0xFFFFFFCF /* Clear the ENT/ENR bits in the GSMR
|
1224 |
|
|
Disables the transmit & Receive
|
1225 |
|
|
port */
|
1226 |
|
|
|
1227 |
|
|
#define GSMR_L1_ENT 0x00000010 /* ENT bit for the GSMR low register */
|
1228 |
|
|
#define GSMR_L1_ENR 0x00000020 /* ENR bit for the GSMR low register */
|
1229 |
|
|
|
1230 |
|
|
|
1231 |
|
|
#define ALL_ONES 0xFFFF
|
1232 |
|
|
|
1233 |
|
|
|
1234 |
|
|
#endif // ifndef CYGONCE_HAL_PPC_QUICC2_MPC8260_H
|