| #!/bin/bash |
| |
| TARGET_FILE_NAME="/etc/nvme/nvme_config.json" |
| |
| export_gpio() { |
| if [ ! -d "/sys/class/gpio/gpio$1" ]; then |
| echo "$1" >/sys/class/gpio/export |
| fi |
| } |
| |
| for i in {0..5} |
| do |
| SLED_NVME_PCIE_EN[i]=0 |
| for file in /sys/bus/i2c/drivers/pca953x/"$i"-0041/gpio/gpiochip*/base |
| do |
| if [ -f "$file" ]; then |
| GPIOCHIP_BASE="$(cat /sys/bus/i2c/drivers/pca953x/"$i"-0041/gpio/gpiochip*/base)" |
| SLED_NVME_PCIE_EN[i]=$((GPIOCHIP_BASE+3)) |
| export_gpio "${SLED_NVME_PCIE_EN[i]}" |
| break |
| fi |
| done |
| done |
| |
| cat > $TARGET_FILE_NAME << EOF1 |
| { |
| "maxSmbusErrorRetry": 3, |
| "config": [ |
| { |
| "NVMeDriveIndex": 1, |
| "NVMeDriveBusID": 0, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[0]} |
| }, |
| { |
| "NVMeDriveIndex": 2, |
| "NVMeDriveBusID": 1, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[1]} |
| }, |
| { |
| "NVMeDriveIndex": 3, |
| "NVMeDriveBusID": 2, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[2]} |
| }, |
| { |
| "NVMeDriveIndex": 4, |
| "NVMeDriveBusID": 3, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[3]} |
| }, |
| { |
| "NVMeDriveIndex": 5, |
| "NVMeDriveBusID": 4, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[4]} |
| }, |
| { |
| "NVMeDriveIndex": 6, |
| "NVMeDriveBusID": 5, |
| "NVMeDrivePwrGoodPin": ${SLED_NVME_PCIE_EN[5]} |
| } |
| ], |
| "threshold": [ |
| { |
| "criticalHigh": 68, |
| "criticalLow": 0, |
| "warningHigh": 67, |
| "warningLow": 1, |
| "maxValue": 127, |
| "minValue": -127 |
| } |
| ] |
| } |
| |
| EOF1 |