Man Linux: Main Page and Category List

NAME

     utopia - driver module for ATM PHY chips

SYNOPSIS

     To compile this driver into the kernel, place the following line in your
     kernel configuration file:

           device utopia

     Alternatively, to load the driver as a module at boot time, place the
     following line in loader.conf(5):

           utopia_load="YES"

DESCRIPTION

     This module is used by all ATM drivers for cards that use PMC-Sierra
     S/Uni and IDT77105/IDT77155 chips to provide uniform functionality.  The
     module implements status monitoring in either interrupt or polling mode,
     media option handling and application access to chip registers.

     The driver implements several sysctls that are accessible under the
     hw.atm.iface. tree, where iface is the name of the ATM interface:

     phy_regs
             When reading this sysctl an array of 8-bit unsigned integers is
             returned containing all accessible chip registers starting at
             register 0.  A register can be written by writing three 8-bit
             unsigned integers to the sysctl: the register number, the new
             value and a bit mask.  This changes all bits in the register for
             which the corresponding bit in the mask is one to the bit values
             from value.  Note that not all registers may be writeable.

     phy_loopback
             allows to put the interface in one of several loopback modes.
             Not all modes and all combinations of modes are supported on all
             chips.  The possible modes are:

             UTP_LOOP_NONE (0x00)
                     No loopback, normal operation.

             UTP_LOOP_TIME (0x01)
                     Timing source loopback.  When this is set the
                     transmitter’s clock is derived from the receiver’s clock.

             UTP_LOOP_DIAG (0x02)
                     Diagnostic loopback.  In this mode the receiver’s input
                     is connected to the transmitter’s output.  The receiver
                     gets back everything that is sent.  The transmitter
                     operates normally.

             UTP_LOOP_LINE (0x04)
                     Serial line loopback.  This connects the line receiver to
                     the line transmitter.  The chip transmits all cells back
                     that it receives.  The receiver operates normally.

             UTP_LOOP_PARAL (0x08)
                     Parallel diagnostic loopback.  This feeds back all
                     transmitted cells into the receiver between the
                     parallel/serial converters.  The transmitter operates
                     normally.

             UTP_LOOP_TWIST (0x10)
                     Twisted pair diagnostic loopback.  Connects the high
                     speed receive data to the high speed transmit data.  All
                     received data is sent back.  The receiver operates
                     normally.

             UTP_LOOP_PATH (0x20)
                     Diagnostic path loopback.  This connects the receiver
                     input to the transmitter output just between the path
                     overhead processor and the byte mux.  The transmitter
                     operates normally.

     phy_type
             This is the detected type of the phy chip.  Currently the
             following chips are supported:

             UTP_TYPE_UNKNOWN (0)
                     The module could not determine the type of the PHY chip.

             UTP_TYPE_SUNI_LITE (1)
                     PMC-5346 (S/Uni-Lite)

             UTP_TYPE_SUNI_ULTRA (2)
                     PMC-5350 (S/Uni-Ultra)

             UTP_TYPE_SUNI_622 (3)
                     PMC-5355 (S/Uni-622)

             UTP_TYPE_IDT77105 (4)
                     IDT77105 (25.6MBit UTP interface)

             UTP_TYPE_IDT77155 (5)
                     IDT77155 (155MBit interface)

     phy_name
             This is a string describing the type of the PHY chip.

     phy_stats
             Physical and some ATM layer statistics.  These are the statistics
             usually provided by the chip.  The data is a returned in the
             following structure:

             struct utopia_stats1 {
                     uint32_t version;       /* version of this struct */
                     uint32_t fill;
                     uint64_t rx_sbip;       /* rx section BIP errors */
                     uint64_t rx_lbip;       /* rx line BIP errors */
                     uint64_t rx_lfebe;      /* rx line far end block errors */
                     uint64_t rx_pbip;       /* rx path BIP errors */
                     uint64_t rx_pfebe;      /* rx path far end block errors */
                     uint64_t rx_cells;      /* received cells */
                     uint64_t rx_corr;       /* correctable cell errors */
                     uint64_t rx_uncorr;     /* uncorrectable cell errors */
                     uint64_t rx_symerr;     /* symbol errors */
                     uint64_t tx_cells;      /* transmitted cells */
             };

             The current version is 1.  The statistics are updated from the
             chip once a second.  On overflow the counters wrap to zero.  Note
             that not all counters are meaningful for all PHY chips.  The
             statistics are cleared by writing an arbitrary new value (the
             value is ignored).

     The utopia module also interfaces with the ifmedia system.  The module
     reports the current state of the carrier and will issue a warning message
     when the carrier state changes.  While the physical media itself cannot
     be changed, several media options can:

     SDH     If the PHY is a Sonet/SDH chip this flag switches the interface
             into SDH mode.  If this option is not set (the default) the
             interface is in Sonet mode.

     noscramb
             If the PHY is a Sonet/SDH chip disable scrambling.  This may be
             useful for debugging purposes.

     unassigned
             Normally the interface emits idle cells when there are no other
             cells to transmit.  This changes the default cell type to
             unassigned cells.  This may be needed for interworking with
             public networks.

SEE ALSO

     en(4), fatm(4), hatm(4), patm(4), utopia(9)

AUTHORS

     Harti Brandt 〈harti@FreeBSD.org