/* | |
* These files are taken from the MCF523X source code example package | |
* which is available on the Freescale website. Freescale explicitly | |
* grants the redistribution and modification of these source files. | |
* The complete licensing information is available in the file | |
* LICENSE_FREESCALE.TXT. | |
* | |
* File: mcf523x_fec.h | |
* Purpose: Register and bit definitions for the MCF523X | |
* | |
* Notes: | |
* | |
*/ | |
#ifndef __MCF523X_FEC_H__ | |
#define __MCF523X_FEC_H__ | |
/********************************************************************* | |
* | |
* Fast Ethernet Controller (FEC) | |
* | |
*********************************************************************/ | |
/* Register read/write macros */ | |
#define MCF_FEC_EIR (*(vuint32*)(void*)(&__IPSBAR[0x001004])) | |
#define MCF_FEC_EIMR (*(vuint32*)(void*)(&__IPSBAR[0x001008])) | |
#define MCF_FEC_RDAR (*(vuint32*)(void*)(&__IPSBAR[0x001010])) | |
#define MCF_FEC_TDAR (*(vuint32*)(void*)(&__IPSBAR[0x001014])) | |
#define MCF_FEC_ECR (*(vuint32*)(void*)(&__IPSBAR[0x001024])) | |
#define MCF_FEC_MMFR (*(vuint32*)(void*)(&__IPSBAR[0x001040])) | |
#define MCF_FEC_MSCR (*(vuint32*)(void*)(&__IPSBAR[0x001044])) | |
#define MCF_FEC_MIBC (*(vuint32*)(void*)(&__IPSBAR[0x001064])) | |
#define MCF_FEC_RCR (*(vuint32*)(void*)(&__IPSBAR[0x001084])) | |
#define MCF_FEC_TCR (*(vuint32*)(void*)(&__IPSBAR[0x0010C4])) | |
#define MCF_FEC_PALR (*(vuint32*)(void*)(&__IPSBAR[0x0010E4])) | |
#define MCF_FEC_PAUR (*(vuint32*)(void*)(&__IPSBAR[0x0010E8])) | |
#define MCF_FEC_OPD (*(vuint32*)(void*)(&__IPSBAR[0x0010EC])) | |
#define MCF_FEC_IAUR (*(vuint32*)(void*)(&__IPSBAR[0x001118])) | |
#define MCF_FEC_IALR (*(vuint32*)(void*)(&__IPSBAR[0x00111C])) | |
#define MCF_FEC_GAUR (*(vuint32*)(void*)(&__IPSBAR[0x001120])) | |
#define MCF_FEC_GALR (*(vuint32*)(void*)(&__IPSBAR[0x001124])) | |
#define MCF_FEC_TFWR (*(vuint32*)(void*)(&__IPSBAR[0x001144])) | |
#define MCF_FEC_FRBR (*(vuint32*)(void*)(&__IPSBAR[0x00114C])) | |
#define MCF_FEC_FRSR (*(vuint32*)(void*)(&__IPSBAR[0x001150])) | |
#define MCF_FEC_ERDSR (*(vuint32*)(void*)(&__IPSBAR[0x001180])) | |
#define MCF_FEC_ETDSR (*(vuint32*)(void*)(&__IPSBAR[0x001184])) | |
#define MCF_FEC_EMRBR (*(vuint32*)(void*)(&__IPSBAR[0x001188])) | |
#define MCF_FEC_RMON_T_DROP (*(vuint32*)(void*)(&__IPSBAR[0x001200])) | |
#define MCF_FEC_RMON_T_PACKETS (*(vuint32*)(void*)(&__IPSBAR[0x001204])) | |
#define MCF_FEC_RMON_T_BC_PKT (*(vuint32*)(void*)(&__IPSBAR[0x001208])) | |
#define MCF_FEC_RMON_T_MC_PKT (*(vuint32*)(void*)(&__IPSBAR[0x00120C])) | |
#define MCF_FEC_RMON_T_CRC_ALIGN (*(vuint32*)(void*)(&__IPSBAR[0x001210])) | |
#define MCF_FEC_RMON_T_UNDERSIZE (*(vuint32*)(void*)(&__IPSBAR[0x001214])) | |
#define MCF_FEC_RMON_T_OVERSIZE (*(vuint32*)(void*)(&__IPSBAR[0x001218])) | |
#define MCF_FEC_RMON_T_FRAG (*(vuint32*)(void*)(&__IPSBAR[0x00121C])) | |
#define MCF_FEC_RMON_T_JAB (*(vuint32*)(void*)(&__IPSBAR[0x001220])) | |
#define MCF_FEC_RMON_T_COL (*(vuint32*)(void*)(&__IPSBAR[0x001224])) | |
#define MCF_FEC_RMON_T_P64 (*(vuint32*)(void*)(&__IPSBAR[0x001228])) | |
#define MCF_FEC_RMON_T_P65TO127 (*(vuint32*)(void*)(&__IPSBAR[0x00122C])) | |
#define MCF_FEC_RMON_T_P128TO255 (*(vuint32*)(void*)(&__IPSBAR[0x001230])) | |
#define MCF_FEC_RMON_T_P256TO511 (*(vuint32*)(void*)(&__IPSBAR[0x001234])) | |
#define MCF_FEC_RMON_T_P512TO1023 (*(vuint32*)(void*)(&__IPSBAR[0x001238])) | |
#define MCF_FEC_RMON_T_P1024TO2047 (*(vuint32*)(void*)(&__IPSBAR[0x00123C])) | |
#define MCF_FEC_RMON_T_P_GTE2048 (*(vuint32*)(void*)(&__IPSBAR[0x001240])) | |
#define MCF_FEC_RMON_T_OCTETS (*(vuint32*)(void*)(&__IPSBAR[0x001244])) | |
#define MCF_FEC_IEEE_T_DROP (*(vuint32*)(void*)(&__IPSBAR[0x001248])) | |
#define MCF_FEC_IEEE_T_FRAME_OK (*(vuint32*)(void*)(&__IPSBAR[0x00124C])) | |
#define MCF_FEC_IEEE_T_1COL (*(vuint32*)(void*)(&__IPSBAR[0x001250])) | |
#define MCF_FEC_IEEE_T_MCOL (*(vuint32*)(void*)(&__IPSBAR[0x001254])) | |
#define MCF_FEC_IEEE_T_DEF (*(vuint32*)(void*)(&__IPSBAR[0x001258])) | |
#define MCF_FEC_IEEE_T_LCOL (*(vuint32*)(void*)(&__IPSBAR[0x00125C])) | |
#define MCF_FEC_IEEE_T_EXCOL (*(vuint32*)(void*)(&__IPSBAR[0x001260])) | |
#define MCF_FEC_IEEE_T_MACERR (*(vuint32*)(void*)(&__IPSBAR[0x001264])) | |
#define MCF_FEC_IEEE_T_CSERR (*(vuint32*)(void*)(&__IPSBAR[0x001268])) | |
#define MCF_FEC_IEEE_T_SQE (*(vuint32*)(void*)(&__IPSBAR[0x00126C])) | |
#define MCF_FEC_IEEE_T_FDXFC (*(vuint32*)(void*)(&__IPSBAR[0x001270])) | |
#define MCF_FEC_IEEE_T_OCTETS_OK (*(vuint32*)(void*)(&__IPSBAR[0x001274])) | |
#define MCF_FEC_RMON_R_PACKETS (*(vuint32*)(void*)(&__IPSBAR[0x001284])) | |
#define MCF_FEC_RMON_R_BC_PKT (*(vuint32*)(void*)(&__IPSBAR[0x001288])) | |
#define MCF_FEC_RMON_R_MC_PKT (*(vuint32*)(void*)(&__IPSBAR[0x00128C])) | |
#define MCF_FEC_RMON_R_CRC_ALIGN (*(vuint32*)(void*)(&__IPSBAR[0x001290])) | |
#define MCF_FEC_RMON_R_UNDERSIZE (*(vuint32*)(void*)(&__IPSBAR[0x001294])) | |
#define MCF_FEC_RMON_R_OVERSIZE (*(vuint32*)(void*)(&__IPSBAR[0x001298])) | |
#define MCF_FEC_RMON_R_FRAG (*(vuint32*)(void*)(&__IPSBAR[0x00129C])) | |
#define MCF_FEC_RMON_R_JAB (*(vuint32*)(void*)(&__IPSBAR[0x0012A0])) | |
#define MCF_FEC_RMON_R_RESVD_0 (*(vuint32*)(void*)(&__IPSBAR[0x0012A4])) | |
#define MCF_FEC_RMON_R_P64 (*(vuint32*)(void*)(&__IPSBAR[0x0012A8])) | |
#define MCF_FEC_RMON_R_P65TO127 (*(vuint32*)(void*)(&__IPSBAR[0x0012AC])) | |
#define MCF_FEC_RMON_R_P128TO255 (*(vuint32*)(void*)(&__IPSBAR[0x0012B0])) | |
#define MCF_FEC_RMON_R_P256TO511 (*(vuint32*)(void*)(&__IPSBAR[0x0012B4])) | |
#define MCF_FEC_RMON_R_512TO1023 (*(vuint32*)(void*)(&__IPSBAR[0x0012B8])) | |
#define MCF_FEC_RMON_R_P_GTE2048 (*(vuint32*)(void*)(&__IPSBAR[0x0012C0])) | |
#define MCF_FEC_RMON_R_1024TO2047 (*(vuint32*)(void*)(&__IPSBAR[0x0012BC])) | |
#define MCF_FEC_RMON_R_OCTETS (*(vuint32*)(void*)(&__IPSBAR[0x0012C4])) | |
#define MCF_FEC_IEEE_R_DROP (*(vuint32*)(void*)(&__IPSBAR[0x0012C8])) | |
#define MCF_FEC_IEEE_R_FRAME_OK (*(vuint32*)(void*)(&__IPSBAR[0x0012CC])) | |
#define MCF_FEC_IEEE_R_CRC (*(vuint32*)(void*)(&__IPSBAR[0x0012D0])) | |
#define MCF_FEC_IEEE_R_ALIGN (*(vuint32*)(void*)(&__IPSBAR[0x0012D4])) | |
#define MCF_FEC_IEEE_R_MACERR (*(vuint32*)(void*)(&__IPSBAR[0x0012D8])) | |
#define MCF_FEC_IEEE_R_FDXFC (*(vuint32*)(void*)(&__IPSBAR[0x0012DC])) | |
#define MCF_FEC_IEEE_R_OCTETS_OK (*(vuint32*)(void*)(&__IPSBAR[0x0012E0])) | |
/* Bit definitions and macros for MCF_FEC_EIR */ | |
#define MCF_FEC_EIR_UN (0x00080000) | |
#define MCF_FEC_EIR_RL (0x00100000) | |
#define MCF_FEC_EIR_LC (0x00200000) | |
#define MCF_FEC_EIR_EBERR (0x00400000) | |
#define MCF_FEC_EIR_MII (0x00800000) | |
#define MCF_FEC_EIR_RXB (0x01000000) | |
#define MCF_FEC_EIR_RXF (0x02000000) | |
#define MCF_FEC_EIR_TXB (0x04000000) | |
#define MCF_FEC_EIR_TXF (0x08000000) | |
#define MCF_FEC_EIR_GRA (0x10000000) | |
#define MCF_FEC_EIR_BABT (0x20000000) | |
#define MCF_FEC_EIR_BABR (0x40000000) | |
#define MCF_FEC_EIR_HBERR (0x80000000) | |
/* Bit definitions and macros for MCF_FEC_EIMR */ | |
#define MCF_FEC_EIMR_UN (0x00080000) | |
#define MCF_FEC_EIMR_RL (0x00100000) | |
#define MCF_FEC_EIMR_LC (0x00200000) | |
#define MCF_FEC_EIMR_EBERR (0x00400000) | |
#define MCF_FEC_EIMR_MII (0x00800000) | |
#define MCF_FEC_EIMR_RXB (0x01000000) | |
#define MCF_FEC_EIMR_RXF (0x02000000) | |
#define MCF_FEC_EIMR_TXB (0x04000000) | |
#define MCF_FEC_EIMR_TXF (0x08000000) | |
#define MCF_FEC_EIMR_GRA (0x10000000) | |
#define MCF_FEC_EIMR_BABT (0x20000000) | |
#define MCF_FEC_EIMR_BABR (0x40000000) | |
#define MCF_FEC_EIMR_HBERR (0x80000000) | |
/* Bit definitions and macros for MCF_FEC_RDAR */ | |
#define MCF_FEC_RDAR_R_DES_ACTIVE (0x01000000) | |
/* Bit definitions and macros for MCF_FEC_TDAR */ | |
#define MCF_FEC_TDAR_X_DES_ACTIVE (0x01000000) | |
/* Bit definitions and macros for MCF_FEC_ECR */ | |
#define MCF_FEC_ECR_RESET (0x00000001) | |
#define MCF_FEC_ECR_ETHER_EN (0x00000002) | |
/* Bit definitions and macros for MCF_FEC_MMFR */ | |
#define MCF_FEC_MMFR_DATA(x) (((x)&0x0000FFFF)<<0) | |
#define MCF_FEC_MMFR_TA(x) (((x)&0x00000003)<<16) | |
#define MCF_FEC_MMFR_RA(x) (((x)&0x0000001F)<<18) | |
#define MCF_FEC_MMFR_PA(x) (((x)&0x0000001F)<<23) | |
#define MCF_FEC_MMFR_OP(x) (((x)&0x00000003)<<28) | |
#define MCF_FEC_MMFR_ST(x) (((x)&0x00000003)<<30) | |
#define MCF_FEC_MMFR_ST_01 (0x40000000) | |
#define MCF_FEC_MMFR_OP_READ (0x20000000) | |
#define MCF_FEC_MMFR_OP_WRITE (0x10000000) | |
#define MCF_FEC_MMFR_TA_10 (0x00020000) | |
/* Bit definitions and macros for MCF_FEC_MSCR */ | |
#define MCF_FEC_MSCR_MII_SPEED(x) (((x)&0x0000003F)<<1) | |
#define MCF_FEC_MSCR_DIS_PREAMBLE (0x00000080) | |
/* Bit definitions and macros for MCF_FEC_MIBC */ | |
#define MCF_FEC_MIBC_MIB_IDLE (0x40000000) | |
#define MCF_FEC_MIBC_MIB_DISABLE (0x80000000) | |
/* Bit definitions and macros for MCF_FEC_RCR */ | |
#define MCF_FEC_RCR_LOOP (0x00000001) | |
#define MCF_FEC_RCR_DRT (0x00000002) | |
#define MCF_FEC_RCR_MII_MODE (0x00000004) | |
#define MCF_FEC_RCR_PROM (0x00000008) | |
#define MCF_FEC_RCR_BC_REJ (0x00000010) | |
#define MCF_FEC_RCR_FCE (0x00000020) | |
#define MCF_FEC_RCR_MAX_FL(x) (((x)&0x000007FF)<<16) | |
/* Bit definitions and macros for MCF_FEC_TCR */ | |
#define MCF_FEC_TCR_GTS (0x00000001) | |
#define MCF_FEC_TCR_HBC (0x00000002) | |
#define MCF_FEC_TCR_FDEN (0x00000004) | |
#define MCF_FEC_TCR_TFC_PAUSE (0x00000008) | |
#define MCF_FEC_TCR_RFC_PAUSE (0x00000010) | |
/* Bit definitions and macros for MCF_FEC_PAUR */ | |
#define MCF_FEC_PAUR_TYPE(x) (((x)&0x0000FFFF)<<0) | |
#define MCF_FEC_PAUR_PADDR2(x) (((x)&0x0000FFFF)<<16) | |
/* Bit definitions and macros for MCF_FEC_OPD */ | |
#define MCF_FEC_OPD_PAUSE_DUR(x) (((x)&0x0000FFFF)<<0) | |
#define MCF_FEC_OPD_OPCODE(x) (((x)&0x0000FFFF)<<16) | |
/* Bit definitions and macros for MCF_FEC_TFWR */ | |
#define MCF_FEC_TFWR_X_WMRK(x) (((x)&0x00000003)<<0) | |
/* Bit definitions and macros for MCF_FEC_FRBR */ | |
#define MCF_FEC_FRBR_R_BOUND(x) (((x)&0x000000FF)<<2) | |
/* Bit definitions and macros for MCF_FEC_FRSR */ | |
#define MCF_FEC_FRSR_R_FSTART(x) (((x)&0x000000FF)<<2) | |
/* Bit definitions and macros for MCF_FEC_ERDSR */ | |
#define MCF_FEC_ERDSR_R_DES_START(x) (((x)&0x3FFFFFFF)<<2) | |
/* Bit definitions and macros for MCF_FEC_ETDSR */ | |
#define MCF_FEC_ETDSR_X_DES_START(x) (((x)&0x3FFFFFFF)<<2) | |
/* Bit definitions and macros for MCF_FEC_EMRBR */ | |
#define MCF_FEC_EMRBR_R_BUF_SIZE(x) (((x)&0x0000007F)<<4) | |
/********************************************************************/ | |
#endif /* __MCF523X_FEC_H__ */ |