Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /*********************************** |
| 2 | * $Id: m68360_pram.h,v 1.1 2002/03/02 15:01:07 gerg Exp $ |
| 3 | *********************************** |
| 4 | * |
| 5 | *************************************** |
| 6 | * Definitions of the parameter area RAM. |
| 7 | * Note that different structures are overlaid |
| 8 | * at the same offsets for the different modes |
| 9 | * of operation. |
| 10 | *************************************** |
| 11 | */ |
| 12 | |
| 13 | #ifndef __PRAM_H |
| 14 | #define __PRAM_H |
| 15 | |
| 16 | /* Time slot assignment table */ |
| 17 | #define VALID_SLOT 0x8000 |
| 18 | #define WRAP_SLOT 0x4000 |
| 19 | |
| 20 | /***************************************************************** |
| 21 | Global Multichannel parameter RAM |
| 22 | *****************************************************************/ |
| 23 | struct global_multi_pram { |
| 24 | /* |
| 25 | * Global Multichannel parameter RAM |
| 26 | */ |
| 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 */ |
| 37 | |
| 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) */ |
| 43 | }; |
| 44 | |
| 45 | /***************************************************************** |
| 46 | Quicc32 HDLC parameter RAM |
| 47 | *****************************************************************/ |
| 48 | struct quicc32_pram { |
| 49 | |
| 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 */ |
| 72 | }; |
| 73 | |
| 74 | |
| 75 | /***************************************************************** |
| 76 | HDLC parameter RAM |
| 77 | *****************************************************************/ |
| 78 | |
| 79 | struct hdlc_pram { |
| 80 | /* |
| 81 | * SCC parameter RAM |
| 82 | */ |
| 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 */ |
| 100 | |
| 101 | /* |
| 102 | * HDLC specific parameter RAM |
| 103 | */ |
| 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 */ |
| 123 | }; |
| 124 | |
| 125 | |
| 126 | |
| 127 | /***************************************************************** |
| 128 | UART parameter RAM |
| 129 | *****************************************************************/ |
| 130 | |
| 131 | /* |
| 132 | * bits in uart control characters table |
| 133 | */ |
| 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 */ |
| 137 | |
| 138 | /* UART */ |
| 139 | struct uart_pram { |
| 140 | /* |
| 141 | * SCC parameter RAM |
| 142 | */ |
| 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 */ |
| 160 | |
| 161 | /* |
| 162 | * UART specific parameter RAM |
| 163 | */ |
| 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 */ |
| 168 | |
| 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 */ |
| 174 | |
| 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 */ |
| 183 | }; |
| 184 | |
| 185 | |
| 186 | |
| 187 | /***************************************************************** |
| 188 | BISYNC parameter RAM |
| 189 | *****************************************************************/ |
| 190 | |
| 191 | struct bisync_pram { |
| 192 | /* |
| 193 | * SCC parameter RAM |
| 194 | */ |
| 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 */ |
| 212 | |
| 213 | /* |
| 214 | * BISYNC specific parameter RAM |
| 215 | */ |
| 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 */ |
| 225 | }; |
| 226 | |
| 227 | /***************************************************************** |
| 228 | IOM2 parameter RAM |
| 229 | (overlaid on tx bd[5] of SCC channel[2]) |
| 230 | *****************************************************************/ |
| 231 | struct iom2_pram { |
| 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 */ |
| 236 | }; |
| 237 | |
| 238 | /***************************************************************** |
| 239 | SPI/SMC parameter RAM |
| 240 | (overlaid on tx bd[6,7] of SCC channel[2]) |
| 241 | *****************************************************************/ |
| 242 | |
| 243 | #define SPI_R 0x8000 /* Ready bit in BD */ |
| 244 | |
| 245 | struct spi_pram { |
| 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 */ |
| 261 | }; |
| 262 | |
| 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 */ |
| 285 | }; |
| 286 | |
| 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 */ |
| 304 | }; |
| 305 | |
| 306 | struct idma_pram { |
| 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 */ |
| 311 | }; |
| 312 | |
| 313 | struct ethernet_pram { |
| 314 | /* |
| 315 | * SCC parameter RAM |
| 316 | */ |
| 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 */ |
| 334 | |
| 335 | /* |
| 336 | * ETHERNET specific parameter RAM |
| 337 | */ |
| 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; |
| 362 | union { |
| 363 | unsigned char b[6]; |
| 364 | struct { |
| 365 | unsigned short high; |
| 366 | unsigned short middl; |
| 367 | unsigned short low; |
| 368 | } w; |
| 369 | } paddr; |
| 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) */ |
| 388 | }; |
| 389 | |
| 390 | struct transparent_pram { |
| 391 | /* |
| 392 | * SCC parameter RAM |
| 393 | */ |
| 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 */ |
| 411 | |
| 412 | /* |
| 413 | * TRANSPARENT specific parameter RAM |
| 414 | */ |
| 415 | unsigned long crc_p; /* CRC Preset */ |
| 416 | unsigned long crc_c; /* CRC constant */ |
| 417 | }; |
| 418 | |
| 419 | struct timer_pram { |
| 420 | /* |
| 421 | * RISC timers parameter RAM |
| 422 | */ |
| 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 */ |
| 429 | }; |
| 430 | |
| 431 | #endif |