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