blob: 57a951abda674d13cb86b26a28a2502edcafb81f [file] [log] [blame]
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +00001#!/bin/bash
2
Thang Q. Nguyend9c89652023-10-05 09:02:31 +07003# shellcheck disable=SC2046
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +00004
5function bind_rtc_driver() {
6 # If rtc device can not present, bind the device
7 if [[ ! -e /dev/rtc0 ]]; then
8 echo "Bind rtc driver"
9 echo 6-0051 > /sys/bus/i2c/drivers/rtc-pcf85063/bind
10 fi
11}
12
13function pre-platform-init() {
14 echo "Do pre platform init"
15}
16
17function post-platform-init() {
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070018
19 # When BMC is rebooted, because PSON_L has pull up to P3V3_STB, it changes its
20 # value to HIGH. Add code to check P3V3_STB and recover PSON_L to correct state
21 # before setting BMC_RDY.
Thang Tran7c3ecf42023-10-05 09:20:05 +070022 pgood=$(gpioget $(gpiofind power-chassis-good))
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070023 if [ "$pgood" == '1' ]; then
24 echo "PSU is on. Setting PSON to 0"
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070025 gpioset $(gpiofind power-chassis-control)=0
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070026 else
Thang Tran7c3ecf42023-10-05 09:20:05 +070027 echo "PSU is off. Setting PSON to 1"
28 gpioset $(gpiofind power-chassis-control)=1
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070029 fi
Thang Tran7c3ecf42023-10-05 09:20:05 +070030
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070031 gpioset $(gpiofind host0-sysreset-n)=1
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070032
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000033 # gpio-leds is controlling bmc-ready, not by gpio
34 echo 1 > /sys/class/leds/bmc-ready/brightness
35
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070036 echo "Set default FAN speed to 60%"
37 for filename in /sys/class/hwmon/*/pwm*
38 do
39 echo 153 > "$filename"
40 done
41
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000042 # Bind rtc driver
43 bind_rtc_driver
44}
45
46export output_high_gpios_in_ac=(
47 # add device enable, mux setting, device select gpios
48 "spi0-backup-sel"
49 "i2c-backup-sel"
50)
51
52export output_low_gpios_in_ac=(
53 # add device enable, mux setting, device select gpios
54 "spi0-program-sel"
55 "ocp-main-pwren"
56)
57
58export input_gpios_in_ac=(
59 # add device enable, mux setting, device select gpios
60)
61
62export output_high_gpios_in_bmc_reboot=(
63 "host0-sysreset-n"
64 "host0-pmin-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070065 "bmc-debug-mode"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000066 "vrd-sel"
67 "spd-sel"
68 "ext-high-temp-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070069 "fpga-program-b"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000070 "wd-disable-n"
71 "hpm-stby-rst-n"
72 "jtag-sel-s0"
73 "cpld-user-mode"
74 "jtag-srst-n"
75 "host0-shd-req-n"
76)
77
78export output_low_gpios_in_bmc_reboot=(
79 "rtc-battery-voltage-read-enable"
80 "s0-rtc-lock"
81 "hpm-fw-recovery"
82 "led-fault"
83 "spi-nor-access"
84 "host0-special-boot"
85)
86
87export input_gpios_in_bmc_reboot=(
88 "s0-vrd-fault-n"
89 "s1-vrd-fault-n"
90 "irq-n"
91 "presence-ps0"
92 "presence-ps1"
93 "hsc-12vmain-alt2-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070094 "eth-phy-int-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000095 "s0-pcp-oc-warn-n"
96 "s1-pcp-oc-warn-n"
97 "cpu-bios-recover"
98 "s0-heartbeat"
99 "hs-scout-proc-hot"
100 "s0-vr-hot-n"
101 "s1-vr-hot-n"
102 "hsc-12vmain-alt1-n"
103 "power-chassis-good"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000104 "s0-ddr-save"
105 "soc-spi-nor-access"
106 "presence-cpu0"
107 "jtag-dbgr-prsnt-n"
108 "ps0-ac-loss-n"
109 "ps1-ac-loss-n"
110 "s1-ddr-save"
111 "sys-pgood"
112 "presence-cpu1"
113 "s0-fault-alert"
114 "s0-sys-auth-failure-n"
115 "host0-ready"
116 "ocp-pgood"
117 "s1-fault-alert"
118 "s1-fw-boot-ok"
119 "s0-spi-auth-fail-n"
120 "s1-sys-auth-failure-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +0700121 "cpld-s1-spi-auth-fail-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000122 "ps0-pgood"
123 "ps1-pgood"
124 "s0-soc-pgood"
125)