mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			141 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef __ARUBA_DMA_H__
 | |
| #define __ARUBA_DMA_H__
 | |
| 
 | |
| /*******************************************************************************
 | |
|  *
 | |
|  * Copyright 2002 Integrated Device Technology, Inc.
 | |
|  *		All rights reserved.
 | |
|  *
 | |
|  * DMA register definition.
 | |
|  *
 | |
|  * File   : $Id: dma.h,v 1.3 2002/06/06 18:34:03 astichte Exp $
 | |
|  *
 | |
|  * Author : ryan.holmQVist@idt.com
 | |
|  * Date   : 20011005
 | |
|  * Update :
 | |
|  *	    $Log: dma.h,v $
 | |
|  *	    Revision 1.3  2002/06/06 18:34:03  astichte
 | |
|  *	    Added XXX_PhysicalAddress and XXX_VirtualAddress
 | |
|  *	
 | |
|  *	    Revision 1.2  2002/06/05 18:30:46  astichte
 | |
|  *	    Removed IDTField
 | |
|  *	
 | |
|  *	    Revision 1.1  2002/05/29 17:33:21  sysarch
 | |
|  *	    jba File moved from vcode/include/idt/acacia
 | |
|  *	
 | |
|  *
 | |
|  ******************************************************************************/
 | |
| 
 | |
| #define AR_BIT(x)            (1 << (x))
 | |
| #define DMA_RX_ERR_CRC       AR_BIT(1)
 | |
| #define DMA_RX_ERR_DRIB      AR_BIT(2)
 | |
| #define DMA_RX_ERR_MII       AR_BIT(3)
 | |
| #define DMA_RX_EV2           AR_BIT(5)
 | |
| #define DMA_RX_ERR_COL       AR_BIT(6)
 | |
| #define DMA_RX_LONG          AR_BIT(7)
 | |
| #define DMA_RX_LS            AR_BIT(8)  /* last descriptor */
 | |
| #define DMA_RX_FS            AR_BIT(9)  /* first descriptor */
 | |
| #define DMA_RX_MF            AR_BIT(10) /* multicast frame */
 | |
| #define DMA_RX_ERR_RUNT      AR_BIT(11) /* runt frame */
 | |
| #define DMA_RX_ERR_LENGTH    AR_BIT(12) /* length error */
 | |
| #define DMA_RX_ERR_DESC      AR_BIT(14) /* descriptor error */
 | |
| #define DMA_RX_ERROR         AR_BIT(15) /* error summary */
 | |
| #define DMA_RX_LEN_MASK      0x3fff0000
 | |
| #define DMA_RX_LEN_SHIFT     16
 | |
| #define DMA_RX_FILT          AR_BIT(30)
 | |
| #define DMA_RX_OWN           AR_BIT(31) /* desc owned by DMA controller */
 | |
| 
 | |
| #define DMA_RX1_BSIZE_MASK   0x000007ff
 | |
| #define DMA_RX1_BSIZE_SHIFT  0
 | |
| #define DMA_RX1_CHAINED      AR_BIT(24)
 | |
| #define DMA_RX1_RER          AR_BIT(25)
 | |
| 
 | |
| #define DMA_TX_ERR_UNDER     AR_BIT(1)  /* underflow error */
 | |
| #define DMA_TX_ERR_DEFER     AR_BIT(2)  /* excessive deferral */
 | |
| #define DMA_TX_COL_MASK      0x78
 | |
| #define DMA_TX_COL_SHIFT     3
 | |
| #define DMA_TX_ERR_HB        AR_BIT(7)  /* hearbeat failure */
 | |
| #define DMA_TX_ERR_COL       AR_BIT(8)  /* excessive collisions */
 | |
| #define DMA_TX_ERR_LATE      AR_BIT(9)  /* late collision */
 | |
| #define DMA_TX_ERR_LINK      AR_BIT(10) /* no carrier */
 | |
| #define DMA_TX_ERR_LOSS      AR_BIT(11) /* loss of carrier */
 | |
| #define DMA_TX_ERR_JABBER    AR_BIT(14) /* transmit jabber timeout */
 | |
| #define DMA_TX_ERROR         AR_BIT(15) /* frame aborted */
 | |
| #define DMA_TX_OWN           AR_BIT(31) /* descr owned by DMA controller */
 | |
| 
 | |
| #define DMA_TX1_BSIZE_MASK   0x000007ff
 | |
| #define DMA_TX1_BSIZE_SHIFT  0
 | |
| #define DMA_TX1_CHAINED      AR_BIT(24) /* chained descriptors */
 | |
| #define DMA_TX1_TER          AR_BIT(25) /* transmit end of ring */
 | |
| #define DMA_TX1_FS           AR_BIT(29) /* first segment */
 | |
| #define DMA_TX1_LS           AR_BIT(30) /* last segment */
 | |
| #define DMA_TX1_IC           AR_BIT(31) /* interrupt on completion */
 | |
| 
 | |
| #define RCVPKT_LENGTH(X)     (X  >> 16)               /* Received pkt Length  */
 | |
| 
 | |
| #define MAC_CONTROL_RE       AR_BIT(2)  /* receive enable */
 | |
| #define MAC_CONTROL_TE       AR_BIT(3)  /* transmit enable */
 | |
| #define MAC_CONTROL_DC       AR_BIT(5)  /* Deferral check*/
 | |
| #define MAC_CONTROL_ASTP     AR_BIT(8)  /* Auto pad strip */
 | |
| #define MAC_CONTROL_DRTY     AR_BIT(10) /* Disable retry */
 | |
| #define MAC_CONTROL_DBF      AR_BIT(11) /* Disable bcast frames */
 | |
| #define MAC_CONTROL_LCC      AR_BIT(12) /* late collision ctrl */
 | |
| #define MAC_CONTROL_HP       AR_BIT(13) /* Hash Perfect filtering */
 | |
| #define MAC_CONTROL_HASH     AR_BIT(14) /* Unicast hash filtering */
 | |
| #define MAC_CONTROL_HO       AR_BIT(15) /* Hash only filtering */
 | |
| #define MAC_CONTROL_PB       AR_BIT(16) /* Pass Bad frames */
 | |
| #define MAC_CONTROL_IF       AR_BIT(17) /* Inverse filtering */
 | |
| #define MAC_CONTROL_PR       AR_BIT(18) /* promiscuous mode (valid frames only) */
 | |
| #define MAC_CONTROL_PM       AR_BIT(19) /* pass multicast */
 | |
| #define MAC_CONTROL_F        AR_BIT(20) /* full-duplex */
 | |
| #define MAC_CONTROL_DRO      AR_BIT(23) /* Disable Receive Own */
 | |
| #define MAC_CONTROL_HBD      AR_BIT(28) /* heart-beat disabled (MUST BE SET) */
 | |
| #define MAC_CONTROL_BLE      AR_BIT(30) /* big endian mode */
 | |
| #define MAC_CONTROL_RA       AR_BIT(31) /* receive all (valid and invalid frames) */
 | |
| 
 | |
| #define MII_ADDR_BUSY        AR_BIT(0)
 | |
| #define MII_ADDR_WRITE       AR_BIT(1)
 | |
| #define MII_ADDR_REG_SHIFT   6
 | |
| #define MII_ADDR_PHY_SHIFT   11
 | |
| #define MII_DATA_SHIFT       0
 | |
| 
 | |
| #define FLOW_CONTROL_FCE     AR_BIT(1)
 | |
| 
 | |
| #define DMA_BUS_MODE_SWR       AR_BIT(0)  /* software reset */
 | |
| #define DMA_BUS_MODE_BLE       AR_BIT(7)  /* big endian mode */
 | |
| #define DMA_BUS_MODE_PBL_SHIFT 8          /* programmable burst length 32 */
 | |
| #define DMA_BUS_MODE_DBO       AR_BIT(20) /* big-endian descriptors */
 | |
| 
 | |
| #define DMA_STATUS_TI        AR_BIT(0)  /* transmit interrupt */
 | |
| #define DMA_STATUS_TPS       AR_BIT(1)  /* transmit process stopped */
 | |
| #define DMA_STATUS_TU        AR_BIT(2)  /* transmit buffer unavailable */
 | |
| #define DMA_STATUS_TJT       AR_BIT(3)  /* transmit buffer timeout */
 | |
| #define DMA_STATUS_UNF       AR_BIT(5)  /* transmit underflow */
 | |
| #define DMA_STATUS_RI        AR_BIT(6)  /* receive interrupt */
 | |
| #define DMA_STATUS_RU        AR_BIT(7)  /* receive buffer unavailable */
 | |
| #define DMA_STATUS_RPS       AR_BIT(8)  /* receive process stopped */
 | |
| #define DMA_STATUS_ETI       AR_BIT(10) /* early transmit interrupt */
 | |
| #define DMA_STATUS_FBE       AR_BIT(13) /* fatal bus interrupt */
 | |
| #define DMA_STATUS_ERI       AR_BIT(14) /* early receive interrupt */
 | |
| #define DMA_STATUS_AIS       AR_BIT(15) /* abnormal interrupt summary */
 | |
| #define DMA_STATUS_NIS       AR_BIT(16) /* normal interrupt summary */
 | |
| #define DMA_STATUS_RS_SHIFT  17         /* receive process state */
 | |
| #define DMA_STATUS_TS_SHIFT  20         /* transmit process state */
 | |
| #define DMA_STATUS_EB_SHIFT  23         /* error bits */
 | |
| 
 | |
| #define DMA_CONTROL_SR       AR_BIT(1)  /* start receive */
 | |
| #define DMA_CONTROL_ST       AR_BIT(13) /* start transmit */
 | |
| #define DMA_CONTROL_SF       AR_BIT(21) /* store and forward */
 | |
| 
 | |
| 
 | |
| typedef struct {
 | |
|     volatile unsigned int	status;		// OWN, Device control and status.
 | |
|     volatile unsigned int	devcs;		// pkt Control bits + Length
 | |
|     volatile unsigned int	addr;		// Current Address.
 | |
|     volatile unsigned int	descr;		// Next descriptor in chain.
 | |
| } ar2313_descr_t;
 | |
| 
 | |
| 
 | |
| #endif	// __ARUBA_DMA_H__
 | |
| 
 |