logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

smp_read_gpio - invoke READ GPIO REGISTER (ENHANCED) SMP function

Authors

       Written by Douglas Gilbert.

Conforming To

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

Description

       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 www.sffcommittee.com ) together with its  corresponding  WRITE
       GPIO  REGISTER  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 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.

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.

Examples

       See "Examples" section in http://sg.danny.cz/sg/smp_utils.html

Name

       smp_read_gpio - invoke READ GPIO REGISTER (ENHANCED) SMP function

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

Reporting Bugs

       Report bugs to <dgilbert at interlog dot com>.

See Also

smp_utils,smp_write_gpio(smp_utils)

smp_utils-0.97                                     August 2011                                  SMP_READ_GPIO(8)

Synopsis

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

See Also