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] [--index=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 multiple present.

     This  function is defined in SFF-8485 ( see www.sffcommittee.com ) together
     with its corresponding READ GPIO REGISTER	(ENHANCED)  SMP  function.   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 manipulate the sideband signals in wide
     internal cables. To stop other initiators in a multi-initiator domain  from
     accessing	those sideband signals, the virtual SMP (target) port is not in-
     dicated in a DISCOVER response.

     For notes on the SMP WRITE GPIO REGISTER ENHANCED function see the  section
     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)  reg-
	    isters 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  registers
	    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 er-
	    ror 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 docu-
     ment: 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 ver-
     sion 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 function 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.sff-
     committee.com ) together with its	corresponding  READ  GPIO  REGISTER  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 warranty;
     not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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.1.quarterly>

home | help