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