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

📄 ppc4xx_enet.h

📁 u-boot-1.1.6 源码包
💻 H
📖 第 1 页 / 共 2 页
字号:
/*----------------------------------------------------------------------------+||	This source code has been made available to you by IBM on an AS-IS|	basis.	Anyone receiving this source is licensed under IBM|	copyrights to use it in any way he or she deems fit, including|	copying it, modifying it, compiling it, and redistributing it either|	with or without modifications.	No license under IBM patents or|	patent applications is to be implied by the copyright license.||	Any user of this software should understand that IBM cannot provide|	technical support for this software and will not be responsible for|	any consequences resulting from the use of this software.||	Any person who transfers this source code or any derivative work|	must include the IBM copyright notice, this paragraph, and the|	preceding two paragraphs in the transferred software.||	COPYRIGHT   I B M   CORPORATION 1999|	LICENSED MATERIAL  -  PROGRAM PROPERTY OF I B M+----------------------------------------------------------------------------*//*----------------------------------------------------------------------------+||  File Name:	enetemac.h||  Function:	Header file for the EMAC3 macro on the 405GP.||  Author:	Mark Wisner||  Change Activity-||  Date	       Description of Change					   BY|  ---------   ---------------------					   ---|  29-Apr-99   Created							   MKW|+----------------------------------------------------------------------------*//*----------------------------------------------------------------------------+|  19-Nov-03   Travis Sawyer, Sandburst Corporation, tsawyer@sandburst.com|	       ported to handle 440GP and 440GX multiple EMACs+----------------------------------------------------------------------------*/#ifndef _PPC4XX_ENET_H_#define _PPC4XX_ENET_H_#include <net.h>#include "405_mal.h"/*-----------------------------------------------------------------------------+| General enternet defines.  802 frames are not supported.+-----------------------------------------------------------------------------*/#define ENET_ADDR_LENGTH		6#define ENET_ARPTYPE			0x806#define ARP_REQUEST			1#define ARP_REPLY			2#define ENET_IPTYPE			0x800#define ARP_CACHE_SIZE			5#define NUM_TX_BUFF 1#define NUM_RX_BUFF PKTBUFSRXstruct enet_frame {   unsigned char	dest_addr[ENET_ADDR_LENGTH];   unsigned char	source_addr[ENET_ADDR_LENGTH];   unsigned short	type;   unsigned char	enet_data[1];};struct arp_entry {   unsigned long	inet_address;   unsigned char	mac_address[ENET_ADDR_LENGTH];   unsigned long	valid;   unsigned long	sec;   unsigned long	nsec;};/* Statistic Areas */#define MAX_ERR_LOG 10typedef struct emac_stats_st{	/* Statistic Block */	int data_len_err;	int rx_frames;	int rx;	int rx_prot_err;	int int_err;	int pkts_tx;	int pkts_rx;	int pkts_handled;	short tx_err_log[MAX_ERR_LOG];	short rx_err_log[MAX_ERR_LOG];} EMAC_STATS_ST, *EMAC_STATS_PST;/* Structure containing variables used by the shared code (4xx_enet.c) */typedef struct emac_4xx_hw_st {    uint32_t		hw_addr;		/* EMAC offset */    uint32_t		tah_addr;		/* TAH offset */    uint32_t		phy_id;    uint32_t		phy_addr;    uint32_t		original_fc;    uint32_t		txcw;    uint32_t		autoneg_failed;    uint32_t		emac_ier;    volatile mal_desc_t *tx;    volatile mal_desc_t *rx;    bd_t		*bis;	/* for eth_init upon mal error */    mal_desc_t		*alloc_tx_buf;    mal_desc_t		*alloc_rx_buf;    char		*txbuf_ptr;    uint16_t		devnum;    int			get_link_status;    int			tbi_compatibility_en;    int			tbi_compatibility_on;    int			fc_send_xon;    int			report_tx_early;    int			first_init;    int			tx_err_index;    int			rx_err_index;    int			rx_slot;			/* MAL Receive Slot */    int			rx_i_index;		/* Receive Interrupt Queue Index */    int			rx_u_index;		/* Receive User Queue Index */    int			tx_slot;			/* MAL Transmit Slot */    int			tx_i_index;		/* Transmit Interrupt Queue Index */    int			tx_u_index;		/* Transmit User Queue Index */    int			rx_ready[NUM_RX_BUFF];	/* Receive Ready Queue */    int			tx_run[NUM_TX_BUFF];	/* Transmit Running Queue */    int			is_receiving;	/* sync with eth interrupt */    int			print_speed;	/* print speed message upon start */    EMAC_STATS_ST	stats;} EMAC_4XX_HW_ST, *EMAC_4XX_HW_PST;#if defined(CONFIG_440GX)#define EMAC_NUM_DEV	    4#elif (defined(CONFIG_440) || defined(CONFIG_405EP)) &&	\	defined(CONFIG_NET_MULTI) &&			\	!defined(CONFIG_440SP) && !defined(CONFIG_440SPE)#define EMAC_NUM_DEV	    2#else#define EMAC_NUM_DEV	    1#endif#ifdef CONFIG_IBM_EMAC4_V4	/* EMAC4 V4 changed bit setting */#define EMAC_STACR_OC_MASK	(0x00008000)#else#define EMAC_STACR_OC_MASK	(0x00000000)#endif#if defined(CONFIG_440SP) || defined(CONFIG_440SPE) || \    defined(CONFIG_440EPX) || defined(CONFIG_440GRX)#define SDR0_PFC1_EM_1000	(0x00200000)#endif/*ZMII Bridge Register addresses */#if defined(CONFIG_440EP) || defined(CONFIG_440GR) || \    defined(CONFIG_440EPX) || defined(CONFIG_440GRX)#define ZMII_BASE			(CFG_PERIPHERAL_BASE + 0x0D00)#else#define ZMII_BASE			(CFG_PERIPHERAL_BASE + 0x0780)#endif#define ZMII_FER			(ZMII_BASE)#define ZMII_SSR			(ZMII_BASE + 4)#define ZMII_SMIISR			(ZMII_BASE + 8)#define ZMII_RMII			0x22000000#define ZMII_MDI0			0x80000000/* ZMII FER Register Bit Definitions */#define ZMII_FER_DIS		(0x0)#define ZMII_FER_MDI		(0x8)#define ZMII_FER_SMII		(0x4)#define ZMII_FER_RMII		(0x2)#define ZMII_FER_MII		(0x1)#define ZMII_FER_RSVD11		(0x00200000)#define ZMII_FER_RSVD10		(0x00100000)#define ZMII_FER_RSVD14_31	(0x0003FFFF)#define ZMII_FER_V(__x)		(((3 - __x) * 4) + 16)/* ZMII Speed Selection Register Bit Definitions */#define ZMII_SSR_SCI		(0x4)#define ZMII_SSR_FSS		(0x2)#define ZMII_SSR_SP		(0x1)#define ZMII_SSR_RSVD16_31	(0x0000FFFF)#define ZMII_SSR_V(__x)		(((3 - __x) * 4) + 16)/* ZMII SMII Status Register Bit Definitions */#define ZMII_SMIISR_E1		(0x80)#define ZMII_SMIISR_EC		(0x40)#define ZMII_SMIISR_EN		(0x20)#define ZMII_SMIISR_EJ		(0x10)#define ZMII_SMIISR_EL		(0x08)#define ZMII_SMIISR_ED		(0x04)#define ZMII_SMIISR_ES		(0x02)#define ZMII_SMIISR_EF		(0x01)#define ZMII_SMIISR_V(__x)	((3 - __x) * 8)/* RGMII Register Addresses */#if defined(CONFIG_440EPX) || defined(CONFIG_440GRX)#define RGMII_BASE		(CFG_PERIPHERAL_BASE + 0x1000)#else#define RGMII_BASE		(CFG_PERIPHERAL_BASE + 0x0790)#endif#define RGMII_FER		(RGMII_BASE + 0x00)#define RGMII_SSR		(RGMII_BASE + 0x04)/* RGMII Function Enable (FER) Register Bit Definitions *//* Note: for EMAC 2 and 3 only, 440GX only */#define RGMII_FER_DIS		(0x00)#define RGMII_FER_RTBI		(0x04)#define RGMII_FER_RGMII		(0x05)#define RGMII_FER_TBI		(0x06)#define RGMII_FER_GMII		(0x07)#define RGMII_FER_V(__x)	((__x - 2) * 4)/* RGMII Speed Selection Register Bit Definitions */#define RGMII_SSR_SP_10MBPS	(0x00)#define RGMII_SSR_SP_100MBPS	(0x02)#define RGMII_SSR_SP_1000MBPS	(0x04)#if defined(CONFIG_440EPX) || defined(CONFIG_440GRX)#define RGMII_SSR_V(__x)	((__x) * 8)#else#define RGMII_SSR_V(__x)	((__x -2) * 8)#endif/*---------------------------------------------------------------------------+|  TCP/IP Acceleration Hardware (TAH) 440GX Only+---------------------------------------------------------------------------*/#if defined(CONFIG_440GX)#define TAH_BASE		(CFG_PERIPHERAL_BASE + 0x0B50)#define TAH_REVID		(TAH_BASE + 0x0)    /* Revision ID (RO)*/#define TAH_MR			(TAH_BASE + 0x10)   /* Mode Register (R/W) */#define TAH_SSR0		(TAH_BASE + 0x14)   /* Segment Size Reg 0 (R/W) */#define TAH_SSR1		(TAH_BASE + 0x18)   /* Segment Size Reg 1 (R/W) */#define TAH_SSR2		(TAH_BASE + 0x1C)   /* Segment Size Reg 2 (R/W) */#define TAH_SSR3		(TAH_BASE + 0x20)   /* Segment Size Reg 3 (R/W) */#define TAH_SSR4		(TAH_BASE + 0x24)   /* Segment Size Reg 4 (R/W) */#define TAH_SSR5		(TAH_BASE + 0x28)   /* Segment Size Reg 5 (R/W) */#define TAH_TSR			(TAH_BASE + 0x2C)   /* Transmit Status Register (RO) *//* TAH Revision */#define TAH_REV_RN_M		(0x000FFF00)	    /* Revision Number */#define TAH_REV_BN_M		(0x000000FF)	    /* Branch Revision Number */#define TAH_REV_RN_V		(8)#define TAH_REV_BN_V		(0)/* TAH Mode Register */#define TAH_MR_CVR		(0x80000000)	    /* Checksum verification on RX */#define TAH_MR_SR		(0x40000000)	    /* Software reset */#define TAH_MR_ST		(0x3F000000)	    /* Send Threshold */

⌨️ 快捷键说明

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