432 lines
19 KiB
C
432 lines
19 KiB
C
|
/***********************************
|
||
|
* $Id: m68360_pram.h,v 1.1 2002/03/02 15:01:07 gerg Exp $
|
||
|
***********************************
|
||
|
*
|
||
|
***************************************
|
||
|
* Definitions of the parameter area RAM.
|
||
|
* Note that different structures are overlaid
|
||
|
* at the same offsets for the different modes
|
||
|
* of operation.
|
||
|
***************************************
|
||
|
*/
|
||
|
|
||
|
#ifndef __PRAM_H
|
||
|
#define __PRAM_H
|
||
|
|
||
|
/* Time slot assignment table */
|
||
|
#define VALID_SLOT 0x8000
|
||
|
#define WRAP_SLOT 0x4000
|
||
|
|
||
|
/*****************************************************************
|
||
|
Global Multichannel parameter RAM
|
||
|
*****************************************************************/
|
||
|
struct global_multi_pram {
|
||
|
/*
|
||
|
* Global Multichannel parameter RAM
|
||
|
*/
|
||
|
unsigned long mcbase; /* Multichannel Base pointer */
|
||
|
unsigned short qmcstate; /* Multichannel Controller state */
|
||
|
unsigned short mrblr; /* Maximum Receive Buffer Length */
|
||
|
unsigned short tx_s_ptr; /* TSTATx Pointer */
|
||
|
unsigned short rxptr; /* Current Time slot entry in TSATRx */
|
||
|
unsigned short grfthr; /* Global Receive frame threshold */
|
||
|
unsigned short grfcnt; /* Global Receive Frame Count */
|
||
|
unsigned long intbase; /* Multichannel Base address */
|
||
|
unsigned long iintptr; /* Pointer to interrupt queue */
|
||
|
unsigned short rx_s_ptr; /* TSTARx Pointer */
|
||
|
|
||
|
unsigned short txptr; /* Current Time slot entry in TSATTx */
|
||
|
unsigned long c_mask32; /* CRC Constant (debb20e3) */
|
||
|
unsigned short tsatrx[32]; /* Time Slot Assignment Table Rx */
|
||
|
unsigned short tsattx[32]; /* Time Slot Assignment Table Tx */
|
||
|
unsigned short c_mask16; /* CRC Constant (f0b8) */
|
||
|
};
|
||
|
|
||
|
/*****************************************************************
|
||
|
Quicc32 HDLC parameter RAM
|
||
|
*****************************************************************/
|
||
|
struct quicc32_pram {
|
||
|
|
||
|
unsigned short tbase; /* Tx Buffer Descriptors Base Address */
|
||
|
unsigned short chamr; /* Channel Mode Register */
|
||
|
unsigned long tstate; /* Tx Internal State */
|
||
|
unsigned long txintr; /* Tx Internal Data Pointer */
|
||
|
unsigned short tbptr; /* Tx Buffer Descriptor Pointer */
|
||
|
unsigned short txcntr; /* Tx Internal Byte Count */
|
||
|
unsigned long tupack; /* (Tx Temp) */
|
||
|
unsigned long zistate; /* Zero Insertion machine state */
|
||
|
unsigned long tcrc; /* Temp Transmit CRC */
|
||
|
unsigned short intmask; /* Channel's interrupt mask flags */
|
||
|
unsigned short bdflags;
|
||
|
unsigned short rbase; /* Rx Buffer Descriptors Base Address */
|
||
|
unsigned short mflr; /* Max Frame Length Register */
|
||
|
unsigned long rstate; /* Rx Internal State */
|
||
|
unsigned long rxintr; /* Rx Internal Data Pointer */
|
||
|
unsigned short rbptr; /* Rx Buffer Descriptor Pointer */
|
||
|
unsigned short rxbyc; /* Rx Internal Byte Count */
|
||
|
unsigned long rpack; /* (Rx Temp) */
|
||
|
unsigned long zdstate; /* Zero Deletion machine state */
|
||
|
unsigned long rcrc; /* Temp Transmit CRC */
|
||
|
unsigned short maxc; /* Max_length counter */
|
||
|
unsigned short tmp_mb; /* Temp */
|
||
|
};
|
||
|
|
||
|
|
||
|
/*****************************************************************
|
||
|
HDLC parameter RAM
|
||
|
*****************************************************************/
|
||
|
|
||
|
struct hdlc_pram {
|
||
|
/*
|
||
|
* SCC parameter RAM
|
||
|
*/
|
||
|
unsigned short rbase; /* RX BD base address */
|
||
|
unsigned short tbase; /* TX BD base address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned long rcrc; /* temp receive CRC */
|
||
|
unsigned long tcrc; /* temp transmit CRC */
|
||
|
|
||
|
/*
|
||
|
* HDLC specific parameter RAM
|
||
|
*/
|
||
|
unsigned char RESERVED1[4]; /* Reserved area */
|
||
|
unsigned long c_mask; /* CRC constant */
|
||
|
unsigned long c_pres; /* CRC preset */
|
||
|
unsigned short disfc; /* discarded frame counter */
|
||
|
unsigned short crcec; /* CRC error counter */
|
||
|
unsigned short abtsc; /* abort sequence counter */
|
||
|
unsigned short nmarc; /* nonmatching address rx cnt */
|
||
|
unsigned short retrc; /* frame retransmission cnt */
|
||
|
unsigned short mflr; /* maximum frame length reg */
|
||
|
unsigned short max_cnt; /* maximum length counter */
|
||
|
unsigned short rfthr; /* received frames threshold */
|
||
|
unsigned short rfcnt; /* received frames count */
|
||
|
unsigned short hmask; /* user defined frm addr mask */
|
||
|
unsigned short haddr1; /* user defined frm address 1 */
|
||
|
unsigned short haddr2; /* user defined frm address 2 */
|
||
|
unsigned short haddr3; /* user defined frm address 3 */
|
||
|
unsigned short haddr4; /* user defined frm address 4 */
|
||
|
unsigned short tmp; /* temp */
|
||
|
unsigned short tmp_mb; /* temp */
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
/*****************************************************************
|
||
|
UART parameter RAM
|
||
|
*****************************************************************/
|
||
|
|
||
|
/*
|
||
|
* bits in uart control characters table
|
||
|
*/
|
||
|
#define CC_INVALID 0x8000 /* control character is valid */
|
||
|
#define CC_REJ 0x4000 /* don't store char in buffer */
|
||
|
#define CC_CHAR 0x00ff /* control character */
|
||
|
|
||
|
/* UART */
|
||
|
struct uart_pram {
|
||
|
/*
|
||
|
* SCC parameter RAM
|
||
|
*/
|
||
|
unsigned short rbase; /* RX BD base address */
|
||
|
unsigned short tbase; /* TX BD base address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rx_temp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned long rcrc; /* temp receive CRC */
|
||
|
unsigned long tcrc; /* temp transmit CRC */
|
||
|
|
||
|
/*
|
||
|
* UART specific parameter RAM
|
||
|
*/
|
||
|
unsigned char RESERVED1[8]; /* Reserved area */
|
||
|
unsigned short max_idl; /* maximum idle characters */
|
||
|
unsigned short idlc; /* rx idle counter (internal) */
|
||
|
unsigned short brkcr; /* break count register */
|
||
|
|
||
|
unsigned short parec; /* Rx parity error counter */
|
||
|
unsigned short frmer; /* Rx framing error counter */
|
||
|
unsigned short nosec; /* Rx noise counter */
|
||
|
unsigned short brkec; /* Rx break character counter */
|
||
|
unsigned short brkln; /* Reaceive break length */
|
||
|
|
||
|
unsigned short uaddr1; /* address character 1 */
|
||
|
unsigned short uaddr2; /* address character 2 */
|
||
|
unsigned short rtemp; /* temp storage */
|
||
|
unsigned short toseq; /* Tx out of sequence char */
|
||
|
unsigned short cc[8]; /* Rx control characters */
|
||
|
unsigned short rccm; /* Rx control char mask */
|
||
|
unsigned short rccr; /* Rx control char register */
|
||
|
unsigned short rlbc; /* Receive last break char */
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
/*****************************************************************
|
||
|
BISYNC parameter RAM
|
||
|
*****************************************************************/
|
||
|
|
||
|
struct bisync_pram {
|
||
|
/*
|
||
|
* SCC parameter RAM
|
||
|
*/
|
||
|
unsigned short rbase; /* RX BD base address */
|
||
|
unsigned short tbase; /* TX BD base address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned long rcrc; /* temp receive CRC */
|
||
|
unsigned long tcrc; /* temp transmit CRC */
|
||
|
|
||
|
/*
|
||
|
* BISYNC specific parameter RAM
|
||
|
*/
|
||
|
unsigned char RESERVED1[4]; /* Reserved area */
|
||
|
unsigned long crcc; /* CRC Constant Temp Value */
|
||
|
unsigned short prcrc; /* Preset Receiver CRC-16/LRC */
|
||
|
unsigned short ptcrc; /* Preset Transmitter CRC-16/LRC */
|
||
|
unsigned short parec; /* Receive Parity Error Counter */
|
||
|
unsigned short bsync; /* BISYNC SYNC Character */
|
||
|
unsigned short bdle; /* BISYNC DLE Character */
|
||
|
unsigned short cc[8]; /* Rx control characters */
|
||
|
unsigned short rccm; /* Receive Control Character Mask */
|
||
|
};
|
||
|
|
||
|
/*****************************************************************
|
||
|
IOM2 parameter RAM
|
||
|
(overlaid on tx bd[5] of SCC channel[2])
|
||
|
*****************************************************************/
|
||
|
struct iom2_pram {
|
||
|
unsigned short ci_data; /* ci data */
|
||
|
unsigned short monitor_data; /* monitor data */
|
||
|
unsigned short tstate; /* transmitter state */
|
||
|
unsigned short rstate; /* receiver state */
|
||
|
};
|
||
|
|
||
|
/*****************************************************************
|
||
|
SPI/SMC parameter RAM
|
||
|
(overlaid on tx bd[6,7] of SCC channel[2])
|
||
|
*****************************************************************/
|
||
|
|
||
|
#define SPI_R 0x8000 /* Ready bit in BD */
|
||
|
|
||
|
struct spi_pram {
|
||
|
unsigned short rbase; /* Rx BD Base Address */
|
||
|
unsigned short tbase; /* Tx BD Base Address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
};
|
||
|
|
||
|
struct smc_uart_pram {
|
||
|
unsigned short rbase; /* Rx BD Base Address */
|
||
|
unsigned short tbase; /* Tx BD Base Address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned short max_idl; /* Maximum IDLE Characters */
|
||
|
unsigned short idlc; /* Temporary IDLE Counter */
|
||
|
unsigned short brkln; /* Last Rx Break Length */
|
||
|
unsigned short brkec; /* Rx Break Condition Counter */
|
||
|
unsigned short brkcr; /* Break Count Register (Tx) */
|
||
|
unsigned short r_mask; /* Temporary bit mask */
|
||
|
};
|
||
|
|
||
|
struct smc_trnsp_pram {
|
||
|
unsigned short rbase; /* rx BD Base Address */
|
||
|
unsigned short tbase; /* Tx BD Base Address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned short reserved[5]; /* Reserved */
|
||
|
};
|
||
|
|
||
|
struct idma_pram {
|
||
|
unsigned short ibase; /* IDMA BD Base Address */
|
||
|
unsigned short ibptr; /* IDMA buffer descriptor pointer */
|
||
|
unsigned long istate; /* IDMA internal state */
|
||
|
unsigned long itemp; /* IDMA temp */
|
||
|
};
|
||
|
|
||
|
struct ethernet_pram {
|
||
|
/*
|
||
|
* SCC parameter RAM
|
||
|
*/
|
||
|
unsigned short rbase; /* RX BD base address */
|
||
|
unsigned short tbase; /* TX BD base address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned long rcrc; /* temp receive CRC */
|
||
|
unsigned long tcrc; /* temp transmit CRC */
|
||
|
|
||
|
/*
|
||
|
* ETHERNET specific parameter RAM
|
||
|
*/
|
||
|
unsigned long c_pres; /* preset CRC */
|
||
|
unsigned long c_mask; /* constant mask for CRC */
|
||
|
unsigned long crcec; /* CRC error counter */
|
||
|
unsigned long alec; /* alighnment error counter */
|
||
|
unsigned long disfc; /* discard frame counter */
|
||
|
unsigned short pads; /* short frame PAD characters */
|
||
|
unsigned short ret_lim; /* retry limit threshold */
|
||
|
unsigned short ret_cnt; /* retry limit counter */
|
||
|
unsigned short mflr; /* maximum frame length reg */
|
||
|
unsigned short minflr; /* minimum frame length reg */
|
||
|
unsigned short maxd1; /* maximum DMA1 length reg */
|
||
|
unsigned short maxd2; /* maximum DMA2 length reg */
|
||
|
unsigned short maxd; /* rx max DMA */
|
||
|
unsigned short dma_cnt; /* rx dma counter */
|
||
|
unsigned short max_b; /* max bd byte count */
|
||
|
unsigned short gaddr1; /* group address filter 1 */
|
||
|
unsigned short gaddr2; /* group address filter 2 */
|
||
|
unsigned short gaddr3; /* group address filter 3 */
|
||
|
unsigned short gaddr4; /* group address filter 4 */
|
||
|
unsigned long tbuf0_data0; /* save area 0 - current frm */
|
||
|
unsigned long tbuf0_data1; /* save area 1 - current frm */
|
||
|
unsigned long tbuf0_rba0;
|
||
|
unsigned long tbuf0_crc;
|
||
|
unsigned short tbuf0_bcnt;
|
||
|
union {
|
||
|
unsigned char b[6];
|
||
|
struct {
|
||
|
unsigned short high;
|
||
|
unsigned short middl;
|
||
|
unsigned short low;
|
||
|
} w;
|
||
|
} paddr;
|
||
|
unsigned short p_per; /* persistence */
|
||
|
unsigned short rfbd_ptr; /* rx first bd pointer */
|
||
|
unsigned short tfbd_ptr; /* tx first bd pointer */
|
||
|
unsigned short tlbd_ptr; /* tx last bd pointer */
|
||
|
unsigned long tbuf1_data0; /* save area 0 - next frame */
|
||
|
unsigned long tbuf1_data1; /* save area 1 - next frame */
|
||
|
unsigned long tbuf1_rba0;
|
||
|
unsigned long tbuf1_crc;
|
||
|
unsigned short tbuf1_bcnt;
|
||
|
unsigned short tx_len; /* tx frame length counter */
|
||
|
unsigned short iaddr1; /* individual address filter 1*/
|
||
|
unsigned short iaddr2; /* individual address filter 2*/
|
||
|
unsigned short iaddr3; /* individual address filter 3*/
|
||
|
unsigned short iaddr4; /* individual address filter 4*/
|
||
|
unsigned short boff_cnt; /* back-off counter */
|
||
|
unsigned short taddr_h; /* temp address (MSB) */
|
||
|
unsigned short taddr_m; /* temp address */
|
||
|
unsigned short taddr_l; /* temp address (LSB) */
|
||
|
};
|
||
|
|
||
|
struct transparent_pram {
|
||
|
/*
|
||
|
* SCC parameter RAM
|
||
|
*/
|
||
|
unsigned short rbase; /* RX BD base address */
|
||
|
unsigned short tbase; /* TX BD base address */
|
||
|
unsigned char rfcr; /* Rx function code */
|
||
|
unsigned char tfcr; /* Tx function code */
|
||
|
unsigned short mrblr; /* Rx buffer length */
|
||
|
unsigned long rstate; /* Rx internal state */
|
||
|
unsigned long rptr; /* Rx internal data pointer */
|
||
|
unsigned short rbptr; /* rb BD Pointer */
|
||
|
unsigned short rcount; /* Rx internal byte count */
|
||
|
unsigned long rtemp; /* Rx temp */
|
||
|
unsigned long tstate; /* Tx internal state */
|
||
|
unsigned long tptr; /* Tx internal data pointer */
|
||
|
unsigned short tbptr; /* Tx BD pointer */
|
||
|
unsigned short tcount; /* Tx byte count */
|
||
|
unsigned long ttemp; /* Tx temp */
|
||
|
unsigned long rcrc; /* temp receive CRC */
|
||
|
unsigned long tcrc; /* temp transmit CRC */
|
||
|
|
||
|
/*
|
||
|
* TRANSPARENT specific parameter RAM
|
||
|
*/
|
||
|
unsigned long crc_p; /* CRC Preset */
|
||
|
unsigned long crc_c; /* CRC constant */
|
||
|
};
|
||
|
|
||
|
struct timer_pram {
|
||
|
/*
|
||
|
* RISC timers parameter RAM
|
||
|
*/
|
||
|
unsigned short tm_base; /* RISC timer table base adr */
|
||
|
unsigned short tm_ptr; /* RISC timer table pointer */
|
||
|
unsigned short r_tmr; /* RISC timer mode register */
|
||
|
unsigned short r_tmv; /* RISC timer valid register */
|
||
|
unsigned long tm_cmd; /* RISC timer cmd register */
|
||
|
unsigned long tm_cnt; /* RISC timer internal cnt */
|
||
|
};
|
||
|
|
||
|
#endif
|