1SMP_WRITE_GPIO(8) SMP_UTILS SMP_WRITE_GPIO(8)
2
3
4
6 smp_write_gpio - invoke WRITE GPIO REGISTER SMP function
7
9 smp_write_gpio [--count=CO] [--data=H,H...] [--help] [--hex]
10 [--index=IN] [--interface=PARAMS] [--raw] [--sa=SAS_ADDR] [--type=TY]
11 [--verbose] [--version] SMP_DEVICE[,N]
12
14 Sends a SAS Management Protocol (SMP) WRITE GPIO REGISTER request func‐
15 tion to a SMP target. The SMP target is identified by the SMP_DEVICE
16 and the SAS_ADDR. Depending on the interface, the SAS_ADDR may be
17 deduced from the SMP_DEVICE. With one interface there is one SMP_DEVICE
18 per machine so the SMP_DEVICE,N syntax is needed to differentiate
19 between HBAs if there are multiple present.
20
21 This function is defined in SFF-8485 ( see www.sffcommittee.com )
22 together with its corresponding READ GPIO REGISTER SMP function. The
23 other SMP functions are defined in SAS documents at www.t10.org .
24 SFF-8485 defines a curious device called a "virtual SMP port" that
25 lives in a host bus adapter (HBA) and allows SMP to manipulate the
26 sideband signals in wide internal cables. To stop other initiators in a
27 multi-initiator domain from accessing those sideband signals, the vir‐
28 tual SMP (target) port is not indicated in a DISCOVER response.
29
30 -c, --count=CO
31 where CO is the register count. This is the number of (4 byte)
32 registers to send. The default value is 1.
33
34 -d, --data=H,H...
35 this option supplies a comma separated list of hexadecimal bytes
36 (0 to ff inclusive) that will be used as write data in the WRITE
37 GPIO REGISTER request. The number of bytes supplied should be
38 four times --count=C The first 4 bytes will become the first
39 register written.
40
41 -d, --data=-
42 reads string of hexadecimal bytes from stdin. Spaces, tabs and
43 line feeds additionally are permitted as separators.
44
45 -h, --help
46 output the usage message then exit.
47
48 -H, --hex
49 output the response in hexadecimal.
50
51 -i, --index=IN
52 where IN is the register index. This value is origin zero and
53 its default value is 0. The request will send --count=CO regis‐
54 ters starting from --index=IN of the given --type=TY.
55
56 -I, --interface=PARAMS
57 interface specific parameters. In this case "interface" refers
58 to the path through the operating system to the SMP initiator.
59 See the smp_utils man page for more information.
60
61 -r, --raw
62 send the response to stdout in binary. All error messages are
63 sent to stderr.
64
65 -s, --sa=SAS_ADDR
66 specifies the SAS address of the SMP target device. Typically
67 this is an expander. This option may not be needed if the
68 SMP_DEVICE has the target's SAS address within it. The SAS_ADDR
69 is in decimal but most SAS addresses are shown in hexadecimal.
70 To give a number in hexadecimal either prefix it with '0x' or
71 put a trailing 'h' on it.
72
73 -t, --type=TY
74 where TY is the register type. The default value is 0
75 (GPIO_CFG). The request will send --count=CO registers starting
76 from --index=IN of the given --type=TY.
77
78 -v, --verbose
79 increase the verbosity of the output. Can be used multiple
80 times.
81
82 -V, --version
83 print the version string and then exit.
84
86 The SMP WRITE GPIO REGISTER function is defined in SFF-8485 (see
87 www.sffcommittee.com ) together with its corresponding READ GPIO REGIS‐
88 TER SMP function.
89
91 Written by Douglas Gilbert.
92
94 Report bugs to <dgilbert at interlog dot com>.
95
97 Copyright © 2006-2008 Douglas Gilbert
98 This software is distributed under a FreeBSD license. There is NO war‐
99 ranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
100 POSE.
101
103 smp_utils, smp_read_gpio(smp_utils)
104
105
106
107smp_utils-0.93 January 2008 SMP_WRITE_GPIO(8)