mv643xx_eth.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 602 行 · 第 1/2 页

H
602
字号
#ifndef __MV64340_ETH_H__#define __MV64340_ETH_H__#include <linux/version.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/spinlock.h>#include <linux/workqueue.h>#include <linux/mv643xx.h>#define	BIT0	0x00000001#define	BIT1	0x00000002#define	BIT2	0x00000004#define	BIT3	0x00000008#define	BIT4	0x00000010#define	BIT5	0x00000020#define	BIT6	0x00000040#define	BIT7	0x00000080#define	BIT8	0x00000100#define	BIT9	0x00000200#define	BIT10	0x00000400#define	BIT11	0x00000800#define	BIT12	0x00001000#define	BIT13	0x00002000#define	BIT14	0x00004000#define	BIT15	0x00008000#define	BIT16	0x00010000#define	BIT17	0x00020000#define	BIT18	0x00040000#define	BIT19	0x00080000#define	BIT20	0x00100000#define	BIT21	0x00200000#define	BIT22	0x00400000#define	BIT23	0x00800000#define	BIT24	0x01000000#define	BIT25	0x02000000#define	BIT26	0x04000000#define	BIT27	0x08000000#define	BIT28	0x10000000#define	BIT29	0x20000000#define	BIT30	0x40000000#define	BIT31	0x80000000/* *  The first part is the high level driver of the gigE ethernet ports. */#define ETH_PORT0_IRQ_NUM 48			/* main high register, bit0 */#define ETH_PORT1_IRQ_NUM ETH_PORT0_IRQ_NUM+1	/* main high register, bit1 */#define ETH_PORT2_IRQ_NUM ETH_PORT0_IRQ_NUM+2	/* main high register, bit1 *//* Checksum offload for Tx works */#define  MV64340_CHECKSUM_OFFLOAD_TX#define	 MV64340_NAPI#define	 MV64340_TX_FAST_REFILL#undef	 MV64340_COAL/*  * Number of RX / TX descriptors on RX / TX rings. * Note that allocating RX descriptors is done by allocating the RX * ring AND a preallocated RX buffers (skb's) for each descriptor. * The TX descriptors only allocates the TX descriptors ring, * with no pre allocated TX buffers (skb's are allocated by higher layers. *//* Default TX ring size is 1000 descriptors */#define MV64340_TX_QUEUE_SIZE 1000/* Default RX ring size is 400 descriptors */#define MV64340_RX_QUEUE_SIZE 400#define MV64340_TX_COAL 100#ifdef MV64340_COAL#define MV64340_RX_COAL 100#endif/* * The second part is the low level driver of the gigE ethernet ports.   * *//* * Header File for : MV-643xx network interface header  * * DESCRIPTION: *       This header file contains macros typedefs and function declaration for *       the Marvell Gig Bit Ethernet Controller.  * * DEPENDENCIES: *       None. * *//* Default port configuration value */#define PORT_CONFIG_VALUE                       \             ETH_UNICAST_NORMAL_MODE		|   \             ETH_DEFAULT_RX_QUEUE_0		|   \             ETH_DEFAULT_RX_ARP_QUEUE_0		|   \             ETH_RECEIVE_BC_IF_NOT_IP_OR_ARP	|   \             ETH_RECEIVE_BC_IF_IP		|   \             ETH_RECEIVE_BC_IF_ARP 		|   \             ETH_CAPTURE_TCP_FRAMES_DIS		|   \             ETH_CAPTURE_UDP_FRAMES_DIS		|   \             ETH_DEFAULT_RX_TCP_QUEUE_0		|   \             ETH_DEFAULT_RX_UDP_QUEUE_0		|   \             ETH_DEFAULT_RX_BPDU_QUEUE_0/* Default port extend configuration value */#define PORT_CONFIG_EXTEND_VALUE		\             ETH_SPAN_BPDU_PACKETS_AS_NORMAL	|   \             ETH_PARTITION_DISABLE/* Default sdma control value */#define PORT_SDMA_CONFIG_VALUE			\			 ETH_RX_BURST_SIZE_16_64BIT 	|	\			 GT_ETH_IPG_INT_RX(0) 		|	\			 ETH_TX_BURST_SIZE_16_64BIT;#define GT_ETH_IPG_INT_RX(value)                \            ((value & 0x3fff) << 8)/* Default port serial control value */#define PORT_SERIAL_CONTROL_VALUE		\			ETH_FORCE_LINK_PASS 			|	\			ETH_ENABLE_AUTO_NEG_FOR_DUPLX		|	\			ETH_DISABLE_AUTO_NEG_FOR_FLOW_CTRL 	|	\			ETH_ADV_SYMMETRIC_FLOW_CTRL 		|	\			ETH_FORCE_FC_MODE_NO_PAUSE_DIS_TX 	|	\			ETH_FORCE_BP_MODE_NO_JAM 		|	\			BIT9 					|	\			ETH_DO_NOT_FORCE_LINK_FAIL 		|	\			ETH_RETRANSMIT_16_ATTEMPTS 		|	\			ETH_ENABLE_AUTO_NEG_SPEED_GMII	 	|	\			ETH_DTE_ADV_0 				|	\			ETH_DISABLE_AUTO_NEG_BYPASS		|	\			ETH_AUTO_NEG_NO_CHANGE 			|	\			ETH_MAX_RX_PACKET_9700BYTE 		|	\			ETH_CLR_EXT_LOOPBACK 			|	\			ETH_SET_FULL_DUPLEX_MODE 		|	\			ETH_ENABLE_FLOW_CTRL_TX_RX_IN_FULL_DUPLEX#define RX_BUFFER_MAX_SIZE  0x4000000#define TX_BUFFER_MAX_SIZE  0x4000000/* MAC accepet/reject macros */#define ACCEPT_MAC_ADDR	    0#define REJECT_MAC_ADDR	    1/* Buffer offset from buffer pointer */#define RX_BUF_OFFSET				0x2/* Gigabit Ethernet Unit Global Registers *//* MIB Counters register definitions */#define ETH_MIB_GOOD_OCTETS_RECEIVED_LOW   0x0#define ETH_MIB_GOOD_OCTETS_RECEIVED_HIGH  0x4#define ETH_MIB_BAD_OCTETS_RECEIVED        0x8#define ETH_MIB_INTERNAL_MAC_TRANSMIT_ERR  0xc#define ETH_MIB_GOOD_FRAMES_RECEIVED       0x10#define ETH_MIB_BAD_FRAMES_RECEIVED        0x14#define ETH_MIB_BROADCAST_FRAMES_RECEIVED  0x18#define ETH_MIB_MULTICAST_FRAMES_RECEIVED  0x1c#define ETH_MIB_FRAMES_64_OCTETS           0x20#define ETH_MIB_FRAMES_65_TO_127_OCTETS    0x24#define ETH_MIB_FRAMES_128_TO_255_OCTETS   0x28#define ETH_MIB_FRAMES_256_TO_511_OCTETS   0x2c#define ETH_MIB_FRAMES_512_TO_1023_OCTETS  0x30#define ETH_MIB_FRAMES_1024_TO_MAX_OCTETS  0x34#define ETH_MIB_GOOD_OCTETS_SENT_LOW       0x38#define ETH_MIB_GOOD_OCTETS_SENT_HIGH      0x3c#define ETH_MIB_GOOD_FRAMES_SENT           0x40#define ETH_MIB_EXCESSIVE_COLLISION        0x44#define ETH_MIB_MULTICAST_FRAMES_SENT      0x48#define ETH_MIB_BROADCAST_FRAMES_SENT      0x4c#define ETH_MIB_UNREC_MAC_CONTROL_RECEIVED 0x50#define ETH_MIB_FC_SENT                    0x54#define ETH_MIB_GOOD_FC_RECEIVED           0x58#define ETH_MIB_BAD_FC_RECEIVED            0x5c#define ETH_MIB_UNDERSIZE_RECEIVED         0x60#define ETH_MIB_FRAGMENTS_RECEIVED         0x64#define ETH_MIB_OVERSIZE_RECEIVED          0x68#define ETH_MIB_JABBER_RECEIVED            0x6c#define ETH_MIB_MAC_RECEIVE_ERROR          0x70#define ETH_MIB_BAD_CRC_EVENT              0x74#define ETH_MIB_COLLISION                  0x78#define ETH_MIB_LATE_COLLISION             0x7c/* Port serial status reg (PSR) */#define ETH_INTERFACE_GMII_MII                          0#define ETH_INTERFACE_PCM                               BIT0#define ETH_LINK_IS_DOWN                                0#define ETH_LINK_IS_UP                                  BIT1#define ETH_PORT_AT_HALF_DUPLEX                         0#define ETH_PORT_AT_FULL_DUPLEX                         BIT2#define ETH_RX_FLOW_CTRL_DISABLED                       0#define ETH_RX_FLOW_CTRL_ENBALED                        BIT3#define ETH_GMII_SPEED_100_10                           0#define ETH_GMII_SPEED_1000                             BIT4#define ETH_MII_SPEED_10                                0#define ETH_MII_SPEED_100                               BIT5#define ETH_NO_TX                                       0#define ETH_TX_IN_PROGRESS                              BIT7#define ETH_BYPASS_NO_ACTIVE                            0#define ETH_BYPASS_ACTIVE                               BIT8#define ETH_PORT_NOT_AT_PARTITION_STATE                 0#define ETH_PORT_AT_PARTITION_STATE                     BIT9#define ETH_PORT_TX_FIFO_NOT_EMPTY                      0#define ETH_PORT_TX_FIFO_EMPTY                          BIT10/* These macros describes the Port configuration reg (Px_cR) bits */#define ETH_UNICAST_NORMAL_MODE                         0#define ETH_UNICAST_PROMISCUOUS_MODE                    BIT0#define ETH_DEFAULT_RX_QUEUE_0                          0#define ETH_DEFAULT_RX_QUEUE_1                          BIT1#define ETH_DEFAULT_RX_QUEUE_2                          BIT2#define ETH_DEFAULT_RX_QUEUE_3                          (BIT2 | BIT1)#define ETH_DEFAULT_RX_QUEUE_4                          BIT3#define ETH_DEFAULT_RX_QUEUE_5                          (BIT3 | BIT1)#define ETH_DEFAULT_RX_QUEUE_6                          (BIT3 | BIT2)#define ETH_DEFAULT_RX_QUEUE_7                          (BIT3 | BIT2 | BIT1)#define ETH_DEFAULT_RX_ARP_QUEUE_0                      0#define ETH_DEFAULT_RX_ARP_QUEUE_1                      BIT4#define ETH_DEFAULT_RX_ARP_QUEUE_2                      BIT5#define ETH_DEFAULT_RX_ARP_QUEUE_3                      (BIT5 | BIT4)#define ETH_DEFAULT_RX_ARP_QUEUE_4                      BIT6#define ETH_DEFAULT_RX_ARP_QUEUE_5                      (BIT6 | BIT4)#define ETH_DEFAULT_RX_ARP_QUEUE_6                      (BIT6 | BIT5)#define ETH_DEFAULT_RX_ARP_QUEUE_7                      (BIT6 | BIT5 | BIT4)#define ETH_RECEIVE_BC_IF_NOT_IP_OR_ARP                 0#define ETH_REJECT_BC_IF_NOT_IP_OR_ARP                  BIT7#define ETH_RECEIVE_BC_IF_IP                            0#define ETH_REJECT_BC_IF_IP                             BIT8#define ETH_RECEIVE_BC_IF_ARP                           0#define ETH_REJECT_BC_IF_ARP                            BIT9#define ETH_TX_AM_NO_UPDATE_ERROR_SUMMARY               BIT12#define ETH_CAPTURE_TCP_FRAMES_DIS                      0#define ETH_CAPTURE_TCP_FRAMES_EN                       BIT14#define ETH_CAPTURE_UDP_FRAMES_DIS                      0#define ETH_CAPTURE_UDP_FRAMES_EN                       BIT15#define ETH_DEFAULT_RX_TCP_QUEUE_0                      0#define ETH_DEFAULT_RX_TCP_QUEUE_1                      BIT16#define ETH_DEFAULT_RX_TCP_QUEUE_2                      BIT17#define ETH_DEFAULT_RX_TCP_QUEUE_3                      (BIT17 | BIT16)#define ETH_DEFAULT_RX_TCP_QUEUE_4                      BIT18#define ETH_DEFAULT_RX_TCP_QUEUE_5                      (BIT18 | BIT16)#define ETH_DEFAULT_RX_TCP_QUEUE_6                      (BIT18 | BIT17)#define ETH_DEFAULT_RX_TCP_QUEUE_7                      (BIT18 | BIT17 | BIT16)#define ETH_DEFAULT_RX_UDP_QUEUE_0                      0#define ETH_DEFAULT_RX_UDP_QUEUE_1                      BIT19#define ETH_DEFAULT_RX_UDP_QUEUE_2                      BIT20#define ETH_DEFAULT_RX_UDP_QUEUE_3                      (BIT20 | BIT19)#define ETH_DEFAULT_RX_UDP_QUEUE_4                      (BIT21#define ETH_DEFAULT_RX_UDP_QUEUE_5                      (BIT21 | BIT19)#define ETH_DEFAULT_RX_UDP_QUEUE_6                      (BIT21 | BIT20)#define ETH_DEFAULT_RX_UDP_QUEUE_7                      (BIT21 | BIT20 | BIT19)#define ETH_DEFAULT_RX_BPDU_QUEUE_0                      0#define ETH_DEFAULT_RX_BPDU_QUEUE_1                     BIT22#define ETH_DEFAULT_RX_BPDU_QUEUE_2                     BIT23#define ETH_DEFAULT_RX_BPDU_QUEUE_3                     (BIT23 | BIT22)#define ETH_DEFAULT_RX_BPDU_QUEUE_4                     BIT24#define ETH_DEFAULT_RX_BPDU_QUEUE_5                     (BIT24 | BIT22)#define ETH_DEFAULT_RX_BPDU_QUEUE_6                     (BIT24 | BIT23)#define ETH_DEFAULT_RX_BPDU_QUEUE_7                     (BIT24 | BIT23 | BIT22)/* These macros describes the Port configuration extend reg (Px_cXR) bits*/#define ETH_CLASSIFY_EN                                 BIT0#define ETH_SPAN_BPDU_PACKETS_AS_NORMAL                 0#define ETH_SPAN_BPDU_PACKETS_TO_RX_QUEUE_7             BIT1#define ETH_PARTITION_DISABLE                           0#define ETH_PARTITION_ENABLE                            BIT2/* Tx/Rx queue command reg (RQCR/TQCR)*/#define ETH_QUEUE_0_ENABLE                              BIT0#define ETH_QUEUE_1_ENABLE                              BIT1#define ETH_QUEUE_2_ENABLE                              BIT2#define ETH_QUEUE_3_ENABLE                              BIT3#define ETH_QUEUE_4_ENABLE                              BIT4#define ETH_QUEUE_5_ENABLE                              BIT5#define ETH_QUEUE_6_ENABLE                              BIT6#define ETH_QUEUE_7_ENABLE                              BIT7#define ETH_QUEUE_0_DISABLE                             BIT8#define ETH_QUEUE_1_DISABLE                             BIT9#define ETH_QUEUE_2_DISABLE                             BIT10#define ETH_QUEUE_3_DISABLE                             BIT11#define ETH_QUEUE_4_DISABLE                             BIT12#define ETH_QUEUE_5_DISABLE                             BIT13#define ETH_QUEUE_6_DISABLE                             BIT14#define ETH_QUEUE_7_DISABLE                             BIT15/* These macros describes the Port Sdma configuration reg (SDCR) bits */#define ETH_RIFB                                        BIT0#define ETH_RX_BURST_SIZE_1_64BIT                       0#define ETH_RX_BURST_SIZE_2_64BIT                       BIT1#define ETH_RX_BURST_SIZE_4_64BIT                       BIT2

⌨️ 快捷键说明

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