Scroll to navigation

SMP_READ_GPIO(8) SMP_UTILS SMP_READ_GPIO(8)

NAME

smp_read_gpio - invoke READ GPIO REGISTER (ENHANCED) SMP function

SYNOPSIS

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

DESCRIPTION

Sends a SAS Management Protocol (SMP) READ GPIO REGISTER or READ GPIO REGISTER ENHANCED function request to a 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.
In SAS-2 this function was made obsolete and seemingly replaced by a function called READ GPIO REGISTER ENHANCED with a reference to the same SFF document. However the author can find no version of SFF-8485 that defines the READ GPIO REGISTER ENHANCED function. In SAS-2.1 both the READ GPIO REGISTER and READ GPIO REGISTER ENHANCED functions were dropped.

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.

EXAMPLES

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

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.

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_write_gpio(smp_utils)
June 2011 smp_utils-0.96