blob: 46d72f4b129f64aed7bbdb050aabda80ef6bb104 [file] [log] [blame]
Potin Laieb37b942023-02-08 13:25:38 +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
11for i in {0..5}
12do
Andrew Geisslerd96085e2023-04-13 15:34:50 -060013 SLED_NVME_PCIE_EN[i]=0
Potin Laieb37b942023-02-08 13:25:38 +080014 for file in /sys/bus/i2c/drivers/pca953x/"$i"-0041/gpio/gpiochip*/base
15 do
16 if [ -f "$file" ]; then
17 GPIOCHIP_BASE="$(cat /sys/bus/i2c/drivers/pca953x/"$i"-0041/gpio/gpiochip*/base)"
Andrew Geisslerd96085e2023-04-13 15:34:50 -060018 SLED_NVME_PCIE_EN[i]=$((GPIOCHIP_BASE+3))
19 export_gpio "${SLED_NVME_PCIE_EN[i]}"
Potin Laieb37b942023-02-08 13:25:38 +080020 break
21 fi
22 done
23done
24
25cat > $TARGET_FILE_NAME << EOF1
26{
27 "maxSmbusErrorRetry": 3,
28 "config": [
29 {
30 "NVMeDriveIndex": 1,
31 "NVMeDriveBusID": 0,
32 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[0]}
33 },
34 {
35 "NVMeDriveIndex": 2,
36 "NVMeDriveBusID": 1,
37 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[1]}
38 },
39 {
40 "NVMeDriveIndex": 3,
41 "NVMeDriveBusID": 2,
42 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[2]}
43 },
44 {
45 "NVMeDriveIndex": 4,
46 "NVMeDriveBusID": 3,
47 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[3]}
48 },
49 {
50 "NVMeDriveIndex": 5,
51 "NVMeDriveBusID": 4,
52 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[4]}
53 },
54 {
55 "NVMeDriveIndex": 6,
56 "NVMeDriveBusID": 5,
57 "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[5]}
58 }
59 ],
60 "threshold": [
61 {
62 "criticalHigh": 68,
63 "criticalLow": 0,
64 "warningHigh": 67,
65 "warningLow": 1,
66 "maxValue": 127,
67 "minValue": -127
68 }
69 ]
70}
71
72EOF1