You've already forked linux-rockchip
mirror of
https://github.com/armbian/linux-rockchip.git
synced 2026-01-06 11:08:10 -08:00
FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter
Add support for the DEC FDDIcontroller 700 (DEFZA), Digital Equipment Corporation's first-generation FDDI network interface adapter, made for TURBOchannel and based on a discrete version of what eventually became Motorola's widely used CAMEL chipset. The CAMEL chipset is present for example in the DEC FDDIcontroller TURBOchannel, EISA and PCI adapters (DEFTA/DEFEA/DEFPA) that we support with the `defxx' driver, however the host bus interface logic and the firmware API are different in the DEFZA and hence a separate driver is required. There isn't much to say about the driver except that it works, but there is one peculiarity to mention. The adapter implements two Tx/Rx queue pairs. Of these one pair is the usual network Tx/Rx queue pair, in this case used by the adapter to exchange frames with the ring, via the RMC (Ring Memory Controller) chip. The Tx queue is handled directly by the RMC chip and resides in onboard packet memory. The Rx queue is maintained via DMA in host memory by adapter's firmware copying received data stored by the RMC in onboard packet memory. The other pair is used to communicate SMT frames with adapter's firmware. Any SMT frame received from the RMC via the Rx queue must be queued back by the driver to the SMT Rx queue for the firmware to process. Similarly the firmware uses the SMT Tx queue to supply the driver with SMT frames that must be queued back to the Tx queue for the RMC to send to the ring. This solution was chosen because the designers ran out of PCB space and could not squeeze in more logic onto the board that would be required to handle this SMT frame traffic without the need to involve the driver, as with the later DEFTA/DEFEA/DEFPA adapters. Finally the driver does some Frame Control byte decoding, so to avoid magic numbers some macros are added to <linux/if_fddi.h>. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
df52eab23d
commit
61414f5ec9
@@ -56,6 +56,8 @@ de4x5.txt
|
||||
- the Digital EtherWORKS DE4?? and DE5?? PCI Ethernet driver
|
||||
decnet.txt
|
||||
- info on using the DECnet networking layer in Linux.
|
||||
defza.txt
|
||||
- the DEC FDDIcontroller 700 (DEFZA-xx) TURBOchannel FDDI driver
|
||||
dl2k.txt
|
||||
- README for D-Link DL2000-based Gigabit Ethernet Adapters (dl2k.ko).
|
||||
dm9000.txt
|
||||
|
||||
57
Documentation/networking/defza.txt
Normal file
57
Documentation/networking/defza.txt
Normal file
@@ -0,0 +1,57 @@
|
||||
Notes on the DEC FDDIcontroller 700 (DEFZA-xx) driver v.1.1.4.
|
||||
|
||||
|
||||
DEC FDDIcontroller 700 is DEC's first-generation TURBOchannel FDDI
|
||||
network card, designed in 1990 specifically for the DECstation 5000
|
||||
model 200 workstation. The board is a single attachment station and
|
||||
it was manufactured in two variations, both of which are supported.
|
||||
|
||||
First is the SAS MMF DEFZA-AA option, the original design implementing
|
||||
the standard MMF-PMD, however with a pair of ST connectors rather than
|
||||
the usual MIC connector. The other one is the SAS ThinWire/STP DEFZA-CA
|
||||
option, denoted 700-C, with the network medium selectable by a switch
|
||||
between the DEC proprietary ThinWire-PMD using a BNC connector and the
|
||||
standard STP-PMD using a DE-9F connector. This option can interface to
|
||||
a DECconcentrator 500 device and, in the case of the STP-PMD, also other
|
||||
FDDI equipment and was designed to make it easier to transition from
|
||||
existing IEEE 802.3 10BASE2 Ethernet and IEEE 802.5 Token Ring networks
|
||||
by providing means to reuse existing cabling.
|
||||
|
||||
This driver handles any number of cards installed in a single system.
|
||||
They get fddi0, fddi1, etc. interface names assigned in the order of
|
||||
increasing TURBOchannel slot numbers.
|
||||
|
||||
The board only supports DMA on the receive side. Transmission involves
|
||||
the use of PIO. As a result under a heavy transmission load there will
|
||||
be a significant impact on system performance.
|
||||
|
||||
The board supports a 64-entry CAM for matching destination addresses.
|
||||
Two entries are preoccupied by the Directed Beacon and Ring Purger
|
||||
multicast addresses and the rest is used as a multicast filter. An
|
||||
all-multi mode is also supported for LLC frames and it is used if
|
||||
requested explicitly or if the CAM overflows. The promiscuous mode
|
||||
supports separate enables for LLC and SMT frames, but this driver
|
||||
doesn't support changing them individually.
|
||||
|
||||
|
||||
Known problems:
|
||||
|
||||
None.
|
||||
|
||||
|
||||
To do:
|
||||
|
||||
5. MAC address change. The card does not support changing the Media
|
||||
Access Controller's address registers but a similar effect can be
|
||||
achieved by adding an alias to the CAM. There is no way to disable
|
||||
matching against the original address though.
|
||||
|
||||
7. Queueing incoming/outgoing SMT frames in the driver if the SMT
|
||||
receive/RMC transmit ring is full. (?)
|
||||
|
||||
8. Retrieving/reporting FDDI/SNMP stats.
|
||||
|
||||
|
||||
Both success and failure reports are welcome.
|
||||
|
||||
Maciej W. Rozycki <macro@linux-mips.org>
|
||||
@@ -4170,6 +4170,11 @@ S: Maintained
|
||||
F: drivers/platform/x86/dell-smbios-wmi.c
|
||||
F: tools/wmi/dell-smbios-example.c
|
||||
|
||||
DEFZA FDDI NETWORK DRIVER
|
||||
M: "Maciej W. Rozycki" <macro@linux-mips.org>
|
||||
S: Maintained
|
||||
F: drivers/net/fddi/defza.*
|
||||
|
||||
DELL LAPTOP DRIVER
|
||||
M: Matthew Garrett <mjg59@srcf.ucam.org>
|
||||
M: Pali Rohár <pali.rohar@gmail.com>
|
||||
|
||||
@@ -15,6 +15,17 @@ config FDDI
|
||||
|
||||
if FDDI
|
||||
|
||||
config DEFZA
|
||||
tristate "DEC FDDIcontroller 700/700-C (DEFZA-xx) support"
|
||||
depends on FDDI && TC
|
||||
help
|
||||
This is support for the DEC FDDIcontroller 700 (DEFZA-AA, fiber)
|
||||
and 700-C (DEFZA-CA, copper) TURBOchannel network cards which
|
||||
can connect you to a local FDDI network.
|
||||
|
||||
To compile this driver as a module, choose M here: the module
|
||||
will be called defza. If unsure, say N.
|
||||
|
||||
config DEFXX
|
||||
tristate "Digital DEFTA/DEFEA/DEFPA adapter support"
|
||||
depends on FDDI && (PCI || EISA || TC)
|
||||
|
||||
@@ -3,4 +3,5 @@
|
||||
#
|
||||
|
||||
obj-$(CONFIG_DEFXX) += defxx.o
|
||||
obj-$(CONFIG_DEFZA) += defza.o
|
||||
obj-$(CONFIG_SKFP) += skfp/
|
||||
|
||||
1535
drivers/net/fddi/defza.c
Normal file
1535
drivers/net/fddi/defza.c
Normal file
File diff suppressed because it is too large
Load Diff
791
drivers/net/fddi/defza.h
Normal file
791
drivers/net/fddi/defza.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -6,9 +6,10 @@
|
||||
*
|
||||
* Global definitions for the ANSI FDDI interface.
|
||||
*
|
||||
* Version: @(#)if_fddi.h 1.0.2 Sep 29 2004
|
||||
* Version: @(#)if_fddi.h 1.0.3 Oct 6 2018
|
||||
*
|
||||
* Author: Lawrence V. Stefani, <stefani@lkg.dec.com>
|
||||
* Author: Lawrence V. Stefani, <stefani@yahoo.com>
|
||||
* Maintainer: Maciej W. Rozycki, <macro@linux-mips.org>
|
||||
*
|
||||
* if_fddi.h is based on previous if_ether.h and if_tr.h work by
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
@@ -45,7 +46,21 @@
|
||||
#define FDDI_K_OUI_LEN 3 /* Octets in OUI in 802.2 SNAP
|
||||
header */
|
||||
|
||||
/* Define FDDI Frame Control (FC) Byte values */
|
||||
/* Define FDDI Frame Control (FC) Byte masks */
|
||||
#define FDDI_FC_K_CLASS_MASK 0x80 /* class bit */
|
||||
#define FDDI_FC_K_CLASS_SYNC 0x80
|
||||
#define FDDI_FC_K_CLASS_ASYNC 0x00
|
||||
#define FDDI_FC_K_ALEN_MASK 0x40 /* address length bit */
|
||||
#define FDDI_FC_K_ALEN_48 0x40
|
||||
#define FDDI_FC_K_ALEN_16 0x00
|
||||
#define FDDI_FC_K_FORMAT_MASK 0x30 /* format bits */
|
||||
#define FDDI_FC_K_FORMAT_FUTURE 0x30
|
||||
#define FDDI_FC_K_FORMAT_IMPLEMENTOR 0x20
|
||||
#define FDDI_FC_K_FORMAT_LLC 0x10
|
||||
#define FDDI_FC_K_FORMAT_MANAGEMENT 0x00
|
||||
#define FDDI_FC_K_CONTROL_MASK 0x0f /* control bits */
|
||||
|
||||
/* Define FDDI Frame Control (FC) Byte specific values */
|
||||
#define FDDI_FC_K_VOID 0x00
|
||||
#define FDDI_FC_K_NON_RESTRICTED_TOKEN 0x80
|
||||
#define FDDI_FC_K_RESTRICTED_TOKEN 0xC0
|
||||
|
||||
Reference in New Issue
Block a user