1SMP_READ_GPIO(8) SMP_UTILS SMP_READ_GPIO(8)
2
3
4
6 smp_read_gpio - invoke READ GPIO REGISTER (ENHANCED) SMP function
7
9 smp_read_gpio [--count=CO] [--enhanced] [--help] [--hex] [--index=IN]
10 [--interface=PARAMS] [--raw] [--sa=SAS_ADDR] [--type=TY] [--verbose]
11 [--version] SMP_DEVICE[,N]
12
14 Sends a SAS Serial Management Protocol (SMP) READ GPIO REGISTER or READ
15 GPIO REGISTER ENHANCED function request to an SMP target. The SMP tar‐
16 get is identified by the SMP_DEVICE and the SAS_ADDR. Depending on the
17 interface, the SAS_ADDR may be deduced from the SMP_DEVICE. The mpt
18 interface uses SMP_DEVICE to identify a HBA (an SMP initiator) and
19 needs the additional ,N to differentiate between HBAs if there are mul‐
20 tiple present.
21
22 This function is defined in SFF-8485 ( see www.sffcommittee.com )
23 together with its corresponding WRITE GPIO REGISTER SMP function. The
24 other SMP functions are defined in SAS documents at www.t10.org .
25 SFF-8485 defines a curious device called a "virtual SMP port" that
26 lives in a host bus adapter (HBA) and allows SMP to manipulate the
27 sideband signals on wide internal cables. To stop other initiators in a
28 multi-initiator domain from accessing those sideband signals, the vir‐
29 tual SMP (target) port is not indicated in a DISCOVER response.
30
31 For notes on the SMP READ GPIO REGISTER ENHANCED function see the sec‐
32 tion on the ENHANCED FUNCTION below.
33
35 Mandatory arguments to long options are mandatory for short options as
36 well.
37
38 -c, --count=CO
39 where CO is the register count. This is the number of (4 byte)
40 registers to request. The default value is 1.
41
42 -E, --enhanced
43 sends a READ GPIO REGISTER ENHANCED function request (default:
44 send a READ GPIO REGISTER function request).
45
46 -h, --help
47 output the usage message then exit.
48
49 -H, --hex
50 output the response (less the CRC field) in hexadecimal.
51
52 -i, --index=IN
53 where IN is the register index. This value is origin zero and
54 its default value is 0. If the request succeeds, then --count=CO
55 registers starting from --index=IN of the given --type=TY should
56 be in the response.
57
58 -I, --interface=PARAMS
59 interface specific parameters. In this case "interface" refers
60 to the path through the operating system to the SMP initiator.
61 See the smp_utils man page for more information.
62
63 -r, --raw
64 send the response (less the CRC field) to stdout in binary. All
65 error messages are sent to stderr.
66
67 -s, --sa=SAS_ADDR
68 specifies the SAS address of the SMP target device. Typically
69 this is an expander. This option may not be needed if the
70 SMP_DEVICE has the target's SAS address within it. The SAS_ADDR
71 is in decimal but most SAS addresses are shown in hexadecimal.
72 To give a number in hexadecimal either prefix it with '0x' or
73 put a trailing 'h' on it.
74
75 -t, --type=TY
76 where TY is the register type. The default value is 0
77 (GPIO_CFG). If the request succeeds, then --count=CO registers
78 starting from --index=IN of the given --type=TY should be in the
79 response.
80
81 -v, --verbose
82 increase the verbosity of the output. Can be used multiple times
83
84 -V, --version
85 print the version string and then exit.
86
88 In the technical review of SAS-2 prior to standardization in this t10
89 document: 08-212r8.pdf (page 871 or 552) there is a comment that the
90 READ GPIO REGISTER and WRITE GPIO REGISTER function headers (i.e. first
91 4 bytes) do not comply with all the other SMP functions in SAS-2.
92
93 There is a suggestion that enhanced variants be introduced in the next
94 version of the SFF-8485 document. If that ever happened then it has not
95 been made public. In SAS-2.1 both the READ and WRITE GPIO REGISTER
96 functions have been made obsolete and the corresponding ENHANCED func‐
97 tion numbers are "restricted" for SFF-8485.
98
99 If the --enhanced option is given then the ENHANCED function number is
100 sent; the register type, index and count fields (1 byte each) are
101 increased by two byte positions leaving enough space for a compliant
102 SAS-2 SMP header to be built.
103
105 See "Examples" section in http://sg.danny.cz/sg/smp_utils.html
106
108 The SMP READ GPIO REGISTER (ENHANCED) function is defined in SFF-8485
109 (see www.sffcommittee.com ) together with its corresponding WRITE GPIO
110 REGISTER (ENHANCED) SMP function.
111
113 Written by Douglas Gilbert.
114
116 Report bugs to <dgilbert at interlog dot com>.
117
119 Copyright © 2006-2011 Douglas Gilbert
120 This software is distributed under a FreeBSD license. There is NO war‐
121 ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
122 POSE.
123
125 smp_utils, smp_write_gpio(smp_utils)
126
127
128
129smp_utils-0.97 August 2011 SMP_READ_GPIO(8)