ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 3 | # shellcheck source=/dev/null |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 4 | source /usr/sbin/gpio-defs.sh |
| 5 | source /usr/sbin/gpio-lib.sh |
| 6 | |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 7 | createFile=$1 |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 8 | |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 9 | # Check current Host status. Do nothing when the Host is currently ON |
| 10 | st=$(busctl get-property xyz.openbmc_project.State.Host \ |
| 11 | /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Host \ |
| 12 | CurrentHostState | cut -d"." -f6) |
| 13 | if [ "$st" == "Running\"" ]; then |
| 14 | exit 0 |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 15 | fi |
| 16 | |
| 17 | # Time out to check S0_FW_BOOT_OK is 60 seconds |
| 18 | cnt=60 |
| 19 | val=0 |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 20 | while [ "$cnt" -gt 0 ]; |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 21 | do |
Thang Q. Nguyen | dde1fed | 2021-11-04 08:30:27 +0000 | [diff] [blame] | 22 | val=$(gpio_get_val "$S0_CPU_FW_BOOT_OK") |
| 23 | cnt=$((cnt - 1)) |
| 24 | echo "$cnt S0_CPU_FW_BOOT_OK = $val" |
| 25 | if [ "$val" == 1 ]; then |
| 26 | # Sleep 5 second before the host is ready |
| 27 | sleep 5 |
| 28 | if [ "$createFile" == 1 ]; then |
| 29 | mkdir -p /run/openbmc |
| 30 | echo "Creating /run/openbmc/host@0-on" |
| 31 | touch /run/openbmc/host@0-on |
| 32 | fi |
| 33 | exit 0 |
| 34 | fi |
| 35 | sleep 1 |
ThuBaNguyen | 7b45282 | 2021-06-06 14:36:07 +0700 | [diff] [blame] | 36 | done |
| 37 | |
| 38 | exit 1 |