Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
UTOPIA(4)              FreeBSD Kernel Interfaces Manual              UTOPIA(4)

     utopia - Driver module for ATM PHY chips

     device utopia

     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 accessible under the
     hw.atm.XXX tree, where XXX is the name of the ATM interface:

          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.

          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 connectes the receiver input to
               the transmitter output just between the path overhead processor
               and the byte mux. The transmitter operates normally.

          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)

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

          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.

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

          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.

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

     Harti Brandt <>.

FreeBSD                           May 8, 2003                          FreeBSD


Want to link to this manual page? Use this URL:

home | help