Add camera power down/up workaround Change-Id: Ia666caa8dad83bf803b47bc1526316e2b3019043
diff --git a/nexus-non-interactive-test.sh b/nexus-non-interactive-test.sh index 411d605..c67d94c 100755 --- a/nexus-non-interactive-test.sh +++ b/nexus-non-interactive-test.sh
@@ -25,6 +25,19 @@ export LOG_TIMEOUT="${LOG_TIMEOUT:-900}" export LOG_CHECK_INTERVAL="${LOG_CHECK_INTERVAL:-30}" + +function mcu_write() { + string=$1 + length=${#string} + for ((i = 0; i < length; i++)); do + char="${string:i:1}" + echo -n "$char" + sleep 0.5 + done > "/dev/Nexus-FTDI-${NEXUS_ID}-MCU-UART" + echo -e "\r" > "/dev/Nexus-FTDI-${NEXUS_ID}-MCU-UART" +} + + if [ $# -lt 2 ] || [ $# -gt 3 ] ; then cat << EOF $0 <bitstream> <binary> [nexus index] @@ -52,9 +65,14 @@ then echo "/dev/Nexus-CP210-FPGA-UART-${NEXUS_ID} appears to be busy" fi +if fuser "/dev/Nexus-FTDI-${NEXUS_ID}-MCU-UART" +then + echo "/dev/Nexus-FTDI-${NEXUS_ID}-MCU-UART appears to be busy" +fi stty --file="/dev/Nexus-FTDI-${NEXUS_ID}-FPGA-UART" 115200 stty --file="/dev/Nexus-CP210-FPGA-UART-${NEXUS_ID}" 115200 +stty --file="/dev/Nexus-FTDI-${NEXUS_ID}-MCU-UART" 115200 # Starting logging the UARTs cat "/dev/Nexus-FTDI-${NEXUS_ID}-FPGA-UART" > uart.sc.log & @@ -68,14 +86,19 @@ kill -KILL ${SC_UART_PID} ; kill -KILL ${SMC_UART_PID}' 0 if [[ -f "${BITSTREAM_PATH}" ]]; then + # Issue a no-op command to flush the character buffer in case it isn't empty + mcu_write "help" scp \ "${BITSTREAM_PATH}" \ "root@nexus${NEXUS_ID}:/mnt/mmcp1/" + mcu_write "camera_powerdown" + sleep 5 # zturn exits with 1 even when working correctly. Mask with exit 0 BITSTREAM_NAME=$(basename "${BITSTREAM_PATH}") ssh \ "root@nexus${NEXUS_ID}" \ "/mnt/mmcp1/zturn -d a /mnt/mmcp1/${BITSTREAM_NAME} ; exit 0" + mcu_write "camera_powerup" fi OT_TOOL_PATH=`command -v opentitantool`