#!/bin/sh
# S37board_setup - checked AM335x BB boot-safe state.
#
# The S82 supervisor owns the single GPIO/PWM implementation so boot and
# terminal containment cannot drift in polarity, topology, or readback rules.

PATH=/usr/bin:/bin:/usr/sbin:/sbin

BOARD_TARGET_FILE=/etc/dcentos/board_target
SAFETY_SCRIPT=/etc/init.d/S82dcentrald
if [ "${DCENT_TEST_ONLY_SYSFS_ROOTS:-0}" = 1 ]; then
    BOARD_TARGET_FILE=${DCENT_TEST_BOARD_TARGET_FILE:-$BOARD_TARGET_FILE}
    SAFETY_SCRIPT=${DCENT_TEST_SAFETY_SCRIPT:-$SAFETY_SCRIPT}
fi

apply_boot_safe_state() {
    if [ "$(cat "$BOARD_TARGET_FILE" 2>/dev/null)" != am3-bb-s19jpro ]; then
        echo "  [FAIL] Exact am3-bb-s19jpro image identity is absent" >&2
        return 1
    fi
    if [ ! -x "$SAFETY_SCRIPT" ] && [ ! -f "$SAFETY_SCRIPT" ]; then
        echo "  [FAIL] Checked AM3-BB safety custodian is missing" >&2
        return 1
    fi
    /bin/sh "$SAFETY_SCRIPT" boot-safety
}

case "${1:-}" in
    start|"")
        echo "  Initializing checked AM335x BB boot-safe state..."
        if apply_boot_safe_state; then
            echo "  [OK] AM335x BB boot-safe command/readback verified"
        else
            echo "  [FAIL] AM335x BB boot-safe state is incomplete" >&2
            exit 1
        fi
        ;;
    stop) : ;;
    *)
        echo "Usage: $0 {start|stop}" >&2
        exit 1
        ;;
esac

exit 0
