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