URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [devs/] [eth/] [arm/] [ks32c5000/] [v2_0/] [src/] [ks5000_ether.h] - Rev 174
Compare with Previous | Blame | View Log
//========================================================================== // // ks5000_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): gthomas // Contributors: gthomas, jskov // Grant Edwards <grante@visi.com> // Date: 2001-07-31 // Purpose: // Description: // //####DESCRIPTIONEND#### // //========================================================================*/ #ifndef KS32C5000_ETHER_H #define KS32C5000_ETHER_H // 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