#!/bin/sh SUBSYSTEM=$(uname -n || $HOSTNAME) SUBSYSTEM=${SUBSYSTEM#*-} HWIDX0=0 HWIDX1=0 HWIDX2=0 HWIDX3=0 HWIDX4=0 if [[ ! -e /dev/sysregs ]]; then exit 1 fi if [[ "$SUBSYSTEM" == "jacinto" ]]; then # set variable gpios to input if necessary if [[ $(cat /dev/sysregs/DSP_LED_DIR) -eq 0x00000000 ]]; then SAVE_DSP_LED_DIR=$(cat /dev/sysregs/DSP_LED_DIR) echo 0x00000001>/dev/sysregs/DSP_LED_DIR fi if [[ $(cat /dev/sysregs/ARM_LED_DIR) -eq 0x00000000 ]]; then SAVE_ARM_LED_DIR=$(cat /dev/sysregs/ARM_LED_DIR) echo 0x00000001>/dev/sysregs/ARM_LED_DIR fi # determine the hardware index if [[ ! -e /dev/sysregs/HW_ID0 ]]; then exit 1 fi HWIDX0=$(($(cat /dev/sysregs/HW_ID0))) HWIDX1=$(($(cat /dev/sysregs/HW_ID1))) HWIDX2=$(($(cat /dev/sysregs/HW_ID2))) HWIDX3=$(($(cat /dev/sysregs/HW_ID3))) # ignore msb pin due to problems on rse targets # HWIDX4=$(($(cat /dev/sysregs/HW_ID4))) # check and reset gpios if [[ -n $SAVE_DSP_LED_DIR ]]; then if [[ $(cat /dev/sysregs/DSP_LED_DIR) -eq $SAVE_DSP_LED_DIR ]]; then exit 1 fi echo $SAVE_DSP_LED_DIR>/dev/sysregs/DSP_LED_DIR fi if [[ -n $SAVE_ARM_LED_DIR ]]; then if [[ $(cat /dev/sysregs/ARM_LED_DIR) -eq $SAVE_ARM_LED_DIR ]]; then exit 1 fi echo $SAVE_ARM_LED_DIR>/dev/sysregs/ARM_LED_DIR fi elif [[ "$SUBSYSTEM" == "omap" ]]; then # determine the hardware index if [[ ! -e /dev/sysregs/HW_IDX0 ]]; then exit 1 fi HWIDX0=$(($(cat /dev/sysregs/HW_IDX0))) HWIDX1=$(($(cat /dev/sysregs/HW_IDX1))) HWIDX2=$(($(cat /dev/sysregs/HW_IDX2))) HWIDX3=$(($(cat /dev/sysregs/HW_IDX3))) if [[ -e /dev/sysregs/HW_IDX4 ]]; then HWIDX4=$(($(cat /dev/sysregs/HW_IDX4))) fi else exit 1 fi echo $((2#$HWIDX4$HWIDX3$HWIDX2$HWIDX1$HWIDX0)) exit 0