1 /***********************************
2 * $Id: m68360_pram.h,v 1.1 2002/03/02 15:01:07 gerg Exp $
3 ***********************************
5 ***************************************
6 * Definitions of the parameter area RAM.
7 * Note that different structures are overlaid
8 * at the same offsets for the different modes
10 ***************************************
16 /* Time slot assignment table */
17 #define VALID_SLOT 0x8000
18 #define WRAP_SLOT 0x4000
20 /*****************************************************************
21 Global Multichannel parameter RAM
22 *****************************************************************/
23 struct global_multi_pram
{
25 * Global Multichannel parameter RAM
27 unsigned long mcbase
; /* Multichannel Base pointer */
28 unsigned short qmcstate
; /* Multichannel Controller state */
29 unsigned short mrblr
; /* Maximum Receive Buffer Length */
30 unsigned short tx_s_ptr
; /* TSTATx Pointer */
31 unsigned short rxptr
; /* Current Time slot entry in TSATRx */
32 unsigned short grfthr
; /* Global Receive frame threshold */
33 unsigned short grfcnt
; /* Global Receive Frame Count */
34 unsigned long intbase
; /* Multichannel Base address */
35 unsigned long iintptr
; /* Pointer to interrupt queue */
36 unsigned short rx_s_ptr
; /* TSTARx Pointer */
38 unsigned short txptr
; /* Current Time slot entry in TSATTx */
39 unsigned long c_mask32
; /* CRC Constant (debb20e3) */
40 unsigned short tsatrx
[32]; /* Time Slot Assignment Table Rx */
41 unsigned short tsattx
[32]; /* Time Slot Assignment Table Tx */
42 unsigned short c_mask16
; /* CRC Constant (f0b8) */
45 /*****************************************************************
46 Quicc32 HDLC parameter RAM
47 *****************************************************************/
50 unsigned short tbase
; /* Tx Buffer Descriptors Base Address */
51 unsigned short chamr
; /* Channel Mode Register */
52 unsigned long tstate
; /* Tx Internal State */
53 unsigned long txintr
; /* Tx Internal Data Pointer */
54 unsigned short tbptr
; /* Tx Buffer Descriptor Pointer */
55 unsigned short txcntr
; /* Tx Internal Byte Count */
56 unsigned long tupack
; /* (Tx Temp) */
57 unsigned long zistate
; /* Zero Insertion machine state */
58 unsigned long tcrc
; /* Temp Transmit CRC */
59 unsigned short intmask
; /* Channel's interrupt mask flags */
60 unsigned short bdflags
;
61 unsigned short rbase
; /* Rx Buffer Descriptors Base Address */
62 unsigned short mflr
; /* Max Frame Length Register */
63 unsigned long rstate
; /* Rx Internal State */
64 unsigned long rxintr
; /* Rx Internal Data Pointer */
65 unsigned short rbptr
; /* Rx Buffer Descriptor Pointer */
66 unsigned short rxbyc
; /* Rx Internal Byte Count */
67 unsigned long rpack
; /* (Rx Temp) */
68 unsigned long zdstate
; /* Zero Deletion machine state */
69 unsigned long rcrc
; /* Temp Transmit CRC */
70 unsigned short maxc
; /* Max_length counter */
71 unsigned short tmp_mb
; /* Temp */
75 /*****************************************************************
77 *****************************************************************/
83 unsigned short rbase
; /* RX BD base address */
84 unsigned short tbase
; /* TX BD base address */
85 unsigned char rfcr
; /* Rx function code */
86 unsigned char tfcr
; /* Tx function code */
87 unsigned short mrblr
; /* Rx buffer length */
88 unsigned long rstate
; /* Rx internal state */
89 unsigned long rptr
; /* Rx internal data pointer */
90 unsigned short rbptr
; /* rb BD Pointer */
91 unsigned short rcount
; /* Rx internal byte count */
92 unsigned long rtemp
; /* Rx temp */
93 unsigned long tstate
; /* Tx internal state */
94 unsigned long tptr
; /* Tx internal data pointer */
95 unsigned short tbptr
; /* Tx BD pointer */
96 unsigned short tcount
; /* Tx byte count */
97 unsigned long ttemp
; /* Tx temp */
98 unsigned long rcrc
; /* temp receive CRC */
99 unsigned long tcrc
; /* temp transmit CRC */
102 * HDLC specific parameter RAM
104 unsigned char RESERVED1
[4]; /* Reserved area */
105 unsigned long c_mask
; /* CRC constant */
106 unsigned long c_pres
; /* CRC preset */
107 unsigned short disfc
; /* discarded frame counter */
108 unsigned short crcec
; /* CRC error counter */
109 unsigned short abtsc
; /* abort sequence counter */
110 unsigned short nmarc
; /* nonmatching address rx cnt */
111 unsigned short retrc
; /* frame retransmission cnt */
112 unsigned short mflr
; /* maximum frame length reg */
113 unsigned short max_cnt
; /* maximum length counter */
114 unsigned short rfthr
; /* received frames threshold */
115 unsigned short rfcnt
; /* received frames count */
116 unsigned short hmask
; /* user defined frm addr mask */
117 unsigned short haddr1
; /* user defined frm address 1 */
118 unsigned short haddr2
; /* user defined frm address 2 */
119 unsigned short haddr3
; /* user defined frm address 3 */
120 unsigned short haddr4
; /* user defined frm address 4 */
121 unsigned short tmp
; /* temp */
122 unsigned short tmp_mb
; /* temp */
127 /*****************************************************************
129 *****************************************************************/
132 * bits in uart control characters table
134 #define CC_INVALID 0x8000 /* control character is valid */
135 #define CC_REJ 0x4000 /* don't store char in buffer */
136 #define CC_CHAR 0x00ff /* control character */
143 unsigned short rbase
; /* RX BD base address */
144 unsigned short tbase
; /* TX BD base address */
145 unsigned char rfcr
; /* Rx function code */
146 unsigned char tfcr
; /* Tx function code */
147 unsigned short mrblr
; /* Rx buffer length */
148 unsigned long rstate
; /* Rx internal state */
149 unsigned long rptr
; /* Rx internal data pointer */
150 unsigned short rbptr
; /* rb BD Pointer */
151 unsigned short rcount
; /* Rx internal byte count */
152 unsigned long rx_temp
; /* Rx temp */
153 unsigned long tstate
; /* Tx internal state */
154 unsigned long tptr
; /* Tx internal data pointer */
155 unsigned short tbptr
; /* Tx BD pointer */
156 unsigned short tcount
; /* Tx byte count */
157 unsigned long ttemp
; /* Tx temp */
158 unsigned long rcrc
; /* temp receive CRC */
159 unsigned long tcrc
; /* temp transmit CRC */
162 * UART specific parameter RAM
164 unsigned char RESERVED1
[8]; /* Reserved area */
165 unsigned short max_idl
; /* maximum idle characters */
166 unsigned short idlc
; /* rx idle counter (internal) */
167 unsigned short brkcr
; /* break count register */
169 unsigned short parec
; /* Rx parity error counter */
170 unsigned short frmer
; /* Rx framing error counter */
171 unsigned short nosec
; /* Rx noise counter */
172 unsigned short brkec
; /* Rx break character counter */
173 unsigned short brkln
; /* Reaceive break length */
175 unsigned short uaddr1
; /* address character 1 */
176 unsigned short uaddr2
; /* address character 2 */
177 unsigned short rtemp
; /* temp storage */
178 unsigned short toseq
; /* Tx out of sequence char */
179 unsigned short cc
[8]; /* Rx control characters */
180 unsigned short rccm
; /* Rx control char mask */
181 unsigned short rccr
; /* Rx control char register */
182 unsigned short rlbc
; /* Receive last break char */
187 /*****************************************************************
189 *****************************************************************/
195 unsigned short rbase
; /* RX BD base address */
196 unsigned short tbase
; /* TX BD base address */
197 unsigned char rfcr
; /* Rx function code */
198 unsigned char tfcr
; /* Tx function code */
199 unsigned short mrblr
; /* Rx buffer length */
200 unsigned long rstate
; /* Rx internal state */
201 unsigned long rptr
; /* Rx internal data pointer */
202 unsigned short rbptr
; /* rb BD Pointer */
203 unsigned short rcount
; /* Rx internal byte count */
204 unsigned long rtemp
; /* Rx temp */
205 unsigned long tstate
; /* Tx internal state */
206 unsigned long tptr
; /* Tx internal data pointer */
207 unsigned short tbptr
; /* Tx BD pointer */
208 unsigned short tcount
; /* Tx byte count */
209 unsigned long ttemp
; /* Tx temp */
210 unsigned long rcrc
; /* temp receive CRC */
211 unsigned long tcrc
; /* temp transmit CRC */
214 * BISYNC specific parameter RAM
216 unsigned char RESERVED1
[4]; /* Reserved area */
217 unsigned long crcc
; /* CRC Constant Temp Value */
218 unsigned short prcrc
; /* Preset Receiver CRC-16/LRC */
219 unsigned short ptcrc
; /* Preset Transmitter CRC-16/LRC */
220 unsigned short parec
; /* Receive Parity Error Counter */
221 unsigned short bsync
; /* BISYNC SYNC Character */
222 unsigned short bdle
; /* BISYNC DLE Character */
223 unsigned short cc
[8]; /* Rx control characters */
224 unsigned short rccm
; /* Receive Control Character Mask */
227 /*****************************************************************
229 (overlaid on tx bd[5] of SCC channel[2])
230 *****************************************************************/
232 unsigned short ci_data
; /* ci data */
233 unsigned short monitor_data
; /* monitor data */
234 unsigned short tstate
; /* transmitter state */
235 unsigned short rstate
; /* receiver state */
238 /*****************************************************************
239 SPI/SMC parameter RAM
240 (overlaid on tx bd[6,7] of SCC channel[2])
241 *****************************************************************/
243 #define SPI_R 0x8000 /* Ready bit in BD */
246 unsigned short rbase
; /* Rx BD Base Address */
247 unsigned short tbase
; /* Tx BD Base Address */
248 unsigned char rfcr
; /* Rx function code */
249 unsigned char tfcr
; /* Tx function code */
250 unsigned short mrblr
; /* Rx buffer length */
251 unsigned long rstate
; /* Rx internal state */
252 unsigned long rptr
; /* Rx internal data pointer */
253 unsigned short rbptr
; /* rb BD Pointer */
254 unsigned short rcount
; /* Rx internal byte count */
255 unsigned long rtemp
; /* Rx temp */
256 unsigned long tstate
; /* Tx internal state */
257 unsigned long tptr
; /* Tx internal data pointer */
258 unsigned short tbptr
; /* Tx BD pointer */
259 unsigned short tcount
; /* Tx byte count */
260 unsigned long ttemp
; /* Tx temp */
263 struct smc_uart_pram
{
264 unsigned short rbase
; /* Rx BD Base Address */
265 unsigned short tbase
; /* Tx BD Base Address */
266 unsigned char rfcr
; /* Rx function code */
267 unsigned char tfcr
; /* Tx function code */
268 unsigned short mrblr
; /* Rx buffer length */
269 unsigned long rstate
; /* Rx internal state */
270 unsigned long rptr
; /* Rx internal data pointer */
271 unsigned short rbptr
; /* rb BD Pointer */
272 unsigned short rcount
; /* Rx internal byte count */
273 unsigned long rtemp
; /* Rx temp */
274 unsigned long tstate
; /* Tx internal state */
275 unsigned long tptr
; /* Tx internal data pointer */
276 unsigned short tbptr
; /* Tx BD pointer */
277 unsigned short tcount
; /* Tx byte count */
278 unsigned long ttemp
; /* Tx temp */
279 unsigned short max_idl
; /* Maximum IDLE Characters */
280 unsigned short idlc
; /* Temporary IDLE Counter */
281 unsigned short brkln
; /* Last Rx Break Length */
282 unsigned short brkec
; /* Rx Break Condition Counter */
283 unsigned short brkcr
; /* Break Count Register (Tx) */
284 unsigned short r_mask
; /* Temporary bit mask */
287 struct smc_trnsp_pram
{
288 unsigned short rbase
; /* rx BD Base Address */
289 unsigned short tbase
; /* Tx BD Base Address */
290 unsigned char rfcr
; /* Rx function code */
291 unsigned char tfcr
; /* Tx function code */
292 unsigned short mrblr
; /* Rx buffer length */
293 unsigned long rstate
; /* Rx internal state */
294 unsigned long rptr
; /* Rx internal data pointer */
295 unsigned short rbptr
; /* rb BD Pointer */
296 unsigned short rcount
; /* Rx internal byte count */
297 unsigned long rtemp
; /* Rx temp */
298 unsigned long tstate
; /* Tx internal state */
299 unsigned long tptr
; /* Tx internal data pointer */
300 unsigned short tbptr
; /* Tx BD pointer */
301 unsigned short tcount
; /* Tx byte count */
302 unsigned long ttemp
; /* Tx temp */
303 unsigned short reserved
[5]; /* Reserved */
307 unsigned short ibase
; /* IDMA BD Base Address */
308 unsigned short ibptr
; /* IDMA buffer descriptor pointer */
309 unsigned long istate
; /* IDMA internal state */
310 unsigned long itemp
; /* IDMA temp */
313 struct ethernet_pram
{
317 unsigned short rbase
; /* RX BD base address */
318 unsigned short tbase
; /* TX BD base address */
319 unsigned char rfcr
; /* Rx function code */
320 unsigned char tfcr
; /* Tx function code */
321 unsigned short mrblr
; /* Rx buffer length */
322 unsigned long rstate
; /* Rx internal state */
323 unsigned long rptr
; /* Rx internal data pointer */
324 unsigned short rbptr
; /* rb BD Pointer */
325 unsigned short rcount
; /* Rx internal byte count */
326 unsigned long rtemp
; /* Rx temp */
327 unsigned long tstate
; /* Tx internal state */
328 unsigned long tptr
; /* Tx internal data pointer */
329 unsigned short tbptr
; /* Tx BD pointer */
330 unsigned short tcount
; /* Tx byte count */
331 unsigned long ttemp
; /* Tx temp */
332 unsigned long rcrc
; /* temp receive CRC */
333 unsigned long tcrc
; /* temp transmit CRC */
336 * ETHERNET specific parameter RAM
338 unsigned long c_pres
; /* preset CRC */
339 unsigned long c_mask
; /* constant mask for CRC */
340 unsigned long crcec
; /* CRC error counter */
341 unsigned long alec
; /* alighnment error counter */
342 unsigned long disfc
; /* discard frame counter */
343 unsigned short pads
; /* short frame PAD characters */
344 unsigned short ret_lim
; /* retry limit threshold */
345 unsigned short ret_cnt
; /* retry limit counter */
346 unsigned short mflr
; /* maximum frame length reg */
347 unsigned short minflr
; /* minimum frame length reg */
348 unsigned short maxd1
; /* maximum DMA1 length reg */
349 unsigned short maxd2
; /* maximum DMA2 length reg */
350 unsigned short maxd
; /* rx max DMA */
351 unsigned short dma_cnt
; /* rx dma counter */
352 unsigned short max_b
; /* max bd byte count */
353 unsigned short gaddr1
; /* group address filter 1 */
354 unsigned short gaddr2
; /* group address filter 2 */
355 unsigned short gaddr3
; /* group address filter 3 */
356 unsigned short gaddr4
; /* group address filter 4 */
357 unsigned long tbuf0_data0
; /* save area 0 - current frm */
358 unsigned long tbuf0_data1
; /* save area 1 - current frm */
359 unsigned long tbuf0_rba0
;
360 unsigned long tbuf0_crc
;
361 unsigned short tbuf0_bcnt
;
366 unsigned short middl
;
370 unsigned short p_per
; /* persistence */
371 unsigned short rfbd_ptr
; /* rx first bd pointer */
372 unsigned short tfbd_ptr
; /* tx first bd pointer */
373 unsigned short tlbd_ptr
; /* tx last bd pointer */
374 unsigned long tbuf1_data0
; /* save area 0 - next frame */
375 unsigned long tbuf1_data1
; /* save area 1 - next frame */
376 unsigned long tbuf1_rba0
;
377 unsigned long tbuf1_crc
;
378 unsigned short tbuf1_bcnt
;
379 unsigned short tx_len
; /* tx frame length counter */
380 unsigned short iaddr1
; /* individual address filter 1*/
381 unsigned short iaddr2
; /* individual address filter 2*/
382 unsigned short iaddr3
; /* individual address filter 3*/
383 unsigned short iaddr4
; /* individual address filter 4*/
384 unsigned short boff_cnt
; /* back-off counter */
385 unsigned short taddr_h
; /* temp address (MSB) */
386 unsigned short taddr_m
; /* temp address */
387 unsigned short taddr_l
; /* temp address (LSB) */
390 struct transparent_pram
{
394 unsigned short rbase
; /* RX BD base address */
395 unsigned short tbase
; /* TX BD base address */
396 unsigned char rfcr
; /* Rx function code */
397 unsigned char tfcr
; /* Tx function code */
398 unsigned short mrblr
; /* Rx buffer length */
399 unsigned long rstate
; /* Rx internal state */
400 unsigned long rptr
; /* Rx internal data pointer */
401 unsigned short rbptr
; /* rb BD Pointer */
402 unsigned short rcount
; /* Rx internal byte count */
403 unsigned long rtemp
; /* Rx temp */
404 unsigned long tstate
; /* Tx internal state */
405 unsigned long tptr
; /* Tx internal data pointer */
406 unsigned short tbptr
; /* Tx BD pointer */
407 unsigned short tcount
; /* Tx byte count */
408 unsigned long ttemp
; /* Tx temp */
409 unsigned long rcrc
; /* temp receive CRC */
410 unsigned long tcrc
; /* temp transmit CRC */
413 * TRANSPARENT specific parameter RAM
415 unsigned long crc_p
; /* CRC Preset */
416 unsigned long crc_c
; /* CRC constant */
421 * RISC timers parameter RAM
423 unsigned short tm_base
; /* RISC timer table base adr */
424 unsigned short tm_ptr
; /* RISC timer table pointer */
425 unsigned short r_tmr
; /* RISC timer mode register */
426 unsigned short r_tmv
; /* RISC timer valid register */
427 unsigned long tm_cmd
; /* RISC timer cmd register */
428 unsigned long tm_cnt
; /* RISC timer internal cnt */