blob: f5fefc3785dcf38edc0d1f519facf695eefe9b98 [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.
22 cnt=10
23 pgood=""
24 while [ $cnt -gt 0 ];
25 do
26 pgood=$(busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood | cut -d' ' -f2)
27 if [[ "$pgood" != '' ]]; then
28 break;
29 fi
30 cnt=$(( cnt - 1 ))
31 sleep 1
32 done
33
34 if [ "$pgood" == '1' ]; then
35 echo "PSU is on. Setting PSON to 0"
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070036 gpioset $(gpiofind power-chassis-control)=0
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070037 else
38 echo "pgood D-Bus property response as 0. PSU is off."
39 # for unknown reason when stress reboot bmc power-control.exe detect power-chassis-good is 1 (power on)
40 # But "busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood" responses 0 (power off)
41 # Add sleep 3 seconds after the pgood dbus reponse (power off) and recheck the power-chassis-good to confirm about the PSU power state
42 sleep 3
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070043 pgood=$(gpioget $(gpiofind power-chassis-good))
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070044 if [ "$pgood" == '0' ]; then
45 echo "power-chassis-good reponse as 0. Confirm PSU is off. Setting PSON to 1."
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070046 gpioset $(gpiofind power-chassis-control)=1
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070047 fi
48 fi
Thang Q. Nguyend9c89652023-10-05 09:02:31 +070049 gpioset $(gpiofind host0-sysreset-n)=1
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070050
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000051 # gpio-leds is controlling bmc-ready, not by gpio
52 echo 1 > /sys/class/leds/bmc-ready/brightness
53
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070054 echo "Set default FAN speed to 60%"
55 for filename in /sys/class/hwmon/*/pwm*
56 do
57 echo 153 > "$filename"
58 done
59
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000060 # Bind rtc driver
61 bind_rtc_driver
62}
63
64export output_high_gpios_in_ac=(
65 # add device enable, mux setting, device select gpios
66 "spi0-backup-sel"
67 "i2c-backup-sel"
68)
69
70export output_low_gpios_in_ac=(
71 # add device enable, mux setting, device select gpios
72 "spi0-program-sel"
73 "ocp-main-pwren"
74)
75
76export input_gpios_in_ac=(
77 # add device enable, mux setting, device select gpios
78)
79
80export output_high_gpios_in_bmc_reboot=(
81 "host0-sysreset-n"
82 "host0-pmin-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070083 "bmc-debug-mode"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000084 "vrd-sel"
85 "spd-sel"
86 "ext-high-temp-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070087 "fpga-program-b"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000088 "wd-disable-n"
89 "hpm-stby-rst-n"
90 "jtag-sel-s0"
91 "cpld-user-mode"
92 "jtag-srst-n"
93 "host0-shd-req-n"
94)
95
96export output_low_gpios_in_bmc_reboot=(
97 "rtc-battery-voltage-read-enable"
98 "s0-rtc-lock"
99 "hpm-fw-recovery"
100 "led-fault"
101 "spi-nor-access"
102 "host0-special-boot"
103)
104
105export input_gpios_in_bmc_reboot=(
106 "s0-vrd-fault-n"
107 "s1-vrd-fault-n"
108 "irq-n"
109 "presence-ps0"
110 "presence-ps1"
111 "hsc-12vmain-alt2-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +0700112 "eth-phy-int-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000113 "s0-pcp-oc-warn-n"
114 "s1-pcp-oc-warn-n"
115 "cpu-bios-recover"
116 "s0-heartbeat"
117 "hs-scout-proc-hot"
118 "s0-vr-hot-n"
119 "s1-vr-hot-n"
120 "hsc-12vmain-alt1-n"
121 "power-chassis-good"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000122 "s0-ddr-save"
123 "soc-spi-nor-access"
124 "presence-cpu0"
125 "jtag-dbgr-prsnt-n"
126 "ps0-ac-loss-n"
127 "ps1-ac-loss-n"
128 "s1-ddr-save"
129 "sys-pgood"
130 "presence-cpu1"
131 "s0-fault-alert"
132 "s0-sys-auth-failure-n"
133 "host0-ready"
134 "ocp-pgood"
135 "s1-fault-alert"
136 "s1-fw-boot-ok"
137 "s0-spi-auth-fail-n"
138 "s1-sys-auth-failure-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +0700139 "cpld-s1-spi-auth-fail-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000140 "ps0-pgood"
141 "ps1-pgood"
142 "s0-soc-pgood"
143)