v2x: reworked the v2x-fw-load script for shell

BugzID: 72787
Signed-off-by: Marc Mattmueller <marc.mattmueller@netmodule.com>
This commit is contained in:
Marc Mattmueller 2021-06-03 22:32:10 +02:00
parent 29bc1b86ac
commit 21679f459f
1 changed files with 20 additions and 20 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
SCRIPT_NAME=$(basename "${0}") SCRIPT_NAME=$(basename "${0}")
@ -11,18 +11,20 @@ IS_PLACEHOLDER_FW=false
#********************************************************************************************** #**********************************************************************************************
# local helper functions # local helper functions
#********************************************************************************************** #**********************************************************************************************
function printUsage() printUsage()
{ {
echo -e "\\nUsage: ${SCRIPT_NAME} [OPT] CMD \\n\\n" echo ""
echo -e " CMD:" echo "Usage: ${SCRIPT_NAME} [OPT] CMD"
echo -e " -h|--help Show this help" echo ""
echo -e "" echo " CMD:"
echo -e " OPT:" echo " -h|--help Show this help"
echo -e " -c|--config-file=FILE The config file pathname (default=${V2X_CONF})" echo ""
echo -e "" echo " OPT:"
echo " -c|--config-file=FILE The config file pathname (default=${V2X_CONF})"
echo ""
} }
function checkInputParameters() checkInputParameters()
{ {
if [ ! -f $V2X_RST ]; then if [ ! -f $V2X_RST ]; then
echo "ERROR $SCRIPT_NAME: v2x module reset lines not available" echo "ERROR $SCRIPT_NAME: v2x module reset lines not available"
@ -34,18 +36,17 @@ function checkInputParameters()
fi fi
} }
function getConfigParameters() getConfigParameters()
{ {
echo "$SCRIPT_NAME: getting config parameter from $V2X_CONF" echo "$SCRIPT_NAME: getting config parameter from $V2X_CONF"
placeholderEntry=$(grep is-placeholder-firmware $V2X_CONF | cut -d'=' -f2) placeholderEntry=$(grep is-placeholder-firmware $V2X_CONF | cut -d'=' -f2)
if [[ "${placeholderEntry}" != "" && "${placeholderEntry}" == "true" ]]; then if [ "${placeholderEntry}" != "" ] && [ "${placeholderEntry}" = "true" ]; then
IS_PLACEHOLDER_FW=true IS_PLACEHOLDER_FW=true
fi fi
} }
function enableTheModule() enableTheModule()
{ {
local pwrGpio
pwrGpio="$(gpiofind UM_SUP_EN)" pwrGpio="$(gpiofind UM_SUP_EN)"
echo "$SCRIPT_NAME: releasing v2x reset..." echo "$SCRIPT_NAME: releasing v2x reset..."
@ -54,22 +55,21 @@ function enableTheModule()
echo "$SCRIPT_NAME: toggling v2x module power..." echo "$SCRIPT_NAME: toggling v2x module power..."
gpioset -m time -s 1 $pwrGpio=0 gpioset -m time -s 1 $pwrGpio=0
gpioset -m signal $pwrGpio=1 & gpioset -m signal $pwrGpio=1 &
PWR_GPIO_PID=$!
} }
function detectDfuMode() detectDfuMode()
{ {
local timeoutS=30 timeoutS=30
echo "$SCRIPT_NAME: discovering DFU mode of v2x module (timeout=${timeoutS}s)..." echo "$SCRIPT_NAME: discovering DFU mode of v2x module (timeout=${timeoutS}s)..."
timeout $timeoutS bash -c -- 'while true; do lsusb | grep "0483:df11"; if [ $? == 0 ]; then break; fi; done' timeout $timeoutS bash -c -- 'while true; do lsusb | grep "0483:df11"; if [ $? == 0 ]; then break; fi; done'
if [ $? == 124 ]; then if [ $? = 124 ]; then
echo "ERROR: v2x module is not available on usb bus" echo "ERROR: v2x module is not available on usb bus"
exit 1 exit 1
fi fi
} }
function loadFirmware() loadFirmware()
{ {
echo "$SCRIPT_NAME: loading v2x firmware..." echo "$SCRIPT_NAME: loading v2x firmware..."
output=$(dfu-util -d 0483:df11 -s 0x10000000 -D /lib/firmware/v2x/SECTON.packed_bin.rom 2>&1) output=$(dfu-util -d 0483:df11 -s 0x10000000 -D /lib/firmware/v2x/SECTON.packed_bin.rom 2>&1)
@ -112,7 +112,7 @@ getConfigParameters
enableTheModule enableTheModule
if [ $IS_PLACEHOLDER_FW == true ]; then if [ $IS_PLACEHOLDER_FW = true ]; then
echo "$SCRIPT_NAME: v2x placeholder firmware configured" echo "$SCRIPT_NAME: v2x placeholder firmware configured"
exit 0 exit 0
fi fi