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

📄 at91rm9200_ether.h

📁 ecos在9200上redboot实现
💻 H
字号:
//==========================================================================////      at91rm9200_ether.h////////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos is distributed in the hope that it will be useful, but WITHOUT ANY// WARRANTY; without even the implied warranty of MERCHANTABILITY or// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License// for more details.//// You should have received a copy of the GNU General Public License along// with eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.// at http://sources.redhat.com/ecos/ecos-license/// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    Jiun-Shian H. <asky@syncom.com.tw>// Contributors: Jiun-Shian H. <asky@syncom.com.tw>// Date:         2005-08-10// Purpose:// Description:////####DESCRIPTIONEND####////========================================================================*/#ifndef AT91RM9200_ETHER_H#define AT91RM9200_ETHER_H/*--------------------------------------------------------------------------*/#if 0// Tx Frame Descriptor's control bits -- Refer the KS32C5000 Manual Page 7-15#define FRM_OWNERSHIP_BDMA     		0x80000000 // 0:CPU, 1:BDMA#define FRM_OWNERSHIP_CPU          	0x7fffffff // 0:CPU, 1:BDMA#define	TXFDCON_PADDING_MODE		0x00#define	TXFDCON_NO_PADDING_MODE		0x01#define	TXFDCON_NO_CRC_MODE		0x02#define	TXFDCON_CRC_MODE		0x00#define	TXFDCON_MAC_TX_INT_EN		0x04#define	TXFDCON_LITTLE_ENDIAN		0x08#define	TXFDCON_BIG_ENDIAN		0x00#define	TXFDCON_SRC_ADDR_DEC 		0x00#define	TXFDCON_SRC_ADDR_INC 		0x10#define	TXFDCON_WIDGET_ALIGN00		0x00 // No Invalid bytes#define	TXFDCON_WIDGET_ALIGN01		0x01 // 1 Invalid byte#define	TXFDCON_WIDGET_ALIGN10		0x10 // 2 Invalid bytes#define	TXFDCON_WIDGET_ALIGN11		0x11 // 3 Invalid bytes// Tx Frame descriptor's Status#define	TXFDSTAT_EX_COLL 0x0010	// Excessive Collision#define	TXFDSTAT_DEFFER	 0x0020	// Transmit deffered#define TXFDSTAT_PAUSED  0x0040	// Paused : holding data transmission DMA to MAC#define	TXFDSTAT_INT_TX  0x0080	// Interrupt on Transmit#define	TXFDSTAT_UNDER   0x0100	// Underrun */#define	TXFDSTAT_DEFER	 0x0200	// Mac defers for Max_DEFERRAL:=0.32768ms				// for 100Mbits/s, := 3.2768ms for 10Mbits/s#define	TXFDSTAT_NCARR	 0x0400	// No Carrier sense is detected during the				// entire transmission of a packet from SFD				// to CRC#define	TXFDSTAT_SQ_ERR	 0x0800	// fake collision signal didn't come from				// PHY for 1.6us.#define TXFDSTAT_LATE_COLL 0x1000	// Late collision#define	TXFDSTAT_PAR	 0x2000	// Transmit Parity Error#define	TXFDSTAT_COMP	 0x4000	// MAC transmit or discards one packet#define TXFDSTAT_HALTED	 0x8000	// Transmission was halted by clearing MACTXCON_TX_EN..// Rx Frame descriptor's Status#define	RXFDSTAT_OV_MAX	 0x0008	// Over Maximum Size#define	RXFDSTAT_CTL_RECD 0x0020	// set if packet received is a				// MAC control frame.#define	RXFDSTAT_INT_RX	 0x0040	// Interrupt on Receive#define RXFDSTAT_10STAT  0x0080	// set if packet was received via the				// 10bits interface reset if packet				// was received via MII#define	RXFDSTAT_ALIGN_ERR 0x0100	// Alignment Error#define	RXFDSTAT_CRC_ERR 0x0200	// CRC error#define	RXFDSTAT_OVERFLOW 0x0400	// MAC receive FIFO was full when it				// needed to store a received byte#define	RXFDSTAT_LONG_ERR 0x0800	// received a frame longer than 1518bytes#define	RXFDSTAT_PAR	  0x2000	// MAC receive FIFO has detected a parity error#define RXFDSTAT_GOOD	  0x4000	// successfully received a packet with no errors#define RXFDSTAT_HALTED   0x8000	// Transmission was halted by clearing MACTXCON_TX_EN...//   BDMARXCON : 0x9004//   Buffered DMA Receiver Control Register#define	BDMARXCON_BRST	0x00001F        // BDMA Rx Burst Size * BDMARXCON_BRST#define	BDMARXCON_STP_SKP 0x00020	// BDMA Rx Stop/Skip  Frame or Interrupt(=1)#define	BDMARXCON_MA_INC 0x00040	// BDMA Rx Memory Address Inc/Dec#define	BDMARXCON_DIE	 0x00080	// BDMA Rx Every Received Frame Interrupt Enable#define	BDMARXCON_NLIE	 0x00100	// BDMA Rx NULL List Interrupt Enable#define	BDMARXCON_NOIE	 0x00200	// BDMA Rx Not Owner Interrupt Enable#define	BDMARXCON_MSOIE	 0x00400	// BDMA Rx Maximum Size over Interrupr Enable#define	BDMARXCON_LITTLE 0x00800	// BDMA Rx Big/Little Endian#define	BDMARXCON_BIG 	 0x00000	// BDMA Rx Big/Little Endian#define BDMARXCON_WA00	 0x00000	// BDMA Rx Word Alignment- no invalid byte#define BDMARXCON_WA01	 0x01000	// BDMA Rx Word Alignment- one invalid byte#define BDMARXCON_WA10	 0x02000	// BDMA Rx Word Alignment- two invalid byte#define BDMARXCON_WA11	 0x03000	// BDMA Rx Word Alignment- three invalid byte#define	BDMARXCON_EN	 0x04000	// BDMA Rx Enable#define	BDMARXCON_RESET	 0x08000	// BDMA Rx Reset#define	BDMARXCON_RX_EMPT 0x10000	// BDMA Rx Buffer empty interrupt#define	BDMARXCON_EARLY	 0x20000	// BDMA Rx Early notify Interrupt// BDMATXCON : 0x9000// Buffered DMA Trasmit Control Register#define	BDMATXCON_BRST	0x000F	// BDMA Tx Burst Size = 16#define	BDMATXCON_STP_SKP 0x0020	// BDMA Tx Stop/Skip Frame or Interrupt in case				// of not Owner the current frame#define	BDMATXCON_CPIE	0x0080	// BDMA Tx Complete to send control				// packet Enable#define	BDMATXCON_NOIE	0x0200	// BDMA Tx Buffer Not Owner#define	BDMATXCON_TX_EMPTY 0x0400	// BDMA Tx Buffer Empty Interrupt#define BDMATXCON_TX_NOIE  0x0200       // BDMA Tx not owner (queue empty)#define BDMATXCON_TX_NULL  0x0100       // BDMA dscr pointer null// BDMA Tx buffer can be moved to the MAC Tx IO// when the new frame comes in.#define	BDMATXCON_MSL000 0x00000	// No wait to fill the BDMA#define	BDMATXCON_MSL001 0x00800	// wait to fill 1/8 of the BDMA#define	BDMATXCON_MSL010 0x01000	// wait to fill 2/8 of the BDMA#define	BDMATXCON_MSL011 0x01800	// wait to fill 3/8 of the BDMA#define	BDMATXCON_MSL100 0x02000	// wait to fill 4/8 of the BDMA#define	BDMATXCON_MSL101 0x02800	// wait to fill 5/8 of the BDMA#define	BDMATXCON_MSL110 0x03000	// wait to fill 6/8 of the BDMA#define	BDMATXCON_MSL111 0x03800	// wait to fill 7/8 of the BDMA#define	BDMATXCON_EN	 0x04000	// BDMA Tx Enable#define	BDMATXCON_RESET	 0x08000	// BDMA Rx Reset// BDMASTAT : 0x9014// Buffered DMA Status Register#define	BDMASTAT_RX_RDF	0x00001	// BDMA Rx Done Every Received Frame#define	BDMASTAT_RX_NL	0x00002	// BDMA Rx NULL List#define	BDMASTAT_RX_NO	0x00004	// BDMA Rx Not Owner#define	BDMASTAT_RX_MSO	0x00008	// BDMA Rx Maximum Size Over#define	BDMASTAT_RX_EMPTY 0x00010	// BDMA Rx Buffer Empty#define	BDMASTAT_RX_SEARLY 0x00020	// Early Notify#define	BDMASTAT_RX_FRF	0x00080 // One more frame data in BDMA receive buffer#define	BDMASTAT_TX_CCP	0x10000	// BDMA Tx Complete to send Control Packet#define	BDMASTAT_TX_NL	0x20000	// BDMA Tx Null List#define	BDMASTAT_TX_NO	0x40000	// BDMA Tx Not Owner#define	BDMASTAT_TX_EMPTY 0x100000// BDMA Tx Buffer Empty// MACON : 0xa000// MAC Control Register#define	MACON_HALT_REG	0x0001	// stop transmission and reception				// after completion of ant current packets#define	MACON_HALT_IMM	0x0002	// Stop transmission and reception immediately#define	MACON_SW_RESET 	0x0004 	// reset all Ethernet controller state machines				// and FIFOs#define	MACON_FULL_DUP	0x0008	// allow transmission to begin while reception				// is occurring#define	MACON_MAC_LOOP	0x0010	// MAC loopback#define	MACON_CONN_M00	0x0000	// Automatic-default#define	MACON_CONN_M01	0x0020	// Force 10Mbits endec#define	MACON_CONN_M10	0x0040	// Force MII (rate determined by MII clock#define	MACON_LOOP10	0x0080	// Loop 10Mbps#define	MACON_MISS_ROLL	0x0400	// Missed error counter rolled over#define	MACON_EN_MISS_ROLL 0x2000	// Interrupt when missed error counter rolls				// over#define	MACON_LINK10	0x8000	// Link status 10Mbps// CAMCON : 0xa004// CAM control register#define	CAMCON_STATION_ACC 0x0001	// Accept any packet with a unicast station				// address#define	CAMCON_GROUP_ACC 0x0002	// Accept any packet with multicast-group				// station address#define	CAMCON_BROAD_ACC 0x0004	// Accept any packet with a broadcast station				// address#define	CAMCON_NEG_CAM	 0x0008	// 0: Accept packets CAM recognizes,				//    reject others				// 1: reject packets CAM recognizes,				//    accept others#define	CAMCON_COMP_EN	 0x0010	// Compare Enable mode// MACTXCON : 0xa008// Transmit Control Register#define	MACTXCON_TX_EN	 0x0001	// transmit Enable#define MACTXCON_TX_HALT 0x0002	// Transmit Halt Request#define	MACTXCON_NO_PAD	 0x0004	// suppress Padding#define	MACTXCON_NO_CRC	 0x0008	// Suppress CRC#define	MACTXCON_FBACK	 0x0010	// Fast Back-off#define	MACTXCON_NO_DEF	 0x0020	// Disable the defer counter#define	MACTXCON_SD_PAUSE 0x0040	// Send Pause#define	MACTXCON_MII10_EN 0x0080	// MII 10Mbps mode enable#define	MACTXCON_EN_UNDER 0x0100	// Enable Underrun#define	MACTXCON_EN_DEFER 0x0200	// Enable Deferral#define	MACTXCON_EN_NCARR 0x0400	// Enable No Carrier#define	MACTXCON_EN_EXCOLL 0x0800	// interrupt if 16 collision occur				// in the same packet#define MACTXCON_EN_LATE_COLL 0x1000	// interrupt if collision occurs after				// 512 bit times(64 bytes times)#define	MACTXCON_ENTX_PAR 0x2000	// interrupt if the MAC transmit FIFO				// has a parity error#define	MACTXCON_EN_COMP 0x4000	// interrupt when the MAC transmits or				// discards one packet// MACTXSTAT : 0xa00c// Transmit Status Register#define	MACTXSTAT_EX_COLL 0x0010	// Excessive collision#define	MACTXSTAT_DEFFERED 0x0020	// set if 16 collisions occur for same packet#define	MACTXSTAT_PAUSED  0x0040	// packet waited because of pause during			 		// transmission#define	MACTXSTAT_INT_TX 0x0080	// set if transmission of packet causes an				// interrupt condiftion#define	MACTXSTAT_UNDER	 0x0100	// MAC transmit FIFO becomes empty during				// transmission#define MACTXSTAT_DEFER	 0x0200	// MAC defers for MAC deferral#define	MACTXSTAT_NCARR	 0x0400	// No carrier sense detected during the				// transmission of a packet#define	MACTXSTAT_SIG_QUAL 0x0800	// Signal Quality Error#define	MACTXSTAT_LATE_COLL 0x1000	// a collision occures after 512 bit times#define	MACTXSTAT_PAR	   0x2000	// MAC transmit FIFO has detected a parity error#define	MACTXSTAT_COMP	   0x4000	// MAC transmit or discards one packet#define	MACTXSTAT_HALTED   0x8000	// Transmission was halted by clearing				// MACTXCON_TX_EN or Halt immedite// MACRXCON : 0xa010// Receive Control Register#define MACRXCON_RX_EN     0x0001#define	MACRXCON_HALT	   0x0002#define	MACRXCON_LONG_EN   0x0004#define	MACRXCON_SHORT_EN  0x0008#define	MACRXCON_STRIP_CRC 0x0010#define	MACRXCON_PASS_CTL  0x0020#define	MACRXCON_IGNORE_CRC 0x0040#define	MACRXCON_EN_ALIGN 0x0100#define	MACRXCON_EN_CRC_ERR 0x0200#define	MACRXCON_EN_OVER   0x0400#define	MACRXCON_EN_LONG_ERR 0x0800#define	MACRXCON_EN_RX_PAR 0x2000#define	MACRXCON_EN_GOOD   0x4000// MACRXSTAT : 0xa014// Receive Status Register#define MACRXSTAT_CTL_RECD 0x0020#define	MACRXSTAT_INT_RX   0x0040#define	MACRXSTAT_10STAT   0x0080#define	MACRXSTAT_ALLIGN_ERR 0x0100#define	MACRXSTAT_CRC_ERR  0x0200#define	MACRXSTAT_OVERFLOW 0x0400#define	MACRXSTAT_LONG_ERR 0x0800#define	MACRXSTAT_PAR	   0x2000#define	MACRXSTAT_GOOD	   0x4000#define	MACRXSTAT_HALTED   0x8000/*--------------------------------------------------------------------------*/#endif /* 0/1 *//* ........................................................................ *//* Davicom 9161 PHY */#define MII_DM9161_ID   ((unsigned int)0x0181b880)/* Davicom specific registers */#define MII_DSCR_REG	16#define MII_DSCSR_REG   17#define MII_DSINTR_REG  21/* Intel LXT971A PHY */#define MII_LXT971A_ID	((unsigned int)0x001378E0)/* Intel specific registers */#define MII_ISINTE_REG	18#define MII_ISINTS_REG	19#define MII_LEDCTRL_REG	20/* Realtek RTL8201 PHY */#define MII_RTL8201_ID	((unsigned int)0x00008200)/* Broadcom BCM5221 PHY */#define MII_BCM5221_ID	((unsigned int)0x004061e0)/* Broadcom specific registers */#define MII_BCMINTR_REG	26/* National Semiconductor DP83847 */#define MII_DP83847_ID  ((unsigned int)0x20005c30)/* Generic MII registers. */#define MII_BMCR            0x00        /* Basic mode control register */#define MII_BMSR            0x01        /* Basic mode status register  */#define MII_PHYSID1         0x02        /* PHYS ID 1                   */#define MII_PHYSID2         0x03        /* PHYS ID 2                   */#define MII_ADVERTISE       0x04        /* Advertisement control reg   */#define MII_LPA             0x05        /* Link partner ability reg    */#define MII_EXPANSION       0x06        /* Expansion register          */#define MII_CTRL1000        0x09        /* 1000BASE-T control          */#define MII_STAT1000        0x0a        /* 1000BASE-T status           */#define MII_DCOUNTER        0x12        /* Disconnect counter          */#define MII_FCSCOUNTER      0x13        /* False carrier counter       */#define MII_NWAYTEST        0x14        /* N-way auto-neg test reg     */#define MII_RERRCOUNTER     0x15        /* Receive error counter       */#define MII_SREVISION       0x16        /* Silicon revision            */#define MII_RESV1           0x17        /* Reserved...                 */#define MII_LBRERROR        0x18        /* Lpback, rx, bypass error    */#define MII_PHYADDR         0x19        /* PHY address                 */#define MII_RESV2           0x1a        /* Reserved...                 */#define MII_TPISTATUS       0x1b        /* TPI status for 10mbps       */#define MII_NCONFIG         0x1c        /* Network interface config    *//* ........................................................................ */#endif

⌨️ 快捷键说明

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