• Maciej W. Rozycki's avatar
    FDDI: defza: Add support for DEC FDDIcontroller 700 TURBOchannel adapter · 61414f5e
    Maciej W. Rozycki authored
    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: default avatarMaciej W. Rozycki <macro@linux-mips.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    61414f5e
defza.c 40.6 KB