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

📄 mpc8260.h

📁 MPC8260的Fast Ethernet的例子。配置FCC为Fast Ethernet模式
💻 H
📖 第 1 页 / 共 4 页
字号:
    VUBYTE  ibd_base[0x20]; /* internal micro code usage. */
    VUWORD  iaddr_h;        /* individual address filter, high */
    VUWORD  iaddr_l;        /* individual address filter, low */
    VUHWORD minflr;         /* minimum frame length reg */
    VUHWORD taddr_h;        /* temp address (MSB) */
    VUHWORD taddr_m;        /* temp address */
    VUHWORD taddr_l;        /* temp address (LSB) */
    VUHWORD pad_ptr;        /* pad_ptr. */
    VUHWORD cf_type;        /* RESERVED (flow control frame type coding) */
    VUHWORD cf_range;       /* flow control frame range. */
    VUHWORD max_b;          /* max buffer descriptor byte count. */
    VUHWORD maxd1;          /* max DMA1 length register. */
    VUHWORD maxd2;          /* max DMA2 length register. */
    VUHWORD maxd;           /* Rx max DMA. */
    VUHWORD dma_cnt;        /* Rx DMA counter. */
    
    /* counter: */
    VUWORD  octc;           /* received octets counter. */
    VUWORD  colc;           /* estimated number of collisions */
    VUWORD  broc;           /* received good packets of broadcast address */
    VUWORD  mulc;           /* received good packets of multicast address */
    VUWORD  uspc;           /* received packets shorter then 64 octets. */
    VUWORD  frgc;           /* as uspc + bad packets */
    VUWORD  ospc;           /* received packets longer then 1518 octets. */
    VUWORD  jbrc;           /* as ospc + bad packets  */
    VUWORD  p64c;           /* received packets of 64 octets. */
    VUWORD  p65c;           /* received packets of 65-128 octets. */
    VUWORD  p128c;          /* received packets of 128-255 octets. */
    VUWORD  p256c;          /* received packets of 256-511 octets. */
    VUWORD  p512c;          /* received packets of 512-1023 octets. */
    VUWORD  p1024c;         /* received packets of 1024-1518 octets. */
    VUWORD  cam_buf;        /* cam respond internal buffer. */
    VUHWORD rfthr;          /* received frames threshold */
    VUHWORD rfcnt;          /* received frames count */
} _PackedType t_EnetFcc_Pram;


/*-----------------*/
/* FCC Common PRAM */
/*-----------------*/

typedef  struct 
{
    VUHWORD riptr;          /* Rx internal temporary data pointer. */
    VUHWORD tiptr;          /* Tx internal temporary data pointer. */
    VUHWORD reserved0;      /* Reserved */
    VUHWORD mrblr;          /* Rx buffer length */
    VUWORD  rstate;         /* Rx internal state */
    VUWORD  rbase;          /* RX BD base address */
    VUHWORD rbdstat;        /* Rx BD status and control */
    VUHWORD rbdlen;         /* Rx BD data length */
    VUWORD  rdptr;          /* rx BD data pointer */
    VUWORD  tstate;         /* Tx internal state */
    VUWORD  tbase;          /* TX BD base address */
    VUHWORD tbdstat;        /* Tx BD status and control */
    VUHWORD tbdlen;         /* Tx BD data length */
    VUWORD  tdptr;          /* Tx  data pointer */
    VUWORD  rbptr;          /* rx BD pointer */
    VUWORD  tbptr;          /* Tx BD pointer */
    VUWORD  rcrc;           /* Temp receive CRC */
    VUWORD  reserved_1[0x1];
    VUWORD  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  struct
{
    VUWORD  tstate;         /* Tx internal state. */ 
    VUWORD  zistate;        /* Zero insertion machine state. */
    VUWORD  zidata0;        /* Zero insertion high VUHWORD. */
    VUWORD  zidata1;        /* Zero insertion low VUHWORD. */
    VUHWORD tbdflags;       /* Tx internal BD flags. */
    VUHWORD tbdcnt;         /* Tx internal byte count . */
    VUWORD  tbdptr;         /* Tx internal data pointer. */
    VUHWORD intmask;        /* Interrupt mask flags. */
    VUHWORD chamr;          /* channel mode register. */
    VUWORD  tcrc;           /* Transparent: reserved. */
                            /* Hdlc: Temp receive CRC.*/
    VUWORD  rstate;         /* Rx internal state. */ 
    VUWORD  zdstate;        /* Zero deletion machine state. */
    VUWORD  zddata0;        /* Zero deletion  high VUHWORD. */
    VUWORD  zddata1;        /* Zero deletion  low VUHWORD. */
    VUHWORD rbdflags;       /* Rx internal BD flags. */
    VUHWORD rbdcnt;         /* Rx internal byte count . */
    VUWORD  rbdptr;         /* Rx internal data pointer. */
    VUHWORD maxrlen;        /* Transparent: Max receive buffer length. */
                            /* Hdlc: Max receive frame length. */
    VUHWORD sync_maxcnt;    /* Transparent: Receive synchronization pattern*/
                            /* Hdlc: Max length counter. */
    VUWORD  rcrc;           /* Transparent: reserved. */
                            /* Hdlc: Temp receive CRC.*/
} _PackedType t_Mch_Pram;


/*----------*/
/* MCC PRAM */
/*----------*/

typedef  struct
{
    VUWORD  mccbase;        /* A pointer to starting address of BD rings. */
    VUHWORD mccstate;       /* Controller state. */
    VUHWORD mrblr;          /* Maximum receive buffer length. */
    VUHWORD grfthr;         /* Global receive frame threshold. */
    VUHWORD grfcnt;         /* Global receive frame counter. */
    VUWORD  rinttmp;        /* Temp location for rx interrupt table entry. */                            
    VUWORD  data0;          /* Temporary location for holding data. */
    VUWORD  data1;          /* Temporary location for holding data. */
    VUWORD  tintbase;       /* Transmit interrupt table base address. */
    VUWORD  tintptr;        /* Transmit interrupt table pointer. */ 
    VUWORD  tinttmp;        /* Temp location for rx interrupt table entry. */
    VUHWORD sctpbase;       /* Pointer to the super channel transmit table*/
    VUBYTE  res0[0x2];      /* Reserved area */
    VUWORD  c_mask32;       /* CRC constant. */
    VUHWORD xtrabase;       /* Pointer to the beginning of extra parameters */                            
    VUHWORD c_mask16;       /* CRC constant. */
    VUWORD  rinttmp0;       /* Temp location for rx interrupt table entry. */                            
    VUWORD  rinttmp1;       /* Temp location for rx interrupt table entry. */
    VUWORD  rinttmp2;       /* Temp location for rx interrupt table entry. */
    VUWORD  rinttmp3;       /* Temp location for rx interrupt table entry. */
    VUWORD  rintbase0;      /* Rx interrupt table base address. */
    VUWORD  rintptr0;       /* Rx interrupt table pointer. */
    VUWORD  rintbase1;      /* Rx interrupt table base address. */
    VUWORD  rintptr1;       /* Rx interrupt table pointer. */
    VUWORD  rintbase2;      /* Rx interrupt table base address. */
    VUWORD  rintptr2;       /* Rx interrupt table pointer. */
    VUWORD  rintbase3;      /* Rx interrupt table base address. */
    VUWORD  rintptr3;       /* Rx interrupt table pointer. */
    VUBYTE  pad[0xa0];
} _PackedType t_Mcc_Pram;



/*---------------------------------------------------------------------------*/
/*                              ATM PARAMETER RAM                            */
/*---------------------------------------------------------------------------*/


/*--------------------------------------*/
/* Address Compression parameters table */
/*--------------------------------------*/

 struct AddressCompressionPram 
{
    VUWORD  VptBase;        /* VP-level addressing table base address */
    VUWORD  VctBase;        /* VC-level addressing table base address */
    VUWORD  Vpt1Base;       /* VP1-level addressing table base address */ 
    VUWORD  Vct1Base;       /* VC1-level addressing table base address */
    VUHWORD VpMask;         /* VP mask for address compression look-up */
} _PackedType;


/*-------------------------------*/
/* External CAM parameters table */
/*-------------------------------*/

 struct ExtCamPram 
{
    VUWORD  ExtCamBase;     /* Base address of the external CAM */
    VUBYTE  reserved00[4];  /* Reserved */
    VUWORD  ExtCam1Base;    /* Base address of the external CAM1 */
    VUBYTE  reserved01[6];  /* Reserved */
} _PackedType;


/*---------------------------*/
/* ATM mode parameters table */
/*---------------------------*/

typedef  struct AtmPram 
{
    VUBYTE  reserved0[64];  /* Reserved */
    VUHWORD RxCellTmpBase;  /* Rx cell temporary base address */
    VUHWORD TxCellTmpBase;  /* Tx cell temporary base address */
    VUHWORD VUdcTmpBase;    /* VUDC temp base address (in VUDC mode only) */
    VUHWORD IntRctBase;     /* Internal RTC base address */
    VUHWORD IntTctBase;     /* Internal TCT base address */
    VUHWORD IntTcteBase;    /* Internal ACT base address */
    VUBYTE  reserved1[4];   /* reserved four bytes */
    VUWORD  ExtRctBase;     /* Extrnal RTC base address */
    VUWORD  ExtTctBase;     /* Extrnal TCT base address */
    VUWORD  ExtTcteBase;    /* Extrnal ACT base address */
    VUHWORD VUeadOffset;    /* The offset in half-wordunits of the VUEAD
                               entry in the VUDC extra header. Should be
                               even address. If little-endian format is
                               used, the VUeadOffset is of the little-endian
                               format. */
    VUBYTE  reserved2[2];   /* Reserved */
    VUHWORD PmtBase;        /* Performance monitoring table base address */
    VUHWORD ApcParamBase;   /* APC Parameters table base address */
    VUHWORD FbpParamBase;   /* Free buffer pool parameters base address */
    VUHWORD IntQParamBase;  /* Interrupt queue parameters table base */
    VUBYTE  reserved3[2];
    VUHWORD VUniStatTableBase; /* VUNI statistics table base */
    VUWORD  BdBaseExt;      /* BD ring base address extension */
    union 
    {
        struct AddressCompressionPram   AddrCompression;
        struct ExtCamPram               ExtCam;
    } AddrMapping;          /* Address look-up mechanism */
    VUHWORD 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. */
    VUHWORD Gmode;          /* Global mode */
    VUHWORD CommInfo1;      /* The information field associated with the */
    VUWORD  CommInfo2;      /* last host command */
    VUBYTE  reserved4[4];   /* Reserved */
    VUWORD  CRC32Preset;    /* Preset for CRC32 */
    VUWORD  CRC32Mask;      /* Constant mask for CRC32 */
    VUHWORD AAL1SnpTableBase; /* AAl1 SNP protection look-up table base */
    VUHWORD reserved5;      /* Reserved */
    VUWORD  SrtsBase;       /* External SRTS logic base address. For AAL1
                               only. Should be 16 bytes aligned */
    VUHWORD IdleBase;       /* Idle cell base address */
    VUHWORD IdleSize;       /* Idle cell size: 52, 56, 60, 64 */
    VUWORD  EmptyCellPayload; /* Empty cell payload (little-indian) */
    
    /* ABR specific only */
    VUWORD  Trm; /* VUpper bound on time between F-RM cells for active source */                                 
    VUHWORD Nrm; /* Controls the maximum data cells sent for each F-RM cell. */                           
    VUHWORD Mrm; /* Controls bandwidth between F-RM, B-RM and user data cell */
    VUHWORD Tcr;            /* Tag cell rate */
    VUHWORD AbrRxTcte;      /* ABR reserved area address (2-UHWORD aligned)*/
    VUBYTE  reserved7[76];  /* Reserved */
} _PackedType t_Atm_Pram;



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

typedef  struct  
{
    VUHWORD rbase;          /* Rx BD Base Address */
    VUHWORD tbase;          /* Tx BD Base Address */
    VUBYTE  rfcr;           /* Rx function code */
    VUBYTE  tfcr;           /* Tx function code */
    VUHWORD mrblr;          /* Rx buffer length */
    VUWORD  rstate;         /* Rx internal state */
    VUWORD  rptr;           /* Rx internal data pointer */
    VUHWORD rbptr;          /* rb BD Pointer */
    VUHWORD rcount;         /* Rx internal byte count */
    VUWORD  rtemp;          /* Rx temp */
    VUWORD  tstate;         /* Tx internal state */
    VUWORD  tptr;           /* Tx internal data pointer */
    VUHWORD tbptr;          /* Tx BD pointer */
    VUHWORD tcount;         /* Tx byte count */
    VUWORD  ttemp;          /* Tx temp */
    
    /* SMC VUART-specific PRAM */
    VUHWORD max_idl;        /* Maximum IDLE Characters */
    VUHWORD idlc;           /* Temporary IDLE Counter */
    VUHWORD brkln;          /* Last Rx Break Length */
    VUHWORD brkec;          /* Rx Break Condition Counter */
    VUHWORD brkcr;          /* Break Count Register (Tx) */
    VUHWORD r_mask;         /* Temporary bit mask */  
} _PackedType t_Smc_Pram;

⌨️ 快捷键说明

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