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

FreeBSD Manual Pages


home | help
UTOPIA(4)		 BSD Kernel Interfaces Manual		     UTOPIA(4)

     utopia -- driver module for ATM PHY chips

     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):


     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:

	     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 un-
	     signed 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 transmit-
		     ter'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 oper-
		     ates 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	trans-
		     mitted cells into the receiver between the	parallel/se-
		     rial 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	nor-

	     UTP_LOOP_PATH (0x20)
		     Diagnostic	path loopback.	This connects the receiver in-
		     put to the	transmitter output just	between	the path over-
		     head processor and	the byte mux.  The transmitter oper-
		     ates normally.

	     This is the detected type of the phy chip.	 Currently the follow-
	     ing chips are supported:

		     The module	could not determine the	type of	the PHY	chip.

		     PMC-5346 (S/Uni-Lite)

		     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 fol-
	     lowing 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 sta-
	     tistics 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 in-
	     terface 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 unas-
	     signed cells.  This may be	needed for interworking	with public

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

     Harti Brandt <>

BSD			       November	22, 2006			   BSD


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

home | help