Remove old lnc files.
This commit is contained in:
parent
2ed67f4c59
commit
4aaede0d99
@ -1,173 +0,0 @@
|
||||
/*
|
||||
* Am7990, Local Area Network Controller for Ethernet (LANCE)
|
||||
*
|
||||
* Copyright (c) 1994, Paul Richards. This software may be used,
|
||||
* modified, copied, distributed, and sold, in both source and binary
|
||||
* form provided that the above copyright and these terms are retained.
|
||||
* Under no circumstances is the author responsible for the proper
|
||||
* functioning of this software, nor does the author assume any
|
||||
* responsibility for damages incurred with its use.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/*
|
||||
* The LANCE has four Control and Status Registers(CSRs) which are accessed
|
||||
* through two bus addressable ports, the address port (RAP) and the data
|
||||
* port (RDP).
|
||||
*
|
||||
*/
|
||||
|
||||
#define CSR0 0
|
||||
#define CSR1 1
|
||||
#define CSR2 2
|
||||
#define CSR3 3
|
||||
#define CSR88 88
|
||||
#define CSR89 89
|
||||
|
||||
#define BCR49 49
|
||||
#define BCR32 32
|
||||
#define BCR33 33
|
||||
#define BCR34 34
|
||||
|
||||
|
||||
/* Control and Status Register Masks */
|
||||
|
||||
/* CSR0 */
|
||||
|
||||
#define ERR 0x8000
|
||||
#define BABL 0x4000
|
||||
#define CERR 0x2000
|
||||
#define MISS 0x1000
|
||||
#define MERR 0x0800
|
||||
#define RINT 0x0400
|
||||
#define TINT 0x0200
|
||||
#define IDON 0x0100
|
||||
#define INTR 0x0080
|
||||
#define INEA 0x0040
|
||||
#define RXON 0x0020
|
||||
#define TXON 0x0010
|
||||
#define TDMD 0x0008
|
||||
#define STOP 0x0004
|
||||
#define STRT 0x0002
|
||||
#define INIT 0x0001
|
||||
|
||||
/*
|
||||
* CSR3
|
||||
*
|
||||
* Bits 3-15 are reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#define BSWP 0x0004
|
||||
#define ACON 0x0002
|
||||
#define BCON 0x0001
|
||||
|
||||
/* Initialisation block */
|
||||
|
||||
struct init_block {
|
||||
u_short mode; /* Mode register */
|
||||
u_char padr[6]; /* Ethernet address */
|
||||
u_char ladrf[8]; /* Logical address filter (multicast) */
|
||||
u_short rdra; /* Low order pointer to receive ring */
|
||||
u_short rlen; /* High order pointer and no. rings */
|
||||
u_short tdra; /* Low order pointer to transmit ring */
|
||||
u_short tlen; /* High order pointer and no rings */
|
||||
};
|
||||
|
||||
/* Initialisation Block Mode Register Masks */
|
||||
|
||||
#define PROM 0x8000 /* Promiscuous Mode */
|
||||
#define DRCVBC 0x4000 /* Disable Receive Broadcast */
|
||||
#define DRCVPA 0x2000 /* Disable Receive Physical Address */
|
||||
#define DLNKTST 0x1000 /* Disable Link Status */
|
||||
#define DAPC 0x0800 /* Disable Automatic Polarity Correction */
|
||||
#define MENDECL 0x0400 /* MENDEC Loopback Mode */
|
||||
#define LRT 0x0200 /* Low Receive Threshold (T-MAU mode only) */
|
||||
#define TSEL 0x0200 /* Transmit Mode Select (AUI mode only) */
|
||||
#define PORTSEL 0x0180 /* Port Select bits */
|
||||
#define INTL 0x0040 /* Internal Loopback */
|
||||
#define DRTY 0x0020 /* Disable Retry */
|
||||
#define FCOLL 0x0010 /* Force Collision */
|
||||
#define DXMTFCS 0x0008 /* Disable transmit CRC (FCS) */
|
||||
#define LOOP 0x0004 /* Loopback Enabl */
|
||||
#define DTX 0x0002 /* Disable the transmitter */
|
||||
#define DRX 0x0001 /* Disable the receiver */
|
||||
|
||||
/*
|
||||
* Message Descriptor Structure
|
||||
*
|
||||
* Each transmit or receive descriptor ring entry (RDRE's and TDRE's)
|
||||
* is composed of 4, 16-bit, message descriptors. They contain the following
|
||||
* information.
|
||||
*
|
||||
* 1. The address of the actual message data buffer in user (host) memory.
|
||||
* 2. The length of that message buffer.
|
||||
* 3. The status information for that particular buffer. The eight most
|
||||
* significant bits of md1 are collectively termed the STATUS of the
|
||||
* descriptor.
|
||||
*
|
||||
* Descriptor md0 contains LADR 0-15, the low order 16 bits of the 24-bit
|
||||
* address of the actual data buffer. Bits 0-7 of descriptor md1 contain
|
||||
* HADR, the high order 8-bits of the 24-bit data buffer address. Bits 8-15
|
||||
* of md1 contain the status flags of the buffer. Descriptor md2 contains the
|
||||
* buffer byte count in bits 0-11 as a two's complement number and must have
|
||||
* 1's written to bits 12-15. For the receive entry md3 has the Message Byte
|
||||
* Count in bits 0-11, this is the length of the received message and is valid
|
||||
* only when ERR is cleared and ENP is set. For the transmit entry it contains
|
||||
* more status information.
|
||||
*
|
||||
*/
|
||||
|
||||
struct mds {
|
||||
u_short md0;
|
||||
u_short md1;
|
||||
short md2;
|
||||
u_short md3;
|
||||
};
|
||||
|
||||
/* Receive STATUS flags for md1 */
|
||||
|
||||
#define OWN 0x8000 /* Owner bit, 0=host, 1=Lance */
|
||||
#define MDERR 0x4000 /* Error */
|
||||
#define FRAM 0x2000 /* Framing error error */
|
||||
#define OFLO 0x1000 /* Silo overflow */
|
||||
#define CRC 0x0800 /* CRC error */
|
||||
#define RBUFF 0x0400 /* Buffer error */
|
||||
#define STP 0x0200 /* Start of packet */
|
||||
#define ENP 0x0100 /* End of packet */
|
||||
#define HADR 0x00FF /* High order address bits */
|
||||
|
||||
/* Receive STATUS flags for md2 */
|
||||
|
||||
#define BCNT 0x0FFF /* Size of data buffer as 2's comp. no. */
|
||||
|
||||
/* Receive STATUS flags for md3 */
|
||||
|
||||
#define MCNT 0x0FFF /* Total size of data for received packet */
|
||||
|
||||
/* Transmit STATUS flags for md1 */
|
||||
|
||||
#define ADD_FCS 0x2000 /* Controls generation of FCS */
|
||||
#define MORE 0x1000 /* Indicates more than one retry was needed */
|
||||
#define ONE 0x0800 /* Exactly one retry was needed */
|
||||
#define DEF 0x0400 /* Packet transmit deferred -- channel busy */
|
||||
|
||||
/*
|
||||
* Transmit status flags for md2
|
||||
*
|
||||
* Same as for receive descriptor.
|
||||
*
|
||||
* BCNT 0x0FFF Size of data buffer as 2's complement number.
|
||||
*
|
||||
*/
|
||||
|
||||
/* Transmit status flags for md3 */
|
||||
|
||||
#define TBUFF 0x8000 /* Buffer error */
|
||||
#define UFLO 0x4000 /* Silo underflow */
|
||||
#define LCOL 0x1000 /* Late collision */
|
||||
#define LCAR 0x0800 /* Loss of carrier */
|
||||
#define RTRY 0x0400 /* Tried 16 times */
|
||||
#define TDR 0x03FF /* Time domain reflectometry */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,215 +0,0 @@
|
||||
/*-
|
||||
* Copyright (c) 1994-1998
|
||||
* Paul Richards. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer,
|
||||
* verbatim and that no modifications are made prior to this
|
||||
* point in the file.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Paul Richards.
|
||||
* 4. The name Paul Richards may not be used to endorse or promote products
|
||||
* derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY PAUL RICHARDS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL PAUL RICHARDS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#include <i386/isa/ic/Am7990.h>
|
||||
|
||||
/*
|
||||
* Initialize multicast address hashing registers to accept
|
||||
* all multicasts (only used when in promiscuous mode)
|
||||
*/
|
||||
#define MULTI_INIT_ADDR 0xff
|
||||
|
||||
#define NORMAL 0
|
||||
|
||||
#define NRDRE 3
|
||||
#define NTDRE 3
|
||||
#define RECVBUFSIZE 1518 /* Packet size rounded to dword boundary */
|
||||
#define TRANSBUFSIZE 1518
|
||||
#define MBUF_CACHE_LIMIT 0
|
||||
|
||||
#define MEM_SLEW 8
|
||||
|
||||
/* LNC Flags */
|
||||
#define LNC_INITIALISED 1
|
||||
#define LNC_ALLMULTI 2
|
||||
|
||||
/* BICC port addresses */
|
||||
#define BICC_IOSIZE 16
|
||||
#define BICC_RDP 0x0c /* Register Data Port */
|
||||
#define BICC_RAP 0x0e /* Register Address Port */
|
||||
|
||||
/* NE2100 port addresses */
|
||||
#define NE2100_IOSIZE 24
|
||||
#define PCNET_RDP 0x10 /* Register Data Port */
|
||||
#define PCNET_RAP 0x12 /* Register Address Port */
|
||||
#define PCNET_RESET 0x14
|
||||
#define PCNET_BDP 0x16
|
||||
#define PCNET_VSW 0x18
|
||||
|
||||
/* DEPCA port addresses */
|
||||
#define DEPCA_IOSIZE 16
|
||||
#define DEPCA_CTRL 0x00 /* NIC Control and status register */
|
||||
#define DEPCA_RDP 0x04 /* Register Data Port */
|
||||
#define DEPCA_RAP 0x06 /* Register Address Port */
|
||||
#define DEPCA_ADP 0x0c
|
||||
|
||||
/* DEPCA specific defines */
|
||||
#define DEPCA_ADDR_ROM_SIZE 32
|
||||
|
||||
#ifdef PC98
|
||||
/* C-NET(98)S port addresses */
|
||||
#define CNET98S_RDP 0x400 /* Register Data Port */
|
||||
#define CNET98S_RAP 0x402 /* Register Address Port */
|
||||
#define CNET98S_RESET 0x404
|
||||
#define CNET98S_IDP 0x406
|
||||
#define CNET98S_EEPROM 0x40e
|
||||
/*
|
||||
* XXX - The I/O address range is fragmented in the C-NET(98)S.
|
||||
* This is the number of regs at iobase.
|
||||
*/
|
||||
#define CNET98S_IOSIZE 16 /* # of i/o addresses used. */
|
||||
#endif
|
||||
|
||||
/* Chip types */
|
||||
#define LANCE 1 /* Am7990 */
|
||||
#define C_LANCE 2 /* Am79C90 */
|
||||
#define PCnet_ISA 3 /* Am79C960 */
|
||||
#define PCnet_ISAplus 4 /* Am79C961 */
|
||||
#define PCnet_ISA_II 5 /* Am79C961A */
|
||||
#define PCnet_32 6 /* Am79C965 */
|
||||
#define PCnet_PCI 7 /* Am79C970 */
|
||||
#define PCnet_PCI_II 8 /* Am79C970A */
|
||||
#define PCnet_FAST 9 /* Am79C971 */
|
||||
#define PCnet_FASTplus 10 /* Am79C972 */
|
||||
#define PCnet_Home 11 /* Am79C978 */
|
||||
|
||||
|
||||
/* CSR88-89: Chip ID masks */
|
||||
#define AMD_MASK 0x003
|
||||
#define PART_MASK 0xffff
|
||||
#define Am79C960 0x0003
|
||||
#define Am79C961 0x2260
|
||||
#define Am79C961A 0x2261
|
||||
#define Am79C965 0x2430
|
||||
#define Am79C970 0x0242
|
||||
#define Am79C970A 0x2621
|
||||
#define Am79C971 0x2623
|
||||
#define Am79C972 0x2624
|
||||
#define Am79C978 0x2626
|
||||
|
||||
/* Board types */
|
||||
#define UNKNOWN 0
|
||||
#define BICC 1
|
||||
#define NE2100 2
|
||||
#define DEPCA 3
|
||||
#define CNET98S 4 /* PC-98 */
|
||||
|
||||
/* mem_mode values */
|
||||
#define DMA_FIXED 1
|
||||
#define DMA_MBUF 2
|
||||
#define SHMEM 4
|
||||
|
||||
#define MEM_MODES \
|
||||
"\20\3SHMEM\2DMA_MBUF\1DMA_FIXED"
|
||||
|
||||
#define CSR0_FLAGS \
|
||||
"\20\20ERR\17BABL\16CERR\15MISS\14MERR\13RINT\12TINT\11IDON\
|
||||
\10INTR\07INEA\06RXON\05TXON\04TDMD\03STOP\02STRT\01INIT"
|
||||
|
||||
#define INIT_MODE \
|
||||
"\20\20PROM\07INTL\06DRTY\05COLL\04DTCR\03LOOP\02DTX\01DRX"
|
||||
|
||||
#define RECV_MD1 \
|
||||
"\20\10OWN\7ERR\6FRAM\5OFLO\4CRC\3BUFF\2STP\1ENP"
|
||||
|
||||
#define TRANS_MD1 \
|
||||
"\20\10OWN\7ERR\6RES\5MORE\4ONE\3DEF\2STP\1ENP"
|
||||
|
||||
#define TRANS_MD3 \
|
||||
"\20\6BUFF\5UFLO\4RES\3LCOL\2LCAR\1RTRY"
|
||||
|
||||
struct nic_info {
|
||||
int ident; /* Type of card */
|
||||
int ic; /* Type of ic, Am7990, Am79C960 etc. */
|
||||
int mem_mode;
|
||||
int iobase;
|
||||
int mode; /* Mode setting at initialization */
|
||||
};
|
||||
|
||||
struct host_ring_entry {
|
||||
struct mds *md;
|
||||
union {
|
||||
struct mbuf *mbuf;
|
||||
char *data;
|
||||
}buff;
|
||||
};
|
||||
|
||||
#ifdef LNC_KEEP_STATS
|
||||
#define LNCSTATS_STRUCT \
|
||||
struct lnc_stats { \
|
||||
int idon; \
|
||||
int rint; \
|
||||
int tint; \
|
||||
int cerr; \
|
||||
int babl; \
|
||||
int miss; \
|
||||
int merr; \
|
||||
int rxoff; \
|
||||
int txoff; \
|
||||
int terr; \
|
||||
int lcol; \
|
||||
int lcar; \
|
||||
int tbuff; \
|
||||
int def; \
|
||||
int more; \
|
||||
int one; \
|
||||
int uflo; \
|
||||
int rtry; \
|
||||
int rerr; \
|
||||
int fram; \
|
||||
int oflo; \
|
||||
int crc; \
|
||||
int rbuff; \
|
||||
int drop_packet; \
|
||||
int trans_ring_full; \
|
||||
} lnc_stats;
|
||||
#define LNCSTATS(X) ++(sc->lnc_stats.X);
|
||||
#else
|
||||
#define LNCSTATS_STRUCT
|
||||
#define LNCSTATS(X)
|
||||
#endif
|
||||
|
||||
#define NDESC(len2) (1 << len2)
|
||||
|
||||
#define INC_MD_PTR(ptr, no_entries) \
|
||||
if (++ptr >= NDESC(no_entries)) \
|
||||
ptr = 0;
|
||||
|
||||
#define DEC_MD_PTR(ptr, no_entries) \
|
||||
if (--ptr < 0) \
|
||||
ptr = NDESC(no_entries) - 1;
|
||||
|
||||
#define RECV_NEXT (sc->recv_ring->base + sc->recv_next)
|
||||
#define TRANS_NEXT (sc->trans_ring->base + sc->trans_next)
|
Loading…
Reference in New Issue
Block a user