Provided by: freebsd-manpages_11.1-3_all bug

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>