blob: 76d3a7454c9f26b2ac820440c56720bce558d658 [file] [log] [blame]
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +00001#!/bin/bash
2
3# shellcheck disable=SC2154
4# shellcheck source=/dev/null
5
6source /usr/sbin/gpio-lib.sh
7
8function bind_rtc_driver() {
9 # If rtc device can not present, bind the device
10 if [[ ! -e /dev/rtc0 ]]; then
11 echo "Bind rtc driver"
12 echo 6-0051 > /sys/bus/i2c/drivers/rtc-pcf85063/bind
13 fi
14}
15
16function pre-platform-init() {
17 echo "Do pre platform init"
18}
19
20function post-platform-init() {
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070021
22 # When BMC is rebooted, because PSON_L has pull up to P3V3_STB, it changes its
23 # value to HIGH. Add code to check P3V3_STB and recover PSON_L to correct state
24 # before setting BMC_RDY.
25 cnt=10
26 pgood=""
27 while [ $cnt -gt 0 ];
28 do
29 pgood=$(busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood | cut -d' ' -f2)
30 if [[ "$pgood" != '' ]]; then
31 break;
32 fi
33 cnt=$(( cnt - 1 ))
34 sleep 1
35 done
36
37 if [ "$pgood" == '1' ]; then
38 echo "PSU is on. Setting PSON to 0"
39 gpio_name_set power-chassis-control 0
40 else
41 echo "pgood D-Bus property response as 0. PSU is off."
42 # for unknown reason when stress reboot bmc power-control.exe detect power-chassis-good is 1 (power on)
43 # But "busctl get-property org.openbmc.control.Power /org/openbmc/control/power0 org.openbmc.control.Power pgood" responses 0 (power off)
44 # Add sleep 3 seconds after the pgood dbus reponse (power off) and recheck the power-chassis-good to confirm about the PSU power state
45 sleep 3
46 pgood=$(gpio_name_get power-chassis-good)
47 if [ "$pgood" == '0' ]; then
48 echo "power-chassis-good reponse as 0. Confirm PSU is off. Setting PSON to 1."
49 gpio_name_set power-chassis-control 1
50 fi
51 fi
52 gpio_name_set host0-sysreset-n 1
53
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000054 # gpio-leds is controlling bmc-ready, not by gpio
55 echo 1 > /sys/class/leds/bmc-ready/brightness
56
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070057 echo "Set default FAN speed to 60%"
58 for filename in /sys/class/hwmon/*/pwm*
59 do
60 echo 153 > "$filename"
61 done
62
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000063 # Bind rtc driver
64 bind_rtc_driver
65}
66
67export output_high_gpios_in_ac=(
68 # add device enable, mux setting, device select gpios
69 "spi0-backup-sel"
70 "i2c-backup-sel"
71)
72
73export output_low_gpios_in_ac=(
74 # add device enable, mux setting, device select gpios
75 "spi0-program-sel"
76 "ocp-main-pwren"
77)
78
79export input_gpios_in_ac=(
80 # add device enable, mux setting, device select gpios
81)
82
83export output_high_gpios_in_bmc_reboot=(
84 "host0-sysreset-n"
85 "host0-pmin-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070086 "bmc-debug-mode"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000087 "vrd-sel"
88 "spd-sel"
89 "ext-high-temp-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +070090 "fpga-program-b"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +000091 "wd-disable-n"
92 "hpm-stby-rst-n"
93 "jtag-sel-s0"
94 "cpld-user-mode"
95 "jtag-srst-n"
96 "host0-shd-req-n"
97)
98
99export output_low_gpios_in_bmc_reboot=(
100 "rtc-battery-voltage-read-enable"
101 "s0-rtc-lock"
102 "hpm-fw-recovery"
103 "led-fault"
104 "spi-nor-access"
105 "host0-special-boot"
106)
107
108export input_gpios_in_bmc_reboot=(
109 "s0-vrd-fault-n"
110 "s1-vrd-fault-n"
111 "irq-n"
112 "presence-ps0"
113 "presence-ps1"
114 "hsc-12vmain-alt2-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +0700115 "eth-phy-int-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000116 "s0-pcp-oc-warn-n"
117 "s1-pcp-oc-warn-n"
118 "cpu-bios-recover"
119 "s0-heartbeat"
120 "hs-scout-proc-hot"
121 "s0-vr-hot-n"
122 "s1-vr-hot-n"
123 "hsc-12vmain-alt1-n"
124 "power-chassis-good"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000125 "s0-ddr-save"
126 "soc-spi-nor-access"
127 "presence-cpu0"
128 "jtag-dbgr-prsnt-n"
129 "ps0-ac-loss-n"
130 "ps1-ac-loss-n"
131 "s1-ddr-save"
132 "sys-pgood"
133 "presence-cpu1"
134 "s0-fault-alert"
135 "s0-sys-auth-failure-n"
136 "host0-ready"
137 "ocp-pgood"
138 "s1-fault-alert"
139 "s1-fw-boot-ok"
140 "s0-spi-auth-fail-n"
141 "s1-sys-auth-failure-n"
Thang Q. Nguyen12bb5732023-04-15 14:23:25 +0700142 "cpld-s1-spi-auth-fail-n"
Chanh Nguyen2fc68eb2022-04-28 09:11:28 +0000143 "ps0-pgood"
144 "ps1-pgood"
145 "s0-soc-pgood"
146)