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

FreeBSD Manual Pages

  
 
  

home | help
SMP_WRITE_GPIO(8)		   SMP_UTILS		     SMP_WRITE_GPIO(8)

NAME
       smp_write_gpio -	invoke WRITE GPIO REGISTER (ENHANCED) SMP function

SYNOPSIS
       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]

DESCRIPTION
       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 www.sffcommittee.com	)  to-
       gether  with  its corresponding READ GPIO REGISTER (ENHANCED) SMP func-
       tion.  The  other  SMP  functions  are  defined	in  SAS	 documents  at
       www.t10.org  .  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-
       sponse.

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

OPTIONS
       Mandatory arguments to long options are mandatory for short options  as
       well.

       -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
	      times.

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

ENHANCED FUNCTION
       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.

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

AUTHORS
       Written by Douglas Gilbert.

REPORTING BUGS
       Report bugs to <dgilbert	at interlog dot	com>.

COPYRIGHT
       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-
       POSE.

SEE ALSO
       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:
<https://man.freebsd.org/cgi/man.cgi?query=smp_write_gpio&sektion=8&manpath=FreeBSD+Ports+15.0>

home | help