📄 mpc8xxx.h
字号:
} SpecificProtocol;
volatile CYG_BYTE COMPLETE_SIZE_OF_DPRAM_PAGE[0x5c];
} _PackedType t_Scc_Pram;
/*---------------------------------------------------------------------------*/
/* FAST COMMUNICATION CONTROLLER (FCC) */
/*---------------------------------------------------------------------------*/
/*----------*/
/* FCC HDLC */
/*----------*/
typedef _Packed struct
{
CYG_BYTE reserved1[8]; /* Reserved area */
CYG_WORD c_mask; /* CRC constant */
CYG_WORD c_pres; /* CRC preset */
CYG_WORD16 disfc; /* discarded frame counter */
CYG_WORD16 crcec; /* CRC error counter */
CYG_WORD16 abtsc; /* abort sequence counter */
CYG_WORD16 nmarc; /* nonmatching address rx cnt */
CYG_WORD max_cnt; /* maximum length counter */
CYG_WORD16 mflr; /* maximum frame length reg */
CYG_WORD16 rfthr; /* received frames threshold */
CYG_WORD16 rfcnt; /* received frames count */
CYG_WORD16 hmask; /* user defined frm addr mask */
CYG_WORD16 haddr1; /* user defined frm address 1 */
CYG_WORD16 haddr2; /* user defined frm address 2 */
CYG_WORD16 haddr3; /* user defined frm address 3 */
CYG_WORD16 haddr4; /* user defined frm address 4 */
CYG_WORD16 tmp; /* temp */
CYG_WORD16 tmp_mb; /* temp */
} _PackedType t_HdlcFcc_Pram;
/*--------------*/
/* FCC Ethernet */
/*--------------*/
typedef _Packed struct
{
CYG_WORD stat_bus; /* Internal use buffer. */
CYG_WORD cam_ptr; /* CAM address. */
CYG_WORD c_mask; /* CRC constant mask*/
CYG_WORD c_pres; /* CRC preset */
CYG_WORD crcec; /* CRC error counter */
CYG_WORD alec; /* alignment error counter */
CYG_WORD disfc; /* discarded frame counter */
CYG_WORD16 ret_lim; /* Retry limit threshold. */
CYG_WORD16 ret_cnt; /* Retry limit counter. */
CYG_WORD16 p_per; /* persistence */
CYG_WORD16 boff_cnt; /* back-off counter */
CYG_WORD gaddr_h; /* group address filter, high */
CYG_WORD gaddr_l; /* group address filter, low */
CYG_WORD16 tfcstat; /* out of sequece Tx BD staus. */
CYG_WORD16 tfclen; /* out of sequece Tx BD length. */
CYG_WORD tfcptr; /* out of sequece Tx BD data pointer. */
CYG_WORD16 mflr; /* maximum frame length reg */
CYG_WORD16 paddr1_h; /* physical address (MSB) */
CYG_WORD16 paddr1_m; /* physical address */
CYG_WORD16 paddr1_l; /* physical address (LSB) */
CYG_WORD16 ibd_cnt; /* internal BD counter. */
CYG_WORD16 ibd_start; /* internal BD start pointer. */
CYG_WORD16 ibd_end; /* internal BD end pointer. */
CYG_WORD16 tx_len; /* tx frame length counter */
CYG_BYTE ibd_base[0x20]; /* internal micro code usage. */
CYG_WORD iaddr_h; /* individual address filter, high */
CYG_WORD iaddr_l; /* individual address filter, low */
CYG_WORD16 minflr; /* minimum frame length reg */
CYG_WORD16 taddr_h; /* temp address (MSB) */
CYG_WORD16 taddr_m; /* temp address */
CYG_WORD16 taddr_l; /* temp address (LSB) */
CYG_WORD16 pad_ptr; /* pad_ptr. */
CYG_WORD16 cf_type; /* flow control frame type coding. */
CYG_WORD16 cf_range; /* flow control frame range. */
CYG_WORD16 max_b; /* max buffer descriptor byte count. */
CYG_WORD16 maxd1; /* max DMA1 length register. */
CYG_WORD16 maxd2; /* max DMA2 length register. */
CYG_WORD16 maxd; /* Rx max DMA. */
CYG_WORD16 dma_cnt; /* Rx DMA counter. */
/* counter: */
CYG_WORD octc; /* received octets counter. */
CYG_WORD colc; /* estimated number of collisions */
CYG_WORD broc; /* received good packets of broadcast address */
CYG_WORD mulc; /* received good packets of multicast address */
CYG_WORD uspc; /* received packets shorter then 64 octets. */
CYG_WORD frgc; /* as uspc + bad packets */
CYG_WORD ospc; /* received packets longer then 1518 octets. */
CYG_WORD jbrc; /* as ospc + bad packets */
CYG_WORD p64c; /* received packets of 64 octets.. */
CYG_WORD p65c; /* received packets of 65-128 octets.. */
CYG_WORD p128c; /* received packets of 128-255 octets.. */
CYG_WORD p256c; /* received packets of 256-511 octets.. */
CYG_WORD p512c; /* received packets of 512-1023 octets.. */
CYG_WORD p1024c; /* received packets of 1024-1518 octets.. */
CYG_WORD cam_buf; /* cam respond internal buffer. */
CYG_WORD16 rfthr; /* received frames threshold */
CYG_WORD16 rfcnt; /* received frames count */
} _PackedType t_EnetFcc_Pram;
/*-----------------*/
/* FCC Common PRAM */
/*-----------------*/
typedef _Packed struct
{
CYG_WORD16 riptr; /* Rx internal temporary data pointer. */
CYG_WORD16 tiptr; /* Tx internal temporary data pointer. */
CYG_WORD16 reserved0; /* Reserved */
CYG_WORD16 mrblr; /* Rx buffer length */
CYG_WORD rstate; /* Rx internal state */
CYG_WORD rbase; /* RX BD base address */
CYG_WORD16 rbdstat; /* Rx BD status and control */
CYG_WORD16 rbdlen; /* Rx BD data length */
CYG_WORD rdptr; /* rx BD data pointer */
CYG_WORD tstate; /* Tx internal state */
CYG_WORD tbase; /* TX BD base address */
CYG_WORD16 tbdstat; /* Tx BD status and control */
CYG_WORD16 tbdlen; /* Tx BD data length */
CYG_WORD tdptr; /* Tx data pointer */
CYG_WORD rbptr; /* rx BD pointer */
CYG_WORD tbptr; /* Tx BD pointer */
CYG_WORD rcrc; /* Temp receive CRC */
CYG_WORD reserved_1[0x1];
CYG_WORD tcrc; /* Temp transmit CRC */
union /* Protocol-Specific parameter ram */
{
t_HdlcFcc_Pram h;
t_EnetFcc_Pram e;
} SpecificProtocol;
} _PackedType t_Fcc_Pram;
/*---------------------------------------------------------------------------*/
/* MULTICHANNEL COMMUNICATION CONTROLLER (MCC) */
/*---------------------------------------------------------------------------*/
/******************************************************************************
* Note that each MCC uses multiple logical channels. We first define the *
* PRAM for a logical channel (which can be used in either HDLC or Transparent *
* mode; wherever there are differences, it is specified), followed by the *
* PRAM for an MCC itself. *
******************************************************************************/
/*---------------------*/
/* MCC Logical Channel */
/*---------------------*/
typedef _Packed struct
{
CYG_WORD tstate; /* Tx internal state. */
CYG_WORD zistate; /* Zero insertion machine state. */
CYG_WORD zidata0; /* Zero insertion high CYG_WORD16. */
CYG_WORD zidata1; /* Zero insertion low CYG_WORD16. */
CYG_WORD16 tbdflags; /* Tx internal BD flags. */
CYG_WORD16 tbdcnt; /* Tx internal byte count . */
CYG_WORD tbdptr; /* Tx internal data pointer. */
CYG_WORD16 intmask; /* Interrupt mask flags. */
CYG_WORD16 chamr; /* channel mode register. */
CYG_WORD tcrc; /* Transparent: reserved. */
/* Hdlc: Temp receive CRC.*/
CYG_WORD rstate; /* Rx internal state. */
CYG_WORD zdstate; /* Zero deletion machine state. */
CYG_WORD zddata0; /* Zero deletion high CYG_WORD16. */
CYG_WORD zddata1; /* Zero deletion low CYG_WORD16. */
CYG_WORD16 rbdflags; /* Rx internal BD flags. */
CYG_WORD16 rbdcnt; /* Rx internal byte count . */
CYG_WORD rbdptr; /* Rx internal data pointer. */
CYG_WORD16 maxrlen; /* Transparent: Max receive buffer length. */
/* Hdlc: Max receive frame length. */
CYG_WORD16 sync_maxcnt;/* Transparent: Receive synchronization pattern*/
/* Hdlc: Max length counter. */
CYG_WORD rcrc; /* Transparent: reserved. */
/* Hdlc: Temp receive CRC.*/
} _PackedType t_Mch_Pram;
/*----------*/
/* MCC PRAM */
/*----------*/
typedef _Packed struct
{
CYG_WORD mccbase; /* A pointer to starting address of BD rings. */
CYG_WORD16 mccstate; /* Controller state. */
CYG_WORD16 mrblr; /* Maximum receive buffer length. */
CYG_WORD16 grfthr; /* Global receive frame threshold. */
CYG_WORD16 grfcnt; /* Global receive frame counter. */
CYG_WORD rinttmp; /* Temp location for receive interrupt table entry. */
CYG_WORD data0; /* Temporary location for holding data. */
CYG_WORD data1; /* Temporary location for holding data. */
CYG_WORD tintbase; /* Transmit interrupt table base address. */
CYG_WORD tintptr; /* Transmit interrupt table pointer. */
CYG_WORD tinttmp; /* Temp location for receive interrupt table entry. */
CYG_WORD16 sctpbase; /* A pointer to the super channel transmit table*/
CYG_BYTE res0[0x2]; /* Reserved area */
CYG_WORD c_mask32; /* CRC constant. */
CYG_WORD16 xtrabase; /* A pointer to the beginning of extra parameters */
CYG_WORD16 c_mask16; /* CRC constant. */
CYG_WORD rinttmp0; /* Temp location for receive interrupt table entry. */
CYG_WORD rinttmp1; /* Temp location for receive interrupt table entry. */
CYG_WORD rinttmp2; /* Temp location for receive interrupt table entry. */
CYG_WORD rinttmp3; /* Temp location for receive interrupt table entry. */
CYG_WORD rintbase0; /* Receive interrupt table base address. */
CYG_WORD rintptr0; /* Receive interrupt table pointer. */
CYG_WORD rintbase1; /* Receive interrupt table base address. */
CYG_WORD rintptr1; /* Receive interrupt table pointer. */
CYG_WORD rintbase2; /* Receive interrupt table base address. */
CYG_WORD rintptr2; /* Receive interrupt table pointer. */
CYG_WORD rintbase3; /* Receive interrupt table base address. */
CYG_WORD rintptr3; /* Receive interrupt table pointer. */
CYG_BYTE pad[0xa0];
} _PackedType t_Mcc_Pram;
/*---------------------------------------------------------------------------*/
/* ATM PARAMETER RAM */
/*---------------------------------------------------------------------------*/
/*--------------------------------------*/
/* Address Compression parameters table */
/*--------------------------------------*/
_Packed struct AddressCompressionPram
{
volatile CYG_WORD VptBase; /* VP-level addressing table base address */
volatile CYG_WORD VctBase; /* VC-level addressing table base address */
volatile CYG_WORD Vpt1Base; /* VP1-level addressing table base address */
volatile CYG_WORD Vct1Base; /* VC1-level addressing table base address */
volatile CYG_WORD16 VpMask; /* VP mask for address compression look-up */
} _PackedType;
/*-------------------------------*/
/* External CAM parameters table */
/*-------------------------------*/
_Packed struct ExtCamPram
{
volatile CYG_WORD ExtCamBase; /* Base address of the external CAM */
volatile CYG_BYTE reserved00[4]; /* Reserved */
volatile CYG_WORD ExtCam1Base; /* Base address of the external CAM1 */
volatile CYG_BYTE reserved01[6]; /* Reserved */
} _PackedType;
/*---------------------------*/
/* ATM mode parameters table */
/*---------------------------*/
typedef _Packed struct AtmPram
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -