FCP-101: Remove tx(4).
Relnotes: yes FCP: https://github.com/freebsd/fcp/blob/master/fcp-0101.md Reviewed by: jhb, imp Differential Revision: https://reviews.freebsd.org/D20230
This commit is contained in:
parent
856026641a
commit
1f22780d00
@ -56,6 +56,8 @@ OLD_FILES+=usr/share/man/man4/sn.4
|
||||
OLD_FILES+=usr/share/man/man4/if_sn.4
|
||||
OLD_FILES+=usr/share/man/man4/tl.4
|
||||
OLD_FILES+=usr/share/man/man4/if_tl.4
|
||||
OLD_FILES+=usr/share/man/man4/tx.4
|
||||
OLD_FILES+=usr/share/man/man4/if_tx.4
|
||||
# 20190513: libcap_sysctl interface change
|
||||
OLD_FILES+=lib/casper/libcap_sysctl.1
|
||||
# 20190509: tests/sys/opencrypto requires the net/py-dpkt package.
|
||||
|
@ -524,7 +524,6 @@ MAN= aac.4 \
|
||||
twa.4 \
|
||||
twe.4 \
|
||||
tws.4 \
|
||||
tx.4 \
|
||||
txp.4 \
|
||||
udp.4 \
|
||||
udplite.4 \
|
||||
@ -717,7 +716,6 @@ MLINKS+=tap.4 if_tap.4
|
||||
MLINKS+=tdfx.4 tdfx_linux.4
|
||||
MLINKS+=ti.4 if_ti.4
|
||||
MLINKS+=tun.4 if_tun.4
|
||||
MLINKS+=tx.4 if_tx.4
|
||||
MLINKS+=txp.4 if_txp.4
|
||||
MLINKS+=ure.4 if_ure.4
|
||||
MLINKS+=vge.4 if_vge.4
|
||||
|
@ -1,128 +0,0 @@
|
||||
.\"
|
||||
.\" Copyright (c) 1998-2001 Semen Ustimenko <semenu@FreeBSD.org>
|
||||
.\"
|
||||
.\" 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.
|
||||
.\" 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.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 THE DEVELOPERS 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$
|
||||
.\"
|
||||
.Dd October 24, 2018
|
||||
.Dt TX 4
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm tx
|
||||
.Nd "SMC 83c17x Fast Ethernet device driver"
|
||||
.Sh SYNOPSIS
|
||||
To compile this driver into the kernel,
|
||||
place the following lines in your
|
||||
kernel configuration file:
|
||||
.Bd -ragged -offset indent
|
||||
.Cd "device miibus"
|
||||
.Cd "device tx"
|
||||
.Ed
|
||||
.Pp
|
||||
Alternatively, to load the driver as a
|
||||
module at boot time, place the following line in
|
||||
.Xr loader.conf 5 :
|
||||
.Bd -literal -offset indent
|
||||
if_tx_load="YES"
|
||||
.Ed
|
||||
.Sh DEPRECATION NOTICE
|
||||
The
|
||||
.Nm
|
||||
driver is not present in
|
||||
.Fx 13.0
|
||||
and later.
|
||||
See https://github.com/freebsd/fcp/blob/master/fcp-0101.md for more
|
||||
information.
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
driver provides support for the Ethernet adapters based on the
|
||||
SMC 83c17x (EPIC) chips.
|
||||
These are mostly SMC 9432 series cards.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver supports the following media types (depending on card's capabilities):
|
||||
.Bl -tag -width ".Cm 10baseT/UTP"
|
||||
.It Cm autoselect
|
||||
Enable autonegotiation (default).
|
||||
.It Cm 100baseFX
|
||||
Set 100Mbps (Fast Ethernet) fiber optic operation.
|
||||
.It Cm 100baseTX
|
||||
Set 100Mbps (Fast Ethernet) twisted pair operation.
|
||||
.It Cm 10baseT/UTP
|
||||
Set 10Mbps on 10baseT port.
|
||||
.It Cm 10base2/BNC
|
||||
Set 10Mbps on 10base2 port.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver supports the following media options:
|
||||
.Bl -tag -width ".Cm full-duplex"
|
||||
.It Cm full-duplex
|
||||
Set full-duplex operation.
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver supports oversized Ethernet packets (up to 1600 bytes).
|
||||
Refer to the
|
||||
.Xr ifconfig 8
|
||||
man page on setting the interface's MTU.
|
||||
.Pp
|
||||
The old
|
||||
.Dq Li "ifconfig tx0 linkN"
|
||||
method of configuration is not supported.
|
||||
.Ss "VLAN (IEEE 802.1Q) support"
|
||||
The
|
||||
.Nm
|
||||
driver supports the VLAN operation (using
|
||||
.Xr vlan 4
|
||||
interfaces) without decreasing the MTU on the
|
||||
.Xr vlan 4
|
||||
interfaces.
|
||||
.Sh DIAGNOSTICS
|
||||
.Bl -diag
|
||||
.It "tx%d: device timeout %d packets"
|
||||
The device stops responding.
|
||||
Device and driver reset follows this error.
|
||||
.It "tx%d: PCI fatal error occurred (%s)"
|
||||
One of following errors occurred: PCI Target Abort, PCI Master Abort, Data
|
||||
Parity Error or Address Parity Error.
|
||||
Device and driver reset follows this error.
|
||||
.It "tx%d: cannot allocate mbuf header/cluster"
|
||||
Cannot allocate memory for received packet.
|
||||
Packet thrown away.
|
||||
.It "tx%d: can't stop %s DMA"
|
||||
While resetting, the driver failed to stop the device correctly.
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr arp 4 ,
|
||||
.Xr miibus 4 ,
|
||||
.Xr netintro 4 ,
|
||||
.Xr ng_ether 4 ,
|
||||
.Xr ifconfig 8
|
||||
.Sh BUGS
|
||||
The auto-negotiation does not work very well.
|
@ -278,7 +278,6 @@ device sis # Silicon Integrated Systems SiS 900/SiS 7016
|
||||
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
|
||||
device ste # Sundance ST201 (D-Link DFE-550TX)
|
||||
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
|
||||
device tx # SMC EtherPower II (83c170 ``EPIC'')
|
||||
device vge # VIA VT612x gigabit Ethernet
|
||||
device vr # VIA Rhine, Rhine II
|
||||
device wb # Winbond W89C840F
|
||||
|
@ -1995,7 +1995,6 @@ device xmphy # XaQti XMAC II
|
||||
# Tigon 1 and Tigon 2 chipsets. This includes the Alteon AceNIC, the
|
||||
# 3Com 3c985, the Netgear GA620 and various others. Note that you will
|
||||
# probably want to bump up kern.ipc.nmbclusters a lot to use this driver.
|
||||
# tx: SMC 9432 TX, BTX and FTX cards. (SMC EtherPower II series)
|
||||
# txp: Support for 3Com 3cR990 cards with the "Typhoon" chipset
|
||||
# vr: Support for various fast ethernet adapters based on the VIA
|
||||
# Technologies VT3043 `Rhine I' and VT86C100A `Rhine II' chips,
|
||||
@ -2055,7 +2054,6 @@ device sis # Silicon Integrated Systems SiS 900/SiS 7016
|
||||
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
|
||||
device ste # Sundance ST201 (D-Link DFE-550TX)
|
||||
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
|
||||
device tx # SMC EtherPower II (83c170 ``EPIC'')
|
||||
device vr # VIA Rhine, Rhine II
|
||||
device vte # DM&P Vortex86 RDC R6040 Fast Ethernet
|
||||
device wb # Winbond W89C840F
|
||||
|
@ -3155,7 +3155,6 @@ dev/tws/tws_cam.c optional tws
|
||||
dev/tws/tws_hdm.c optional tws
|
||||
dev/tws/tws_services.c optional tws
|
||||
dev/tws/tws_user.c optional tws
|
||||
dev/tx/if_tx.c optional tx
|
||||
dev/txp/if_txp.c optional txp
|
||||
dev/uart/uart_bus_acpi.c optional uart acpi
|
||||
dev/uart/uart_bus_ebus.c optional uart ebus
|
||||
|
1858
sys/dev/tx/if_tx.c
1858
sys/dev/tx/if_tx.c
File diff suppressed because it is too large
Load Diff
@ -1,250 +0,0 @@
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 1997 Semen Ustimenko
|
||||
* 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.
|
||||
* 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.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 THE AUTHOR OR CONTRIBUTORS 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$
|
||||
*/
|
||||
|
||||
#define EPIC_MAX_MTU 1600 /* This is experiment-derived value */
|
||||
|
||||
/* PCI aux configuration registers */
|
||||
#define PCIR_BASEIO PCIR_BAR(0) /* Base IO Address */
|
||||
#define PCIR_BASEMEM PCIR_BAR(1) /* Base Memory Address */
|
||||
|
||||
/* PCI identification */
|
||||
#define SMC_VENDORID 0x10B8
|
||||
#define SMC_DEVICEID_83C170 0x0005
|
||||
|
||||
/* EPIC's registers */
|
||||
#define COMMAND 0x0000
|
||||
#define INTSTAT 0x0004 /* Interrupt status. See below */
|
||||
#define INTMASK 0x0008 /* Interrupt mask. See below */
|
||||
#define GENCTL 0x000C
|
||||
#define NVCTL 0x0010
|
||||
#define EECTL 0x0014 /* EEPROM control **/
|
||||
#define TEST1 0x001C /* XXXXX */
|
||||
#define CRCCNT 0x0020 /* CRC error counter */
|
||||
#define ALICNT 0x0024 /* FrameTooLang error counter */
|
||||
#define MPCNT 0x0028 /* MissedFrames error counters */
|
||||
#define MIICTL 0x0030
|
||||
#define MIIDATA 0x0034
|
||||
#define MIICFG 0x0038
|
||||
#define IPG 0x003C
|
||||
#define LAN0 0x0040 /* MAC address */
|
||||
#define LAN1 0x0044 /* MAC address */
|
||||
#define LAN2 0x0048 /* MAC address */
|
||||
#define ID_CHK 0x004C
|
||||
#define MC0 0x0050 /* Multicast filter table */
|
||||
#define MC1 0x0054 /* Multicast filter table */
|
||||
#define MC2 0x0058 /* Multicast filter table */
|
||||
#define MC3 0x005C /* Multicast filter table */
|
||||
#define RXCON 0x0060 /* Rx control register */
|
||||
#define TXCON 0x0070 /* Tx control register */
|
||||
#define TXSTAT 0x0074
|
||||
#define PRCDAR 0x0084 /* RxRing bus address */
|
||||
#define PRSTAT 0x00A4
|
||||
#define PRCPTHR 0x00B0
|
||||
#define PTCDAR 0x00C4 /* TxRing bus address */
|
||||
#define ETXTHR 0x00DC
|
||||
|
||||
#define COMMAND_STOP_RX 0x01
|
||||
#define COMMAND_START_RX 0x02
|
||||
#define COMMAND_TXQUEUED 0x04
|
||||
#define COMMAND_RXQUEUED 0x08
|
||||
#define COMMAND_NEXTFRAME 0x10
|
||||
#define COMMAND_STOP_TDMA 0x20
|
||||
#define COMMAND_STOP_RDMA 0x40
|
||||
#define COMMAND_TXUGO 0x80
|
||||
|
||||
/* Interrupt register bits */
|
||||
#define INTSTAT_RCC 0x00000001
|
||||
#define INTSTAT_HCC 0x00000002
|
||||
#define INTSTAT_RQE 0x00000004
|
||||
#define INTSTAT_OVW 0x00000008
|
||||
#define INTSTAT_RXE 0x00000010
|
||||
#define INTSTAT_TXC 0x00000020
|
||||
#define INTSTAT_TCC 0x00000040
|
||||
#define INTSTAT_TQE 0x00000080
|
||||
#define INTSTAT_TXU 0x00000100
|
||||
#define INTSTAT_CNT 0x00000200
|
||||
#define INTSTAT_PREI 0x00000400
|
||||
#define INTSTAT_RCT 0x00000800
|
||||
#define INTSTAT_FATAL 0x00001000 /* One of DPE,APE,PMA,PTA happened */
|
||||
#define INTSTAT_UNUSED1 0x00002000
|
||||
#define INTSTAT_UNUSED2 0x00004000
|
||||
#define INTSTAT_GP2 0x00008000 /* PHY Event */
|
||||
#define INTSTAT_INT_ACTV 0x00010000
|
||||
#define INTSTAT_RXIDLE 0x00020000
|
||||
#define INTSTAT_TXIDLE 0x00040000
|
||||
#define INTSTAT_RCIP 0x00080000
|
||||
#define INTSTAT_TCIP 0x00100000
|
||||
#define INTSTAT_RBE 0x00200000
|
||||
#define INTSTAT_RCTS 0x00400000
|
||||
#define INTSTAT_RSV 0x00800000
|
||||
#define INTSTAT_DPE 0x01000000 /* PCI Fatal error */
|
||||
#define INTSTAT_APE 0x02000000 /* PCI Fatal error */
|
||||
#define INTSTAT_PMA 0x04000000 /* PCI Fatal error */
|
||||
#define INTSTAT_PTA 0x08000000 /* PCI Fatal error */
|
||||
|
||||
#define GENCTL_SOFT_RESET 0x00000001
|
||||
#define GENCTL_ENABLE_INTERRUPT 0x00000002
|
||||
#define GENCTL_SOFTWARE_INTERRUPT 0x00000004
|
||||
#define GENCTL_POWER_DOWN 0x00000008
|
||||
#define GENCTL_ONECOPY 0x00000010
|
||||
#define GENCTL_BIG_ENDIAN 0x00000020
|
||||
#define GENCTL_RECEIVE_DMA_PRIORITY 0x00000040
|
||||
#define GENCTL_TRANSMIT_DMA_PRIORITY 0x00000080
|
||||
#define GENCTL_RECEIVE_FIFO_THRESHOLD128 0x00000300
|
||||
#define GENCTL_RECEIVE_FIFO_THRESHOLD96 0x00000200
|
||||
#define GENCTL_RECEIVE_FIFO_THRESHOLD64 0x00000100
|
||||
#define GENCTL_RECEIVE_FIFO_THRESHOLD32 0x00000000
|
||||
#define GENCTL_MEMORY_READ_LINE 0x00000400
|
||||
#define GENCTL_MEMORY_READ_MULTIPLE 0x00000800
|
||||
#define GENCTL_SOFTWARE1 0x00001000
|
||||
#define GENCTL_SOFTWARE2 0x00002000
|
||||
#define GENCTL_RESET_PHY 0x00004000
|
||||
|
||||
#define NVCTL_ENABLE_MEMORY_MAP 0x00000001
|
||||
#define NVCTL_CLOCK_RUN_SUPPORTED 0x00000002
|
||||
#define NVCTL_GP1_OUTPUT_ENABLE 0x00000004
|
||||
#define NVCTL_GP2_OUTPUT_ENABLE 0x00000008
|
||||
#define NVCTL_GP1 0x00000010
|
||||
#define NVCTL_GP2 0x00000020
|
||||
#define NVCTL_CARDBUS_MODE 0x00000040
|
||||
#define NVCTL_IPG_DELAY_MASK(x) ((x&0xF)<<7)
|
||||
|
||||
#define RXCON_SAVE_ERRORED_PACKETS 0x00000001
|
||||
#define RXCON_RECEIVE_RUNT_FRAMES 0x00000002
|
||||
#define RXCON_RECEIVE_BROADCAST_FRAMES 0x00000004
|
||||
#define RXCON_RECEIVE_MULTICAST_FRAMES 0x00000008
|
||||
#define RXCON_RECEIVE_INVERSE_INDIVIDUAL_ADDRESS_FRAMES 0x00000010
|
||||
#define RXCON_PROMISCUOUS_MODE 0x00000020
|
||||
#define RXCON_MONITOR_MODE 0x00000040
|
||||
#define RXCON_EARLY_RECEIVE_ENABLE 0x00000080
|
||||
#define RXCON_EXTERNAL_BUFFER_DISABLE 0x00000000
|
||||
#define RXCON_EXTERNAL_BUFFER_16K 0x00000100
|
||||
#define RXCON_EXTERNAL_BUFFER_32K 0x00000200
|
||||
#define RXCON_EXTERNAL_BUFFER_128K 0x00000300
|
||||
|
||||
#define TXCON_EARLY_TRANSMIT_ENABLE 0x00000001
|
||||
#define TXCON_LOOPBACK_DISABLE 0x00000000
|
||||
#define TXCON_LOOPBACK_MODE_INT 0x00000002
|
||||
#define TXCON_LOOPBACK_MODE_PHY 0x00000004
|
||||
#define TXCON_LOOPBACK_MODE 0x00000006
|
||||
#define TXCON_FULL_DUPLEX 0x00000006
|
||||
#define TXCON_SLOT_TIME 0x00000078
|
||||
|
||||
#define MIICFG_SERIAL_ENABLE 0x00000001
|
||||
#define MIICFG_694_ENABLE 0x00000002
|
||||
#define MIICFG_694_STATUS 0x00000004
|
||||
#define MIICFG_PHY_PRESENT 0x00000008
|
||||
#define MIICFG_SMI_ENABLE 0x00000010
|
||||
|
||||
#define TEST1_CLOCK_TEST 0x00000008
|
||||
|
||||
/*
|
||||
* Some default values
|
||||
*/
|
||||
#define TXCON_DEFAULT (TXCON_SLOT_TIME | TXCON_EARLY_TRANSMIT_ENABLE)
|
||||
#define TRANSMIT_THRESHOLD 0x300
|
||||
#define TRANSMIT_THRESHOLD_MAX 0x600
|
||||
|
||||
#define RXCON_DEFAULT (RXCON_RECEIVE_MULTICAST_FRAMES | \
|
||||
RXCON_RECEIVE_BROADCAST_FRAMES)
|
||||
|
||||
#define RXCON_EARLY_RX (RXCON_EARLY_RECEIVE_ENABLE | \
|
||||
RXCON_SAVE_ERRORED_PACKETS)
|
||||
/*
|
||||
* EEPROM structure
|
||||
* SMC9432* eeprom is organized by words and only first 8 words
|
||||
* have distinctive meaning (according to datasheet)
|
||||
*/
|
||||
#define EEPROM_MAC0 0x0000 /* Byte 0 / Byte 1 */
|
||||
#define EEPROM_MAC1 0x0001 /* Byte 2 / Byte 3 */
|
||||
#define EEPROM_MAC2 0x0002 /* Byte 4 / Byte 5 */
|
||||
#define EEPROM_BID_CSUM 0x0003 /* Board Id / Check Sum */
|
||||
#define EEPROM_NVCTL 0x0004 /* NVCTL (bits 0-5) / nothing */
|
||||
#define EEPROM_PCI_MGD_MLD 0x0005 /* PCI MinGrant / MaxLatency. Desired */
|
||||
#define EEPROM_SSVENDID 0x0006 /* Subsystem Vendor Id */
|
||||
#define EEPROM_SSID 0x0006 /* Subsystem Id */
|
||||
|
||||
/*
|
||||
* Hardware structures.
|
||||
*/
|
||||
|
||||
/*
|
||||
* EPIC's hardware descriptors, must be aligned on dword in memory.
|
||||
* NB: to make driver happy, this two structures MUST have their sizes
|
||||
* be divisor of PAGE_SIZE.
|
||||
*/
|
||||
struct epic_tx_desc {
|
||||
volatile u_int16_t status;
|
||||
volatile u_int16_t txlength;
|
||||
volatile u_int32_t bufaddr;
|
||||
volatile u_int16_t buflength;
|
||||
volatile u_int16_t control;
|
||||
volatile u_int32_t next;
|
||||
};
|
||||
struct epic_rx_desc {
|
||||
volatile u_int16_t status;
|
||||
volatile u_int16_t rxlength;
|
||||
volatile u_int32_t bufaddr;
|
||||
volatile u_int32_t buflength;
|
||||
volatile u_int32_t next;
|
||||
};
|
||||
|
||||
/*
|
||||
* This structure defines EPIC's fragment list, maximum number of frags
|
||||
* is 63. Let's use the maximum, because size of struct MUST be divisor
|
||||
* of PAGE_SIZE, and sometimes come mbufs with more then 30 frags.
|
||||
*/
|
||||
#define EPIC_MAX_FRAGS 63
|
||||
struct epic_frag_list {
|
||||
volatile u_int32_t numfrags;
|
||||
struct {
|
||||
volatile u_int32_t fragaddr;
|
||||
volatile u_int32_t fraglen;
|
||||
} frag[EPIC_MAX_FRAGS];
|
||||
volatile u_int32_t pad; /* align on 256 bytes */
|
||||
};
|
||||
|
||||
/*
|
||||
* NB: ALIGN OF ABOVE STRUCTURES
|
||||
* epic_rx_desc, epic_tx_desc, epic_frag_list - must be aligned on dword
|
||||
*/
|
||||
|
||||
#define SMC9432DMT 0xA010
|
||||
#define SMC9432TX 0xA011
|
||||
#define SMC9032TXM 0xA012
|
||||
#define SMC9032TX 0xA013
|
||||
#define SMC9432TXPWR 0xA014
|
||||
#define SMC9432BTX 0xA015
|
||||
#define SMC9432FTX 0xA016
|
||||
#define SMC9432FTX_SC 0xA017
|
||||
#define SMC9432TX_XG_ADHOC 0xA020
|
||||
#define SMC9434TX_XG_ADHOC 0xA021
|
||||
#define SMC9432FTX_ADHOC 0xA022
|
||||
#define SMC9432BTX1 0xA024
|
@ -1,148 +0,0 @@
|
||||
/*-
|
||||
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
|
||||
*
|
||||
* Copyright (c) 1997 Semen Ustimenko
|
||||
* 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.
|
||||
* 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.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 THE AUTHOR OR CONTRIBUTORS 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$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Configuration
|
||||
*/
|
||||
/*#define EPIC_DIAG 1*/
|
||||
/*#define EPIC_USEIOSPACE 1*/
|
||||
/*#define EPIC_EARLY_RX 1*/
|
||||
|
||||
#ifndef ETHER_MAX_LEN
|
||||
#define ETHER_MAX_LEN 1518
|
||||
#endif
|
||||
#ifndef ETHER_MIN_LEN
|
||||
#define ETHER_MIN_LEN 64
|
||||
#endif
|
||||
#ifndef ETHER_CRC_LEN
|
||||
#define ETHER_CRC_LEN 4
|
||||
#endif
|
||||
#define TX_RING_SIZE 16 /* Leave this a power of 2 */
|
||||
#define RX_RING_SIZE 16 /* And this too, to do not */
|
||||
/* confuse RX(TX)_RING_MASK */
|
||||
#define TX_RING_MASK (TX_RING_SIZE - 1)
|
||||
#define RX_RING_MASK (RX_RING_SIZE - 1)
|
||||
#define ETHER_MAX_FRAME_LEN (ETHER_MAX_LEN + ETHER_CRC_LEN)
|
||||
#define ETHER_ALIGN 2
|
||||
|
||||
/* This is driver's structure to define EPIC descriptors */
|
||||
struct epic_rx_buffer {
|
||||
struct mbuf *mbuf; /* mbuf receiving packet */
|
||||
bus_dmamap_t map; /* DMA map */
|
||||
};
|
||||
|
||||
struct epic_tx_buffer {
|
||||
struct mbuf *mbuf; /* mbuf contained packet */
|
||||
bus_dmamap_t map; /* DMA map */
|
||||
};
|
||||
|
||||
/* PHY, known by tx driver */
|
||||
#define EPIC_UNKN_PHY 0x0000
|
||||
#define EPIC_QS6612_PHY 0x0001
|
||||
#define EPIC_AC101_PHY 0x0002
|
||||
#define EPIC_LXT970_PHY 0x0003
|
||||
#define EPIC_SERIAL 0x0004
|
||||
|
||||
/* Driver status structure */
|
||||
typedef struct {
|
||||
struct ifnet *ifp;
|
||||
struct resource *res;
|
||||
struct resource *irq;
|
||||
|
||||
device_t miibus;
|
||||
device_t dev;
|
||||
struct callout timer;
|
||||
struct mtx lock;
|
||||
int tx_timeout;
|
||||
|
||||
void *sc_ih;
|
||||
bus_dma_tag_t mtag;
|
||||
bus_dma_tag_t rtag;
|
||||
bus_dmamap_t rmap;
|
||||
bus_dma_tag_t ttag;
|
||||
bus_dmamap_t tmap;
|
||||
bus_dma_tag_t ftag;
|
||||
bus_dmamap_t fmap;
|
||||
bus_dmamap_t sparemap;
|
||||
|
||||
struct epic_rx_buffer rx_buffer[RX_RING_SIZE];
|
||||
struct epic_tx_buffer tx_buffer[TX_RING_SIZE];
|
||||
|
||||
/* Each element of array MUST be aligned on dword */
|
||||
/* and bounded on PAGE_SIZE */
|
||||
struct epic_rx_desc *rx_desc;
|
||||
struct epic_tx_desc *tx_desc;
|
||||
struct epic_frag_list *tx_flist;
|
||||
u_int32_t rx_addr;
|
||||
u_int32_t tx_addr;
|
||||
u_int32_t frag_addr;
|
||||
u_int32_t flags;
|
||||
u_int32_t tx_threshold;
|
||||
u_int32_t txcon;
|
||||
u_int32_t miicfg;
|
||||
u_int32_t cur_tx;
|
||||
u_int32_t cur_rx;
|
||||
u_int32_t dirty_tx;
|
||||
u_int32_t pending_txs;
|
||||
u_int16_t cardvend;
|
||||
u_int16_t cardid;
|
||||
struct mii_softc *physc;
|
||||
u_int32_t phyid;
|
||||
int serinst;
|
||||
void *pool;
|
||||
} epic_softc_t;
|
||||
|
||||
#define EPIC_LOCK(sc) mtx_lock(&(sc)->lock)
|
||||
#define EPIC_UNLOCK(sc) mtx_unlock(&(sc)->lock)
|
||||
#define EPIC_ASSERT_LOCKED(sc) mtx_assert(&(sc)->lock, MA_OWNED)
|
||||
|
||||
struct epic_type {
|
||||
u_int16_t ven_id;
|
||||
u_int16_t dev_id;
|
||||
char *name;
|
||||
};
|
||||
|
||||
#define CSR_WRITE_4(sc, reg, val) \
|
||||
bus_write_4((sc)->res, (reg), (val))
|
||||
#define CSR_WRITE_2(sc, reg, val) \
|
||||
bus_write_2((sc)->res, (reg), (val))
|
||||
#define CSR_WRITE_1(sc, reg, val) \
|
||||
bus_write_1((sc)->res, (reg), (val))
|
||||
#define CSR_READ_4(sc, reg) \
|
||||
bus_read_4((sc)->res, (reg))
|
||||
#define CSR_READ_2(sc, reg) \
|
||||
bus_read_2((sc)->res, (reg))
|
||||
#define CSR_READ_1(sc, reg) \
|
||||
bus_read_1((sc)->res, (reg))
|
||||
|
||||
#define PHY_READ_2(sc, phy, reg) \
|
||||
epic_read_phy_reg((sc), (phy), (reg))
|
||||
#define PHY_WRITE_2(sc, phy, reg, val) \
|
||||
epic_write_phy_reg((sc), (phy), (reg), (val))
|
@ -260,7 +260,6 @@ device sis # Silicon Integrated Systems SiS 900/SiS 7016
|
||||
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
|
||||
device ste # Sundance ST201 (D-Link DFE-550TX)
|
||||
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
|
||||
device tx # SMC EtherPower II (83c170 ``EPIC'')
|
||||
device vge # VIA VT612x gigabit Ethernet
|
||||
device vr # VIA Rhine, Rhine II
|
||||
device vte # DM&P Vortex86 RDC R6040 Fast Ethernet
|
||||
|
@ -355,7 +355,6 @@ SUBDIR= \
|
||||
${_twa} \
|
||||
twe \
|
||||
tws \
|
||||
tx \
|
||||
${_txp} \
|
||||
uart \
|
||||
ubsec \
|
||||
|
@ -1,9 +0,0 @@
|
||||
# $FreeBSD$
|
||||
|
||||
.PATH: ${SRCTOP}/sys/dev/tx
|
||||
|
||||
KMOD= if_tx
|
||||
SRCS= if_tx.c device_if.h bus_if.h pci_if.h
|
||||
SRCS+= miibus_if.h miidevs.h
|
||||
|
||||
.include <bsd.kmod.mk>
|
@ -207,7 +207,6 @@ device sis # Silicon Integrated Systems SiS 900/SiS 7016
|
||||
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
|
||||
device ste # Sundance ST201 (D-Link DFE-550TX)
|
||||
device stge # Sundance/Tamarack TC9021 gigabit Ethernet
|
||||
#device tx # SMC EtherPower II (83c170 ``EPIC'')
|
||||
device vr # VIA Rhine, Rhine II
|
||||
#device wb # Winbond W89C840F
|
||||
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
|
||||
|
Loading…
Reference in New Issue
Block a user