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

FreeBSD Manual Pages


home | help

       smp_write_gpio -	invoke WRITE GPIO REGISTER (ENHANCED) SMP function

       smp_write_gpio  [--count=CO]  [--data=H,H...]  [--help]	[--hex]	[--in-
       dex=IN]	[--interface=PARAMS]   [--raw]	 [--sa=SAS_ADDR]   [--type=TY]
       [--verbose] [--version] SMP_DEVICE[,N]

       Sends  a	 SAS Serial Management Protocol	(SMP) WRITE GPIO REGISTER or a
       WRITE GPIO REGISTER ENHANCED function request to	an SMP target. The SMP
       target  is  identified by the SMP_DEVICE	and the	SAS_ADDR. Depending on
       the interface, the SAS_ADDR may be deduced from the SMP_DEVICE. The mpt
       interface  uses	SMP_DEVICE  to	identify  a HBA	(an SMP	initiator) and
       needs the additional ,N to differentiate	between	HBAs if	there are mul-
       tiple present.

       This  function  is defined in SFF-8485 (	see ) to-
       gether with its corresponding READ GPIO REGISTER	(ENHANCED)  SMP	 func-
       tion.   The  other  SMP	functions  are	defined	 in  SAS  documents at .  SFF-8485 defines a curious device	called a "virtual  SMP
       port"  that lives in a host bus adapter (HBA) and allows	SMP to manipu-
       late the	sideband signals in wide internal cables. To stop  other  ini-
       tiators	in a multi-initiator domain from accessing those sideband sig-
       nals, the virtual SMP (target) port is not indicated in a DISCOVER  re-

       For notes on the	SMP WRITE GPIO REGISTER	ENHANCED function see the sec-
       tion on the ENHANCED FUNCTION below.

       Mandatory arguments to long options are mandatory for short options  as

       -c, --count=CO
	      where  CO	 is the	register count.	This is	the number of (4 byte)
	      registers	to send. The default value is 1.

       -d, --data=H,H...
	      this option supplies a comma separated list of hexadecimal bytes
	      (0 to ff inclusive) that will be used as write data in the WRITE
	      GPIO REGISTER request. The number	of bytes  supplied  should  be
	      four  times  --count=C  The  first 4 bytes will become the first
	      register written.

       -d, --data=-
	      reads string of hexadecimal bytes	from stdin. Spaces,  tabs  and
	      line feeds additionally are permitted as separators.

       -E, --enhanced
	      sends  a WRITE GPIO REGISTER ENHANCED function request (default:
	      send a WRITE GPIO	REGISTER function request).

       -h, --help
	      output the usage message then exit.

       -H, --hex
	      output the response (less	the CRC	field) in hexadecimal.

       -i, --index=IN
	      where IN is the register index. This value is  origin  zero  and
	      its  default value is 0. The request will	send --count=CO	regis-
	      ters starting from --index=IN of the given --type=TY.

       -I, --interface=PARAMS
	      interface	specific parameters. In	this case  "interface"	refers
	      to  the  path through the	operating system to the	SMP initiator.
	      See the smp_utils	man page for more information.

       -r, --raw
	      send the response	(less the CRC field) to	stdout in binary.  All
	      error messages are sent to stderr.

       -s, --sa=SAS_ADDR
	      specifies	 the  SAS  address of the SMP target device. Typically
	      this is an expander. This	 option	 may  not  be  needed  if  the
	      SMP_DEVICE  has the target's SAS address within it. The SAS_ADDR
	      is in decimal but	most SAS addresses are shown  in  hexadecimal.
	      To  give	a  number in hexadecimal either	prefix it with '0x' or
	      put a trailing 'h' on it.

       -t, --type=TY
	      where  TY	 is  the  register  type.  The	default	 value	is   0
	      (GPIO_CFG).  The request will send --count=CO registers starting
	      from --index=IN of the given --type=TY.

       -v, --verbose
	      increase the verbosity of	 the  output.  Can  be	used  multiple

       -V, --version
	      print the	version	string and then	exit.

       In  the	technical review of SAS-2 prior	to standardization in this t10
       document: 08-212r8.pdf (page 871	or 552)	there is a  comment  that  the
       READ GPIO REGISTER and WRITE GPIO REGISTER function headers (i.e. first
       4 bytes)	do not comply with all the other SMP functions in SAS-2.

       There is	a suggestion that enhanced variants be introduced in the  next
       version of the SFF-8485 document. If that ever happened then it has not
       been made public. In SAS-2.1 both the  READ  and	 WRITE	GPIO  REGISTER
       functions  have been made obsolete and the corresponding	ENHANCED func-
       tion numbers are	"restricted" for SFF-8485.

       If the --enhanced option	is given then the ENHANCED function number  is
       sent;  the register type, index and count fields	(1  byte each) are in-
       creased by two byte positions leaving  enough  space  for  a  compliant
       SAS-2 SMP header	to be built.

       The  SMP	 WRITE	GPIO  REGISTER	function  is  defined in SFF-8485 (see ) together with its	corresponding READ GPIO	REGIS-
       TER SMP function.

       Written by Douglas Gilbert.

       Report bugs to <dgilbert	at interlog dot	com>.

       Copyright (C) 2006-2011 Douglas Gilbert
       This  software is distributed under a FreeBSD license. There is NO war-
       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR-

       smp_utils, smp_read_gpio(smp_utils)

smp_utils-0.97			  August 2011		     SMP_WRITE_GPIO(8)


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

home | help