📄 ethernet.h
字号:
/*-----------------------------------------------------------------------
*
* File: ethernet.h
** Description:
*
* Constants and Definitions for MPC860 Ethernet Example.
* [Interrupt-driven version].
*
* History:
** 12 JUN 96 saw Initial version.
* 20 FEB 97 sgj Created HDLC version from IRDa version
* 26 AUG 97 sgj Modified BD structure and cleaned up
* 20 NOV 97 jay Modified BD structure and cleaned up
* 07 JAN 98 ecg Created Transparent Version from HDLC version
* 22 JAN 98 ecg Created Ethernet version from Transparent version
*-----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*//* MPC8xx CONSTANTS AND DEFINITIONS */
/*----------------------------------------------------------------------*/#define INTERRUPT_LEVEL 4 /* integer between 0 and 7 inclusive */
#define BASE_EVT 0x0 /* Base Address of Exception Vector Table */
#define EXT_INT_VECTOR ((BASE_EVT) + 0x500) /* Base address of external
interrupt code */
#define NEXT_VECTOR (EXT_INT_VECTOR + 0x100)
/*----------------------------------------------------------------------*//* APPLICATION CONSTANTS AND DEFINITIONS */
/*----------------------------------------------------------------------*/
/*----------------------------------------*/
/* Constants and Definitions for Ethernet */
/*----------------------------------------*/
#define ENET_C_PRES 0xFFFFFFFF /* CRC Preset */#define ENET_C_MASK 0xDEBB20E3 /* Constant MASK for CRC */
#define ENET_MFLR 1518 /* Ethernet Max Frame Length */
#define ENET_MINFLR 64 /* Ethernet Min Frame Length */
#define ENET_MDMA 1520 /* Max DMA length */
#define ENET_RET_LIM 15 /* Retry Limit Threshold */
#define ENET_PAD 0x8888 /* Pad Characters */
#define ENET_DSR 0xD555 /* DSR value for Ethernet */
#define ENET_PADDR_H 0x5548; /* Physical Address 1 (MSB) */
#define ENET_PADDR 0x3322; /* Physical Address */
#define ENET_PADDR_L 0x1900; /* Physical Address 1 (LSB) */
#define TXBUFINDEX 8
typedef struct bcsr
{
UWORD bcsr0; /* Board Control and Status Register */
UWORD bcsr1;
UWORD bcsr2;
UWORD bcsr3;
} BCSR;
/*--------------------------------*//* Size of buffers in buffer pool */
/*--------------------------------*/#define BUFFER_SIZE 256
/*---------------------------------------------------*//* Number of Receive and Transmit Buffer Descriptors */
/*---------------------------------------------------*/#define NUM_RXBDS 8
#define NUM_TXBDS 8
/*-------------------------*//* Single buffer component */
/*-------------------------*/typedef UBYTE LB[BUFFER_SIZE];
#define MAX_TXBD_INDEX 16#define FIRST_TX_BUF 8
typedef struct BufferDescriptor
{
UHWORD bd_cstatus; /* control and status */
UHWORD bd_length; /* transfer length */
UBYTE *bd_addr; /* buffer address */
} BD;
/*--------------------------*/
/* Buffer Descriptor Format */
/*--------------------------*/
typedef struct BufferDescRings
{
BD RxBD[NUM_RXBDS]; /* Rx BD ring */
BD TxBD[NUM_TXBDS]; /* Tx BD ring */
} BDRINGS;
#define BD_RX_ERROR 0xBF /* Mask for set of Receive Buffer Errors,
including: DE, LG, NO, AB, CR, OV, CD */
/*-----------------------------------------------------------------*/
/* Number of Instructions in Vector Table for particular Interrupt */
/*-----------------------------------------------------------------*/
#define VECTOR_BLOCK_LEN 0x100
/*------------------------------------*/
/* SIU Vector Interrupt Code: Level 4 */
/*------------------------------------*/
#define IC_LEVEL_4 0x24
/*----------------------------------------------------------*//* SCC1 Interrupt Vector Code in CPM Vector Register (CIVR) */
/*----------------------------------------------------------*/#define SCC1_VECTOR 0x1E
#define ETHEN 0x20000000 /* ETHEN in bit 2 of BCSR1 */
#define READY_TO_RX_CMD 0 /* Ready to receive a command */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -