⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpc8260.h

📁 开放源码实时操作系统源码.
💻 H
📖 第 1 页 / 共 4 页
字号:
    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 
{
    volatile CYG_BYTE  reserved0[64];    /* Reserved */
    volatile CYG_WORD16 RxCellTmpBase;    /* Rx cell temporary base address */
    volatile CYG_WORD16 TxCellTmpBase;    /* Tx cell temporary base address */
    volatile CYG_WORD16 UdcTmpBase;       /* UDC temp base address (in UDC mode only) */
    volatile CYG_WORD16 IntRctBase;       /* Internal RTC base address */
    volatile CYG_WORD16 IntTctBase;       /* Internal TCT base address */
    volatile CYG_WORD16 IntTcteBase;      /* Internal ACT base address */
    volatile CYG_BYTE  reserved1[4];     /* reserved four bytes */
    volatile CYG_WORD  ExtRctBase;       /* Extrnal RTC base address */
    volatile CYG_WORD  ExtTctBase;       /* Extrnal TCT base address */
    volatile CYG_WORD  ExtTcteBase;      /* Extrnal ACT base address */
    volatile CYG_WORD16 UeadOffset;       /* The offset in half-wordunits of the UEAD
                                 entry in the UDC extra header. Should be
                                 even address. If little-endian format is
                                 used, the UeadOffset is of the little-endian
                                 format. */
    volatile CYG_BYTE  reserved2[2];     /* Reserved */
    volatile CYG_WORD16 PmtBase;      /* Performance monitoring table base address */
    volatile CYG_WORD16 ApcParamBase;    /* APC Parameters table base address */
    volatile CYG_WORD16 FbpParamBase;    /* Free buffer pool parameters base address */
    volatile CYG_WORD16 IntQParamBase;   /* Interrupt queue parameters table base */
    volatile CYG_BYTE  reserved3[2];
    volatile CYG_WORD16 UniStatTableBase; /* UNI statistics table base */
    volatile CYG_WORD  BdBaseExt;        /* BD ring base address extension */
    union 
    {
       struct AddressCompressionPram   AddrCompression;
       struct ExtCamPram               ExtCam;
    } AddrMapping;            /* Address look-up mechanism */
    volatile CYG_WORD16 VciFiltering;     /* VCI filtering enable bits. If bit i is set,
                                 the cell with VCI=i will be sent to the
                                 raw cell queue. The bits 0-2 and 5 should
                                 be zero. */
    volatile CYG_WORD16 Gmode;            /* Global mode */
    volatile CYG_WORD16 CommInfo1;        /* The information field associated with the */
    volatile CYG_WORD  CommInfo2;        /* last host command */
    volatile CYG_BYTE  reserved4[4];     /* Reserved */
    volatile CYG_WORD  CRC32Preset;      /* Preset for CRC32 */
    volatile CYG_WORD  CRC32Mask;        /* Constant mask for CRC32 */
    volatile CYG_WORD16 AAL1SnpTableBase; /* AAl1 SNP protection look-up table base */
    volatile CYG_WORD16 reserved5;        /* Reserved */
    volatile CYG_WORD  SrtsBase;         /* External SRTS logic base address. For AAL1
                                 only. Should be 16 bytes aligned */
    volatile CYG_WORD16 IdleBase;         /* Idle cell base address */
    volatile CYG_WORD16 IdleSize;         /* Idle cell size: 52, 56, 60, 64 */
    volatile CYG_WORD  EmptyCellPayload; /* Empty cell payload (little-indian) */
    
    /* ABR specific only */
    volatile CYG_WORD  Trm; /* Upper bound on time between F-RM cells for active source */                                 
    volatile CYG_WORD16 Nrm; /* Controls the maximum data cells sent for each F-RM cell. */                           
    volatile CYG_WORD16 Mrm; /* Controls bandwidth between F-RM, B-RM and user data cell */
    volatile CYG_WORD16 Tcr;              /* Tag cell rate */
    volatile CYG_WORD16 AbrRxTcte;        /* ABR reserved area address (2-CYG_WORD16 aligned)*/
    volatile CYG_BYTE  reserved7[76];    /* Reserved */
} _PackedType t_Atm_Pram;



/*---------------------------------------------------------------------------*/
/*                     SERIAL MANAGEMENT CHANNEL  (SMC)                   */
/*---------------------------------------------------------------------------*/

typedef _Packed struct  
{
   CYG_WORD16   rbase;      /* Rx BD Base Address */
   CYG_WORD16   tbase;      /* Tx BD Base Address */
   CYG_BYTE    rfcr;    /* Rx function code */
   CYG_BYTE    tfcr;    /* Tx function code */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -