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

📄 motfcc2end.h

📁 MPC8560 for vxwork BSP
💻 H
📖 第 1 页 / 共 2 页
字号:
    UINT32              numRXFHandlerNetBufAllocErrors;    UINT32              numRXFHandlerNetCblkAllocErrors;    UINT32              numRXFHandlerNetMblkAllocErrors;    UINT32              numRXFHandlerFramesCollisions;    UINT32              numRXFHandlerFramesCrcErrors;    UINT32              numRXFHandlerFramesLong;    UINT32              numRXFExceedBurstLimit;    UINT32              numNetJobAddErrors;    UINT32              numRxStallsEntered;    UINT32              numRxStallsCleared;    UINT32              numTxStallsCleared;    UINT32              numTxStallErrors;    UINT32              numLSCHandlerEntries;    UINT32              numLSCHandlerExits;    UINT32              motFccTxErr;    UINT32              motFccHbFailErr;    UINT32              motFccTxLcErr;    UINT32              motFccTxUrErr;    UINT32              motFccTxCslErr;    UINT32              motFccTxRlErr;    UINT32              motFccTxDefErr;    UINT32              motFccRxLgErr;    UINT32              motFccRxNoErr;    UINT32              motFccRxCrcErr;    UINT32              motFccRxOvErr;    UINT32              motFccRxShErr;    UINT32              motFccRxLcErr;    UINT32              motFccRxMemErr;}FCC_DRIVER_STATS;/*---------------------------------------------------------------------*//*       F C C   E T H E R N E T   P A R A M E T E R S                 *//*---------------------------------------------------------------------*/typedef volatile unsigned long VULONG;typedef volatile unsigned short VUSHORT;typedef volatile unsigned char VUCHAR;typedef struct {    VULONG    stat_bus;       /* Internal use buffer. */    VULONG    cam_ptr;        /* CAM address. */    VULONG    c_mask;         /* CRC constant mask*/    VULONG    c_pres;         /* CRC preset */    VULONG    crcec;          /* CRC error counter */    VULONG    alec;           /* alignment error counter */    VULONG    disfc;          /* discarded frame counter */    VUSHORT   ret_lim;        /* Retry limit threshold. */    VUSHORT   ret_cnt;        /* Retry limit counter. */    VUSHORT   p_per;          /* persistence */    VUSHORT   boff_cnt;       /* back-off counter */    VULONG    gaddr_h;        /* group address filter, high */    VULONG    gaddr_l;        /* group address filter, low */    VUSHORT   tfcstat;        /* out of sequence Tx BD status. */    VUSHORT   tfclen;         /* out of sequence Tx BD length. */    VULONG    tfcptr;         /* out of sequence Tx BD data pointer. */    VUSHORT   maxflr;         /* maximum frame length reg */    VUSHORT   paddr_h;        /* physical address (MSB) */    VUSHORT   paddr_m;        /* physical address */    VUSHORT   paddr_l;        /* physical address (LSB) */    VUSHORT   ibd_cnt;        /* internal BD counter. */    VUSHORT   ibd_start;      /* internal BD start pointer. */    VUSHORT   ibd_end;        /* internal BD end pointer. */    VUSHORT   tx_len;         /* tx frame length counter */    VUCHAR    ibd_base[0x20]; /* internal micro code usage. */    VULONG    iaddr_h;        /* individual address filter, high */    VULONG    iaddr_l;        /* individual address filter, low */    VUSHORT   minflr;         /* minimum frame length reg */    VUSHORT   taddr_h;        /* temp address (MSB) */    VUSHORT   taddr_m;        /* temp address */    VUSHORT   taddr_l;        /* temp address (LSB) */    VUSHORT   pad_ptr;        /* pad_ptr. */    VUSHORT   cf_type;        /* flow control frame type coding. */    VUSHORT   cf_range;       /* flow control frame range. */    VUSHORT   max_b;          /* max buffer descriptor byte count. */    VUSHORT   maxd1;          /* max DMA1 length register. */    VUSHORT   maxd2;          /* max DMA2 length register. */    VUSHORT   maxd;           /* Rx max DMA. */    VUSHORT   dma_cnt;        /* Rx DMA counter. */    /* counter: */    VULONG    octc;           /* received octets counter. */    VULONG    colc;           /* estimated number of collisions */    VULONG    broc;           /* received good packets of broadcast address */    VULONG    mulc;           /* received good packets of multicast address */    VULONG    uspc;           /* received packets shorter then 64 octets. */    VULONG    frgc;           /* as uspc + bad packets */    VULONG    ospc;           /* received packets longer then 1518 =octets. */    VULONG    jbrc;           /* as ospc + bad packets  */    VULONG    p64c;           /* received packets of 64 octets.. */    VULONG    p65c;           /* received packets of 65-128 octets.. */    VULONG    p128c;          /* received packets of 128-255 octets.. */    VULONG    p256c;          /* received packets of 256-511 octets.. */    VULONG    p512c;          /* received packets of 512-1023 octets.. */    VULONG    p1024c;         /* received packets of 1024-1518 octets.. */    VULONG    cam_buf;        /* cam respond internal buffer. */    VUSHORT   rfthr;          /* received frames threshold */    VUSHORT   rfcnt;          /* received frames count */} _WRS_PACK_ALIGN(4) FCC_ETH_PARAM_T;/*---------------------------------------------------------------------*//*               F C C     P A R A M E T E R S                         *//*---------------------------------------------------------------------*/typedef struct {    VUSHORT   riptr;      /* Rx internal temporary data pointer. */    VUSHORT   tiptr;      /* Tx internal temporary data pointer. */    VUSHORT   RESERVED0;  /* Reserved */    VUSHORT   mrblr;      /* Rx buffer length */    VULONG    rstate;     /* Rx internal state */    VULONG    rbase;      /* RX BD base address */    VUSHORT   rbdstat;    /* Rx BD status and control */    VUSHORT   rbdlen;     /* Rx BD data length */    VULONG    rdptr;      /* rx BD data pointer */    VULONG    tstate;     /* Tx internal state */    VULONG    tbase;      /* TX BD base address */    VUSHORT   tbdstat;    /* Tx BD status and control */    VUSHORT   tbdlen;     /* Tx BD data length */    VULONG    tdptr;      /* Tx  data pointer */    VULONG    rbptr;      /* rx BD pointer */    VULONG    tbptr;      /* Tx BD pointer */    VULONG    rcrc;       /* Temp receive CRC */    VULONG    tcrc;       /* Temp transmit CRC */  VULONG foo;/*-----------------------------------------------------------------*//*                   Protocol Specific Parameters                  *//*-----------------------------------------------------------------*/    union {    /* Force this union to be 256 bytes - 0x34 bytes big.     *  The 0x34 is the size of the protocol independent part     *  of the structure.     */        UCHAR       pads[0xc4];        FCC_ETH_PARAM_T     e;    } prot;} _WRS_PACK_ALIGN(4) FCC_PARAM_T;/*-----------------------------------------------------------------*//*                   FCC registers                                 *//*-----------------------------------------------------------------*/typedef struct {    VULONG  fcc_gfmr;        /* General Mode Register */    VULONG  fcc_psmr;        /* Protocol Specific Mode Reg */    VUSHORT fcc_todr;        /* Transmit On Demand Reg */    VUCHAR  reserved22[0x2];    VUSHORT fcc_dsr;         /* Data Sync Register */    VUCHAR  reserved23[0x2];    VUSHORT fcc_fcce;        /* Event Register */    VUSHORT unused1;    VUSHORT fcc_fccm;        /* Mask Register */    VUSHORT unused2;    VUCHAR  fcc_fccs;        /* Status Register */    VUCHAR  reserved24[0x3];    VULONG  fcc_tirr;        /* Transmit Partial Rate Reg */} _WRS_PACK_ALIGN(4) FCC_REG_T;/* * Combine the status and length fields into a single field to * discourage multiple accesses to the uncached buffer descriptors. */typedef struct _FCC_BD    {    volatile UINT32 bdStatLen; /* Status in upper 16 bits; length in lower */    volatile UINT32 bdAddr;    } FCC_BD;/* * This is the bsp boot information structure for the Mii/Phy, Dpram * and misc functions. It contains bsp specific call backs for the driver. * A pointer to the structure is passed in the load string. */typedef struct    {    FUNCPTR miiPhyInit;       /* bsp MiiPhy init function */    FUNCPTR miiPhyInt;        /* Driver function for BSP to call */    FUNCPTR miiPhyBitRead;    /* Bit Read function */    FUNCPTR miiPhyBitWrite;   /* Bit Write function */    FUNCPTR miiPhyDuplex;     /* duplex status call back */    FUNCPTR miiPhySpeed;      /* speed status call back */    FUNCPTR hbFail;           /* heart beat fail */    FUNCPTR intDisc;          /* disconnect Function */    FUNCPTR dpramFree;    FUNCPTR dpramFccMalloc;    FUNCPTR dpramFccFree;    FUNCPTR reserved[4];      /* future use */    } FCC_END_FUNCS;/* The definition of the driver control structure */typedef struct drv_ctrl    {    END_OBJ             endObj;         /* base class */#if defined(MOT_FCC_DBG) || defined (MOT_FCC_STAT_MONITOR)    FCC_DRIVER_STATS   * Stats;#endif    int                 unit;           /* unit number */    FCC_REG_T          * fccReg;    FCC_ETH_PARAM_T    * fccEthPar;    FCC_PARAM_T        * fccPar;    UINT8       fccNum;         /* FCC being used */    UINT32      immrVal;        /* internal RAM base address */    UINT32      fifoTxBase;     /* address of Tx FIFO in internal RAM */    UINT32      fifoRxBase;     /* address of Rx FIFO in internal RAM */    char      * pBufBase;       /* FCC memory pool base */    UINT32      bufSize;        /* FCC memory pool size */    char      * pRawBdBase;     /* FCC BDs base */    char      * pBdBase;        /* FCC BDs base */    UINT32      bdSize;         /* FCC BDs size */    void      * riPtr;          /* save for free in unload */    void      * tiPtr;          /* save for free in unload */    void      * padPtr;         /* save for free in unload *//* receive buffer descriptor management */    UINT16      rbdNum;         /* number of TX bd's */    UINT16      rbdCnt;         /* number of rbds full */    FCC_BD    * pRbdNext;       /* RBD next to rx */    FCC_BD    * pRbdBase;       /* RBD ring */    M_BLK_ID *  pMblkList;      /* allocated clusters */    volatile BOOL rxTxHandling;	 /* true when motFccHandler() net job posted */        UINT           maxRxFrames; /* max frames to Receive in one job *//* transmit buffer descriptor management */    UINT16      tbdNum;            /* total number of TX BDs */    UINT16      tbdFree;           /* number of free TX BDs */    FCC_BD    * pTbdNext;          /* TBD index */    FCC_BD    * pTbdLast;          /* TBD index */    FCC_BD    * pTbdBase;          /* TBD ring base */    M_BLK    ** tBufList;          /* allocated clusters */    UINT16      txUnStallThresh;   /* tx reclaim threshold */    UINT32	txStallCount;      /* count of transmit stalls */    volatile BOOL txStall;         /* tx handler stalled - no Tbd */    volatile BOOL sysSuspended;    /* system was suspended */    volatile BOOL pollReceived;    /* pollReceive executed */    volatile UINT32 lastPollIndex; /* last index read in polling mode */    UINT32      mblkMult;    UINT32      clMult;    ULONG       userFlags;      /* some user flags */    INT8        flags;          /* driver state */    UINT32      state;          /* driver state including load flag */    BOOL        intrConnect;    /* interrupt has been connected */    UINT32      intMask;        /* interrupt mask register */    UINT32      fccIramAddr;    /* base addr of this fcc */    UINT32      fccPramAddr;    /* parameter RAM addr of this fcc */    UCHAR *     pTxPollBuf;     /* cluster pointer for poll mode */    M_BLK_ID    pTxPollMblk;    UINT32      clBlkSize;      /* clusters block memory size */    char *      pMBlkArea;      /* mBlock area pointer */    UINT32      mBlkSize;       /* mBlocks area memory size */    int         initType;       /* netPoolInit() or netPoolCreate() */    CACHE_FUNCS bufCacheFuncs;  /* cache descriptor */    PHY_INFO    *phyInfo;       /* info on a MII-compliant PHY */    BOOL        lscHandling;    /* function pointers to support debugging */    FUNCPTR     netJobAdd;    FUNCPTR     muxTxRestart;    FUNCPTR     muxError;    /* Bsp specific functions and call backs passed in the load string */    FCC_END_FUNCS * motFccFuncs;    FUNCPTR   hbFailFunc;    FUNCPTR   intDiscFunc;     /* assign a proper disc routine */    FUNCPTR   phyInitFunc;     /* BSP Phy Init */    FUNCPTR   phyDuplexFunc;   /* duplex function */    FUNCPTR   phySpeedFunc;    /* speed function */    FUNCPTR   dpramFreeFunc;    FUNCPTR   dpramFccMallocFunc;    FUNCPTR   dpramFccFreeFunc;    END_ERR   lastError;       /* Last error passed to muxError */    } DRV_CTRL;/* * this cache functions descriptors is used to flush/invalidate * the FCC's data buffers. They are set to the system's cache * flush and invalidate routine. This will allow proper operation * of the driver if data cache are turned on. */IMPORT STATUS   cacheInvalidate (CACHE_TYPE, void *, size_t);IMPORT STATUS   cacheFlush (CACHE_TYPE, void *, size_t);IMPORT STATUS   sysFccEnetAddrGet (int unit,UCHAR *address);IMPORT STATUS   sysFccEnetEnable (UINT32 immrVal, UINT8 fccNum);IMPORT STATUS   sysFccEnetDisable (UINT32 immrVal, UINT8 fccNum);IMPORT STATUS   sysFccMiiBitWr (UINT32 immrVal, UINT8 fccNum,                INT32 bit);IMPORT STATUS   sysFccMiiBitRd (UINT32 immrVal, UINT8 fccNum,                INT8 * bit);IMPORT STATUS   miiPhyInit (PHY_INFO * phyInfo);#ifdef __cplusplus}#endif#endif /* __INCmotFcc2Endh */

⌨️ 快捷键说明

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