Provided by: smp-utils_0.98-1_amd64 bug

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 indicated 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)  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 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 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 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 increased 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 REGISTER SMP function.

AUTHORS

       Written by Douglas Gilbert.

REPORTING BUGS

       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT

       Copyright © 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)