Provided by: smp-utils_0.98-2build1_amd64 bug


       smp_read_gpio - invoke READ GPIO REGISTER (ENHANCED) SMP function


       smp_read_gpio [--count=CO] [--enhanced] [--help] [--hex] [--index=IN] [--interface=PARAMS]
       [--raw] [--sa=SAS_ADDR] [--type=TY] [--verbose] [--version] SMP_DEVICE[,N]


       Sends a SAS Serial Management Protocol (SMP) READ GPIO  REGISTER  or  READ  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  )  together  with  its
       corresponding  WRITE  GPIO  REGISTER SMP function.  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 manipulate the sideband
       signals on 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 READ GPIO REGISTER ENHANCED function see the section on the  ENHANCED
       FUNCTION below.


       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
              request. The default value is 1.

       -E, --enhanced
              sends a READ GPIO REGISTER ENHANCED function request (default:  send  a  READ  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. If the request succeeds, then --count=CO registers starting from  --index=IN  of
              the given --type=TY should be in the response.

       -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

       -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

       -t, --type=TY
              where TY is the register type. The default value is 0 (GPIO_CFG).  If  the  request
              succeeds, then --count=CO registers starting from --index=IN of the given --type=TY
              should be in the response.

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

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


       See "Examples" section in


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


       Written by Douglas Gilbert.


       Report bugs to <dgilbert at interlog dot com>.


       Copyright © 2006-2011 Douglas Gilbert
       This software is distributed under a FreeBSD license. There is NO warranty; not  even  for


       smp_utils, smp_write_gpio(smp_utils)