blob: 91dcb5cb38611ccedda3acc7cd877cf4a31ce798 [file] [log] [blame]
George Hung30cafdc2020-06-30 15:48:16 +08001#!/bin/bash
2
3TARGET_FILE_NAME="/etc/nvme/nvme_config.json"
4
5export_gpio() {
6 if [ ! -d "/sys/class/gpio/gpio$1" ]; then
7 echo $1 >/sys/class/gpio/export
8 fi
9}
10
11# Get NVMeDrivePresentPins
12# 1-0024
13
14# Get NVMeDrivePwrGoodPins
15# 1-0021
16
17if [ -d "/sys/bus/i2c/drivers/pca953x/1-0024" ]; then
18 presentPinBase="$(cat /sys/bus/i2c/drivers/pca953x/1-0024/gpio/gpiochip*/base)"
19 for i in {0..15};
20 do
21 let presentPinBase[$i]=presentPinBase+$i
22 export_gpio ${presentPinBase[$i]}
23 done
24else
25 echo "Can't find present gpio expander (addr: 0x24) !!"
26fi
27
28if [ -d "/sys/bus/i2c/drivers/pca953x/1-0021" ]; then
29 PwrGoodPinBase="$(cat /sys/bus/i2c/drivers/pca953x/1-0021/gpio/gpiochip*/base)"
30 for i in {0..15};
31 do
32 let PwrGoodPinBase[$i]=PwrGoodPinBase+$i
33 export_gpio ${PwrGoodPinBase[$i]}
34 done
35else
36 echo "Can't find powergood gpio expander (addr: 0x21) !!"
37fi
38
39cat > $TARGET_FILE_NAME << EOF1
40{
41 "config": [
42 {
43 "NVMeDriveIndex": 0,
44 "NVMeDriveBusID": 47,
45 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_fault",
46 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_0_locate",
47 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_0_locate",
48 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_0_locate",
49 "NVMeDrivePresentPin": ${presentPinBase[3]},
50 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[3]}
51 },
52 {
53 "NVMeDriveIndex": 1,
54 "NVMeDriveBusID": 46,
55 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_fault",
56 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_1_locate",
57 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_1_locate",
58 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_1_locate",
59 "NVMeDrivePresentPin": ${presentPinBase[2]},
60 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[2]}
61 },
62 {
63 "NVMeDriveIndex": 2,
64 "NVMeDriveBusID": 45,
65 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_fault",
66 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_2_locate",
67 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_2_locate",
68 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_2_locate",
69 "NVMeDrivePresentPin": ${presentPinBase[1]},
70 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[1]}
71 },
72 {
73 "NVMeDriveIndex": 3,
74 "NVMeDriveBusID": 44,
75 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_fault",
76 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_3_locate",
77 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_3_locate",
78 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_3_locate",
79 "NVMeDrivePresentPin": ${presentPinBase[0]},
80 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[0]}
81 },
82 {
83 "NVMeDriveIndex": 4,
84 "NVMeDriveBusID": 39,
85 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_fault",
86 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_4_locate",
87 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_4_locate",
88 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_4_locate",
89 "NVMeDrivePresentPin": ${presentPinBase[7]},
90 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[7]}
91 },
92 {
93 "NVMeDriveIndex": 5,
94 "NVMeDriveBusID": 38,
95 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_fault",
96 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_5_locate",
97 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_5_locate",
98 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_5_locate",
99 "NVMeDrivePresentPin": ${presentPinBase[6]},
100 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[6]}
101 },
102 {
103 "NVMeDriveIndex": 6,
104 "NVMeDriveBusID": 37,
105 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_fault",
106 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_6_locate",
107 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_6_locate",
108 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_6_locate",
109 "NVMeDrivePresentPin": ${presentPinBase[5]},
110 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[5]}
111 },
112 {
113 "NVMeDriveIndex": 7,
114 "NVMeDriveBusID": 36,
115 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_fault",
116 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_7_locate",
117 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_7_locate",
118 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_7_locate",
119 "NVMeDrivePresentPin": ${presentPinBase[4]},
120 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[4]}
121 },
122 {
123 "NVMeDriveIndex": 8,
124 "NVMeDriveBusID": 31,
125 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_fault",
126 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_8_locate",
127 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_8_locate",
128 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_8_locate",
129 "NVMeDrivePresentPin": ${presentPinBase[11]},
130 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[11]}
131 },
132 {
133 "NVMeDriveIndex": 9,
134 "NVMeDriveBusID": 30,
135 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_fault",
136 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_9_locate",
137 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_9_locate",
138 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_9_locate",
139 "NVMeDrivePresentPin": ${presentPinBase[10]},
140 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[10]}
141 },
142 {
143 "NVMeDriveIndex": 10,
144 "NVMeDriveBusID": 29,
145 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_fault",
146 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_10_locate",
147 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_10_locate",
148 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_10_locate",
149 "NVMeDrivePresentPin": ${presentPinBase[9]},
150 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[9]}
151 },
152 {
153 "NVMeDriveIndex": 11,
154 "NVMeDriveBusID": 28,
155 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_fault",
156 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_11_locate",
157 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_11_locate",
158 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_11_locate",
159 "NVMeDrivePresentPin": ${presentPinBase[8]},
160 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[8]}
161 },
162 {
163 "NVMeDriveIndex": 12,
164 "NVMeDriveBusID": 27,
165 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_fault",
166 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_12_locate",
167 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_12_locate",
168 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_12_locate",
169 "NVMeDrivePresentPin": ${presentPinBase[15]},
170 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[15]}
171 },
172 {
173 "NVMeDriveIndex": 13,
174 "NVMeDriveBusID": 26,
175 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_fault",
176 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_13_locate",
177 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_13_locate",
178 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_13_locate",
179 "NVMeDrivePresentPin": ${presentPinBase[14]},
180 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[14]}
181 },
182 {
183 "NVMeDriveIndex": 14,
184 "NVMeDriveBusID": 25,
185 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_fault",
186 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_14_locate",
187 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_14_locate",
188 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_14_locate",
189 "NVMeDrivePresentPin": ${presentPinBase[13]},
190 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[13]}
191 },
192 {
193 "NVMeDriveIndex": 15,
194 "NVMeDriveBusID": 24,
195 "NVMeDriveFaultLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_fault",
196 "NVMeDriveLocateLEDGroupPath": "/xyz/openbmc_project/led/groups/led_u2_15_locate",
197 "NVMeDriveLocateLEDControllerBusName": "xyz.openbmc_project.LED.Controller.led_u2_15_locate",
198 "NVMeDriveLocateLEDControllerPath": "/xyz/openbmc_project/led/physical/led_u2_15_locate",
199 "NVMeDrivePresentPin": ${presentPinBase[12]},
200 "NVMeDrivePwrGoodPin": ${PwrGoodPinBase[12]}
201 }
202 ],
203 "threshold": [
204 {
George Hung52b59532020-10-06 14:39:18 +0800205 "criticalHigh": 77,
George Hung30cafdc2020-06-30 15:48:16 +0800206 "criticalLow": 0,
George Hung52b59532020-10-06 14:39:18 +0800207 "warningHigh": 77,
George Hung30cafdc2020-06-30 15:48:16 +0800208 "warningLow": 0,
209 "maxValue": 127,
210 "minValue": -128
211 }
212 ]
213}
214EOF1