saa9730.h
来自「eCos操作系统源码」· C头文件 代码 · 共 365 行 · 第 1/2 页
H
365 行
#ifndef CYGONCE_DEVS_ETH_MIPS_ATLAS_SAA9730_H#define CYGONCE_DEVS_ETH_MIPS_ATLAS_SAA9730_H/*==========================================================================//// saa9730.h// Philips SAA9730 IO Chip Ethernet Interface//////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.// Copyright (C) 2003 Nick Garnett <nickg@calivar.com>//// 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 the copyright// holders.// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s): msalter// Contributors: msalter, nickg// Date: 2000-12-09// Description: Definitions for Philips SAA9730 Ethernet module.////####DESCRIPTIONEND####*/// QS6612 PHY definitions #define PHY_CONTROL 0#define PHY_STATUS 1#define PHY_REG31 31#define PHY_CONTROL_RESET (1 << 15)#define PHY_CONTROL_AUTO_NEG (1 << 12)#define PHY_CONTROL_RESTART_AUTO_NEG (1 << 9)#define PHY_STATUS_LINK_UP (1 << 2)#define PHY_REG31_OPMODE_SHIFT 2#define PHY_REG31_OPMODE_MSK (7 << PHY_REG31_OPMODE_SHIFT)#define OPMODE_AUTONEGOTIATE 0#define OPMODE_10BASET_HALFDUPLEX 1#define OPMODE_100BASEX_HALFDUPLEX 2#define OPMODE_REPEATER_MODE 3#define OPMODE_UNDEFINED 4#define OPMODE_10BASET_FULLDUPLEX 5#define OPMODE_100BASEX_FULLDUPLEX 6#define OPMODE_ISOLATE 7#define QS6612_PHY_ADDRESS 0#define PHY_ADDRESS QS6612_PHY_ADDRESS// Number of 6-byte entries in the CAM#define SAA9730_CAM_ENTRIES 10// TX and RX packet size fixed at 2k bytes by hw#define SAA9730_PACKET_SIZE 2048// Number of TX buffers = number of RX buffers = 2,// which is fixed according to HW requirements#define SAA9730_BUFFERS 2// Number of RX packets per RX buffer#define SAA9730_RXPKTS_PER_BUFFER 2// Number of TX packets per TX buffer#define SAA9730_TXPKTS_PER_BUFFER 1// Minimum packet size#define SAA9730_MIN_PACKET_SIZE 60// owner ship bit#define SAA9730_BLOCK_OWNED_BY_SYSTEM 0#define SAA9730_BLOCK_OWNED_BY_HARDWARE 1// Default Rcv interrupt count#define SAA9730_DEFAULT_RCV_INTERRUPT_CNT 4// Default maxium transmit retry#define SAA9730_DEFAULT_MAX_TXM_RETRY 16// Default time out value#define SAA9730_DEFAULT_TIME_OUT_CNT 200// MAX map registers#define SAA9730__MAX_MAP_REGISTERS 64// Defines used by Interrupt code#define SAA9730_DMA_PACKET_SIZE 2048#define SAA9730_VALID_PACKET 0xC0000000#define SAA9730_FRAME_TYPELEN_OFFSET 12#define SAA9730_ETH_MIN_FRAME_SIZE 60#define SAA9730_DEST_ADDR_SIZE 6#define SAA9730_SRC_ADDR_SIZE 6#define SAA9730_TYPE_LEN_SIZE 2// MAC receive error#define SAA9730_MAC_GOOD_RX (0x00004000) << 11#define SAA9730_MAC_RCV_ALIGN_ERROR (0x00000100) << 11#define SAA9730_MAC_RCV_CRC_ERROR (0x00000200) << 11#define SAA9730_MAC_RCV_OVERFLOW (0x00000400) << 11// This number is arbitrary and can be increased if needed#define SAA9730_MAX_MULTICAST_ADDRESSES 20 // SAA9730 Event Manager Registers#define SAA9730_EVM_ISR *((volatile unsigned *)(__base + 0x02000))#define SAA9730_EVM_IER *((volatile unsigned *)(__base + 0x02004))#define SAA9730_EVM_IMR *((volatile unsigned *)(__base + 0x02008))#define SAA9730_EVM_IER_SW *((volatile unsigned *)(__base + 0x0202c))#define SAA9730_EVM_LAN_INT (1<<16) // LAN interrupt bit#define SAA9730_EVM_MASTER (1<<0) // Master interrupt bit// SAA9730 LAN Registers#define SAA9730_TXBUFA *((volatile unsigned *)(__base + 0x20400)) // TX buffer A#define SAA9730_TXBUFB *((volatile unsigned *)(__base + 0x20404)) // TX buffer B#define SAA9730_RXBUFA *((volatile unsigned *)(__base + 0x20408)) // RX buffer A#define SAA9730_RXBUFB *((volatile unsigned *)(__base + 0x2040C)) // RX buffer B#define SAA9730_PKTCNT *((volatile unsigned *)(__base + 0x20410)) // Packet count#define SAA9730_OK2USE *((volatile unsigned *)(__base + 0x20414)) // OK-to-use# define SAA9730_OK2USE_TXA 8 # define SAA9730_OK2USE_TXB 4 # define SAA9730_OK2USE_RXA 2 # define SAA9730_OK2USE_RXB 1 #define SAA9730_DMACTL *((volatile unsigned *)(__base + 0x20418)) // DMA control# define SAA9730_DMACTL_BLKINT (1 << 31)# define SAA9730_DMACTL_MAXXFER_ANY (0 << 18)# define SAA9730_DMACTL_MAXXFER_8 (1 << 18)# define SAA9730_DMACTL_MAXXFER_32 (2 << 18)# define SAA9730_DMACTL_MAXXFER_64 (3 << 18)# define SAA9730_DMACTL_ENDIAN_LITTLE (0 << 16)# define SAA9730_DMACTL_ENDIAN_2143 (1 << 16)# define SAA9730_DMACTL_ENDIAN_4321 (2 << 16)# define SAA9730_DMACTL_RXINTCNT_SHIFT 8# define SAA9730_DMACTL_RXINTCNT_MSK (0xff << SAA9730_DMACTL_RXINTCNT_SHIFT)# define SAA9730_DMACTL_ENTX (1 << 7)# define SAA9730_DMACTL_ENRX (1 << 6)# define SAA9730_DMACTL_RXFULL (1 << 5)# define SAA9730_DMACTL_RXTOINT (1 << 4)# define SAA9730_DMACTL_RXINT (1 << 3)# define SAA9730_DMACTL_TXINT (1 << 2)# define SAA9730_DMACTL_MACTXINT (1 << 1)# define SAA9730_DMACTL_MACRXINT (1 << 0)#define SAA9730_TIMOUT *((volatile unsigned *)(__base + 0x2041C)) // Time out#define SAA9730_DMASTA *((volatile unsigned *)(__base + 0x20420)) // DMA status
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?