home | help
HATM(4) 		     Kernel Interfaces Manual			 HATM(4)

NAME
     hatm -- device driver for Fore/Marconi HE155 and HE622 ATM interfaces

SYNOPSIS
     device hatm
     device utopia
     device atm

     options NATM

DESCRIPTION
     The  hatm device driver supports the FORE (now Marconi) HE155 and HE622 ATM
     interface cards.  The driver interfaces with the  natm(4)	framework,  net-
     graph(4)  and  the  HARP  ATM  stack.  It provides only PVC services.  Sig-
     nalling, ATMARP, ILMI and other higher layer protocols are implemented  us-
     ing netgraph(4) or HARP.

     For configuring the card for IP see natmip(4).

     The  following  sysctls  are recognized by the driver additionally to those
     handled by utopia(4):

     hw.atm.hatm.natm_traffic
	     This is the traffic type to be used for NATM pvc connections.   The
	     type of this variable is integer and it must have one of the values
	     0 (UBR) or 1 (CBR).

     hw.atm.hatm.natm_pcr
	     This is the peak cell rate to be used for NATM CBR connections.

     hw.atm.hatmN.stats
	     Contains an array of uint32_t with device specific statistics.

     hw.atm.hatmN.istats
	     Contains an array of uint32_t with internal driver statistics.

     hw.atm.hatmN.debug
	     (Only  if	debugging enabled.)  These are the debugging flags.  See
	     src/sys/dev/hatm/if_hatmvar.h for the possible flags.

     hw.atm.hatmN.tsr
	     (Only if debugging enabled.)   This  is  an  array  containing  all
	     transmission  status registers.  For each of the 4096 possible VCCs
	     there are 15 32-bit registers.

     hw.atm.hatmN.tpd
	     (Only if debugging enabled.)  This is an array  containing  all  on
	     card current transmission packet descriptors.  For each of the 4096
	     possible VCCs there are 16 32-bit registers.

     hw.atm.hatmN.mbox
	     (Only  if debugging enabled.)  This is an array containing the mbox
	     registers.

     hw.atm.hatmN.cm
	     (Only if debugging enabled.)  This is an array containing all  con-
	     nection  memory  registers.  The first 32-bit integer of this array
	     is the ABR base address.

     hw.atm.hatmN.heregs
	     (Only if debugging enabled.)  This is an array containing all  card
	     registers including SUNI and the FLASH ROM.

     hw.atm.hatmN.lbmem
	     (Only  if	debugging  enabled.)   Returns the contents of the local
	     memory.

     The driver supports the media options sdh,  noscramb  and	unassigned  (see
     utopia(4)).

ENVIRONMENT
     When  attaching  to  a device the driver checks the kernel environment (see
     kenv(1)) to see if the default queues sizes should be overwritten	or  not.
     The  following  variables	are  checked and interpreted as unsigned integer
     values (in either radix):

     hw.hatmN.rbps0_size
	     Size of the small receive buffer pool 0.  This pool is used for all
	     except raw AAL connections.  The pool size must be a power  of  two
	     between  4 and 8192 inclusive.  When attaching the driver allocates
	     this number of mbufs.

     hw.hatmN.rbps0_thresh
	     Interrupt threshold for small receive buffer pool 0.  When the num-
	     ber of free buffers in the pool falls below this threshold it  gen-
	     erates an interrupt so that the driver can refill the pool.

     hw.hatmN.rbpl0_thresh
	     Size of the large receive buffer pool 0.  This pool is used for all
	     except  raw  AAL connections.  The pool size must be a power of two
	     between 4 and 8192 inclusive.  When attaching the driver  allocates
	     this number of mbufs with clusters.

     hw.hatmN.rbpl0_thresh
	     Interrupt threshold for large receive buffer pool 0.  When the num-
	     ber  of free buffers in the pool falls below this threshold it gen-
	     erates an interrupt so that the driver can refill the pool.

     hw.hatmN.rbrq0_size
	     Size of receive buffer return queue 0.  This queue is used  to  re-
	     turn  buffers  filled with received frames to the driver.	The size
	     must be a power of 2 between 1 and 16384 inclusive.

     hw.hatmN.rbrq0_thresh
	     Interrupt threshold  for  receive	buffer	return	queue  0.   This
	     threshold should only be triggered in exceptional cases.

     hw.hatmN.rbrq0_tout
	     Interrupt	timeout for receive buffer return queue 0.  An interrupt
	     is generated after this time if the queue is not empty.  The number
	     is in internal card ticks.

     hw.hatmN.rbrq0_pcnt
	     Packet count threshold for receive buffer return queue 0.	 An  in-
	     terrupt is generated if this number of packets is in the queue.

     hw.hatmN.rbps1_size
	     Size of the small receive buffer pool 1.  This pool is used for all
	     raw  AAL connections.  The pool size must be a power of two between
	     4 and 8192 inclusive.  When attaching  the  driver  allocates  this
	     number of mbufs.

     hw.hatmN.rbps1_thresh
	     Interrupt threshold for small receive buffer pool 1.  When the num-
	     ber  of free buffers in the pool falls below this threshold it gen-
	     erates an interrupt so that the driver can refill the pool.

     hw.hatmN.rbrq1_size
	     Size of receive buffer return queue 1.  This queue is used  to  re-
	     turn  buffers  filled  with received cells to the driver.	The size
	     must be a power of 2 between 1 and 16384 inclusive.

     hw.hatmN.rbrq1_thresh
	     Interrupt threshold  for  receive	buffer	return	queue  1.   This
	     threshold should only be triggered in exceptional cases.

     hw.hatmN.rbrq1_tout
	     Interrupt	timeout for receive buffer return queue 1.  An interrupt
	     is generated after this time if the queue is not empty.  The number
	     is in internal card ticks.

     hw.hatmN.rbrq1_pcnt
	     Packet count threshold for receive buffer return queue 0.	 An  in-
	     terrupt is generated if this number of cells is in the queue.

     hw.hatmN.irq0_size
	     Size  of  interrupt  queue  0.  This must be a number between 1 and
	     1023 inclusive.

     hw.hatmN.irq0_thresh
	     Interrupt retrigger threshold of interrupt queue 0.  A  new  inter-
	     rupt  is trigger if the queue fill state reaches this threshold and
	     the interrupt was no served.

     hw.hatmN.tbrq0_size
	     Transmit buffer return queue 0 size.  This queue is  used	to  feed
	     back  empty  buffers  of transmitted frames back to the driver.  It
	     must be a power of 2 between 1 and 4096 inclusive.

     hw.hatmN.tbrq0_thresh
	     Transmit buffer return queue 0 threshold.	An interrupt  is  gener-
	     ated if the queue fill state reaches this point.

     hw.hatmN.tpdrq_size
	     Transmit  descriptor  ready  queue size.  This queue is used by the
	     driver to feed transmit descriptors into the card.  The  size  must
	     be a power of 2 between 1 and 16384 inclusive.

     hw.hatmN.tpdmax
	     Maximum  number  of  active TPDs per connection.  This controls the
	     maximum number of outstanding packet chunks per connection and thus
	     the maximum delay packets can  have  because  of  queueing  on  the
	     adapter.  If set to 0, a connection can eat up all available TPDs.

     hw.hatmN.mbuf_max_pages
	     Maximum  number  of memory pages allocated to small external mbufs.
	     This must not be zero and not larger than 65536.

DIAGNOSTICS
     hatm0: <FORE HE> mem 0xd2600000-0xd26fffff irq 9 at device 15.0 on pci2
     hatm0: ForeRunnerHE 622, Rev. D, S/N 2949834, MAC=00:20:48:2d:02:ca

SEE ALSO
     natm(4), natmip(4), utopia(4), ifconfig(8), route(8)

AUTHORS
     Harti Brandt <harti@FreeBSD.org>

CAVEATS
     When putting a HE155 into a 64-bit 66MHz PCI slot	the  machine  may  hang.
     This  occurs  very early in the POST so that even the display does not turn
     on.  The HE155 runs only in 33MHz slots (either 32 or 64-bit).  HE622 cards
     work just fine in 64-bit slots.

     The driver may not work with bounce buffer, because  of  bus_dmamap_sync(9)
     missing the offset and len arguments the NetBSD function has.

FreeBSD 9.1			  May 15, 2003				 HATM(4)

home | help