]> git.baikalelectronics.ru Git - kernel.git/commit
FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 9 Oct 2018 22:57:43 +0000 (23:57 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 16 Oct 2018 04:46:06 +0000 (21:46 -0700)
commit8cca97e1dd9a815b33c9f7223ea408cdc658598c
tree63fbcf2a6cbe3d285fca8b2e4aa41ef18220cd50
parent10aeb285a12b48233a35223c01fa0f1312962fcf
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>
Documentation/networking/00-INDEX
Documentation/networking/defza.txt [new file with mode: 0644]
MAINTAINERS
drivers/net/fddi/Kconfig
drivers/net/fddi/Makefile
drivers/net/fddi/defza.c [new file with mode: 0644]
drivers/net/fddi/defza.h [new file with mode: 0644]
include/uapi/linux/if_fddi.h