#!/bin/bash # shellcheck source=/dev/null source /usr/sbin/gpio-defs.sh source /usr/sbin/gpio-lib.sh createFile=$1 # Check current Host status. Do nothing when the Host is currently ON st=$(busctl get-property xyz.openbmc_project.State.Host \ /xyz/openbmc_project/state/host0 xyz.openbmc_project.State.Host \ CurrentHostState | cut -d"." -f6) if [ "$st" == "Running\"" ]; then exit 0 fi # Time out to check S0_FW_BOOT_OK is 60 seconds cnt=60 val=0 while [ "$cnt" -gt 0 ]; do val=$(gpio_get_val "$S0_CPU_FW_BOOT_OK") cnt=$((cnt - 1)) echo "$cnt S0_CPU_FW_BOOT_OK = $val" if [ "$val" == 1 ]; then # Sleep 5 second before the host is ready sleep 5 if [ "$createFile" == 1 ]; then mkdir -p /run/openbmc echo "Creating /run/openbmc/host@0-on" touch /run/openbmc/host@0-on fi exit 0 fi sleep 1 done exit 1