0001
0002 #ifndef __BCM4908_ENET_H
0003 #define __BCM4908_ENET_H
0004
0005 #define ENET_CONTROL 0x000
0006 #define ENET_MIB_CTRL 0x004
0007 #define ENET_MIB_CTRL_CLR_MIB 0x00000001
0008 #define ENET_RX_ERR_MASK 0x008
0009 #define ENET_MIB_MAX_PKT_SIZE 0x00C
0010 #define ENET_MIB_MAX_PKT_SIZE_VAL 0x00003fff
0011 #define ENET_DIAG_OUT 0x01c
0012 #define ENET_ENABLE_DROP_PKT 0x020
0013 #define ENET_IRQ_ENABLE 0x024
0014 #define ENET_IRQ_ENABLE_OVFL 0x00000001
0015 #define ENET_GMAC_STATUS 0x028
0016 #define ENET_GMAC_STATUS_ETH_SPEED_MASK 0x00000003
0017 #define ENET_GMAC_STATUS_ETH_SPEED_10 0x00000000
0018 #define ENET_GMAC_STATUS_ETH_SPEED_100 0x00000001
0019 #define ENET_GMAC_STATUS_ETH_SPEED_1000 0x00000002
0020 #define ENET_GMAC_STATUS_HD 0x00000004
0021 #define ENET_GMAC_STATUS_AUTO_CFG_EN 0x00000008
0022 #define ENET_GMAC_STATUS_LINK_UP 0x00000010
0023 #define ENET_IRQ_STATUS 0x02c
0024 #define ENET_IRQ_STATUS_OVFL 0x00000001
0025 #define ENET_OVERFLOW_COUNTER 0x030
0026 #define ENET_FLUSH 0x034
0027 #define ENET_FLUSH_RXFIFO_FLUSH 0x00000001
0028 #define ENET_FLUSH_TXFIFO_FLUSH 0x00000002
0029 #define ENET_RSV_SELECT 0x038
0030 #define ENET_BP_FORCE 0x03c
0031 #define ENET_BP_FORCE_FORCE 0x00000001
0032 #define ENET_DMA_RX_OK_TO_SEND_COUNT 0x040
0033 #define ENET_DMA_RX_OK_TO_SEND_COUNT_VAL 0x0000000f
0034 #define ENET_TX_CRC_CTRL 0x044
0035 #define ENET_MIB 0x200
0036 #define ENET_UNIMAC 0x400
0037 #define ENET_DMA 0x800
0038 #define ENET_DMA_CONTROLLER_CFG 0x800
0039 #define ENET_DMA_CTRL_CFG_MASTER_EN 0x00000001
0040 #define ENET_DMA_CTRL_CFG_FLOWC_CH1_EN 0x00000002
0041 #define ENET_DMA_CTRL_CFG_FLOWC_CH3_EN 0x00000004
0042 #define ENET_DMA_FLOWCTL_CH1_THRESH_LO 0x804
0043 #define ENET_DMA_FLOWCTL_CH1_THRESH_HI 0x808
0044 #define ENET_DMA_FLOWCTL_CH1_ALLOC 0x80c
0045 #define ENET_DMA_FLOWCTL_CH1_ALLOC_FORCE 0x80000000
0046 #define ENET_DMA_FLOWCTL_CH3_THRESH_LO 0x810
0047 #define ENET_DMA_FLOWCTL_CH3_THRESH_HI 0x814
0048 #define ENET_DMA_FLOWCTL_CH3_ALLOC 0x818
0049 #define ENET_DMA_FLOWCTL_CH5_THRESH_LO 0x81C
0050 #define ENET_DMA_FLOWCTL_CH5_THRESH_HI 0x820
0051 #define ENET_DMA_FLOWCTL_CH5_ALLOC 0x824
0052 #define ENET_DMA_FLOWCTL_CH7_THRESH_LO 0x828
0053 #define ENET_DMA_FLOWCTL_CH7_THRESH_HI 0x82C
0054 #define ENET_DMA_FLOWCTL_CH7_ALLOC 0x830
0055 #define ENET_DMA_CTRL_CHANNEL_RESET 0x834
0056 #define ENET_DMA_CTRL_CHANNEL_DEBUG 0x838
0057 #define ENET_DMA_CTRL_GLOBAL_INTERRUPT_STATUS 0x840
0058 #define ENET_DMA_CTRL_GLOBAL_INTERRUPT_MASK 0x844
0059 #define ENET_DMA_CH0_CFG 0xa00
0060 #define ENET_DMA_CH1_CFG 0xa10
0061 #define ENET_DMA_CH0_STATE_RAM 0xc00
0062 #define ENET_DMA_CH1_STATE_RAM 0xc10
0063
0064 #define ENET_DMA_CH_CFG 0x00
0065 #define ENET_DMA_CH_CFG_ENABLE 0x00000001
0066 #define ENET_DMA_CH_CFG_PKT_HALT 0x00000002
0067 #define ENET_DMA_CH_CFG_BURST_HALT 0x00000004
0068 #define ENET_DMA_CH_CFG_INT_STAT 0x04
0069 #define ENET_DMA_CH_CFG_INT_MASK 0x08
0070 #define ENET_DMA_CH_CFG_INT_BUFF_DONE 0x00000001
0071 #define ENET_DMA_CH_CFG_INT_DONE 0x00000002
0072 #define ENET_DMA_CH_CFG_INT_NO_DESC 0x00000004
0073 #define ENET_DMA_CH_CFG_INT_RX_ERROR 0x00000008
0074 #define ENET_DMA_CH_CFG_MAX_BURST 0x0c
0075 #define ENET_DMA_CH_CFG_MAX_BURST_DESCSIZE_SEL 0x00040000
0076 #define ENET_DMA_CH_CFG_SIZE 0x10
0077
0078 #define ENET_DMA_CH_STATE_RAM_BASE_DESC_PTR 0x00
0079 #define ENET_DMA_CH_STATE_RAM_STATE_DATA 0x04
0080 #define ENET_DMA_CH_STATE_RAM_DESC_LEN_STATUS 0x08
0081 #define ENET_DMA_CH_STATE_RAM_DESC_BASE_BUFPTR 0x0c
0082 #define ENET_DMA_CH_STATE_RAM_SIZE 0x10
0083
0084 #define DMA_CTL_STATUS_APPEND_CRC 0x00000100
0085 #define DMA_CTL_STATUS_APPEND_BRCM_TAG 0x00000200
0086 #define DMA_CTL_STATUS_PRIO 0x00000C00
0087 #define DMA_CTL_STATUS_WRAP 0x00001000
0088 #define DMA_CTL_STATUS_SOP 0x00002000
0089 #define DMA_CTL_STATUS_EOP 0x00004000
0090 #define DMA_CTL_STATUS_OWN 0x00008000
0091 #define DMA_CTL_LEN_DESC_BUFLENGTH 0x0fff0000
0092 #define DMA_CTL_LEN_DESC_BUFLENGTH_SHIFT 16
0093 #define DMA_CTL_LEN_DESC_MULTICAST 0x40000000
0094 #define DMA_CTL_LEN_DESC_USEFPM 0x80000000
0095
0096 #endif