Merge "Revert "Add libsystemc-dev as a Shodan dependency.""
diff --git a/install-prereqs.sh b/install-prereqs.sh
index 5dae9f7..57a896d 100755
--- a/install-prereqs.sh
+++ b/install-prereqs.sh
@@ -85,6 +85,7 @@
python3-pip
python3-venv
rsync
+ socat
srecord
texinfo
texlive-bibtex-extra
diff --git a/nexus-non-interactive-test.sh b/nexus-non-interactive-test.sh
new file mode 100755
index 0000000..ff7ef13
--- /dev/null
+++ b/nexus-non-interactive-test.sh
@@ -0,0 +1,93 @@
+#!/bin/bash
+#
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Run a test on the nexus FPGA platform
+set -e
+
+BITSTREAM_PATH="$1"
+BINARY_PATH="$2"
+NEXUS_ID="${NEXUS_ID:-$3}"
+
+if [ $# -lt 2 ] || [ $# -gt 3 ] ; then
+cat << EOF
+ $0 <bitstream> <binary> [nexus index]
+ bitstream: The path to the nexus bitstream.
+ This will be copied and loaded to the fpga
+ binary: The path to the test binary.
+ This will be loaded with the opentitantool utility using the
+ bootstrap subcommand
+ nexus index: The number assigned to the nexus board that will be used for
+ the test. Include zero padding for numbers less than 10. This
+ arg is optional and will fall back on the NEXUS_ID environment
+ variable.
+EOF
+exit 1
+fi
+
+# Verify no one else is using our UARTs
+if fuser "/dev/Nexus-FTDI-${NEXUS_ID}-FPGA-UART"
+then
+ echo "/dev/Nexus-FTDI-${NEXUS_ID}-FPGA-UART appears to be busy"
+fi
+if fuser "/dev/Nexus-CP210-FPGA-UART-${NEXUS_ID}"
+then
+ echo "/dev/Nexus-CP210-FPGA-UART-${NEXUS_ID} 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
+
+scp \
+ "${BITSTREAM_PATH}" \
+ "root@nexus${NEXUS_ID}:/mnt/mmcp1/"
+
+# Starting logging the UARTs
+cat "/dev/Nexus-FTDI-${NEXUS_ID}-FPGA-UART" > uart.sc.log &
+SC_UART_PID=$!
+cat "/dev/Nexus-CP210-FPGA-UART-${NEXUS_ID}" > uart.smc.log &
+SMC_UART_PID=$!
+
+# Logging cleanup for when the script exits
+trap 'kill -INT ${SC_UART_PID} ; kill -INT ${SMC_UART_PID} ; \
+ sleep 10 ; \
+ kill -KILL ${SC_UART_PID} ; kill -KILL ${SMC_UART_PID}' 0
+
+# 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"
+
+OT_TOOL_PATH=`command -v opentitantool`
+NEXUS_JSON_DIR=`dirname "${OT_TOOL_PATH}"`
+NEXUS_JSON_PATH="${NEXUS_JSON_DIR}/nexus.json"
+
+opentitantool \
+ --conf "${NEXUS_JSON_PATH}" \
+ --interface nexus \
+ --usb-serial "Nexus-FTDI-${NEXUS_ID}" \
+ bootstrap "${BINARY_PATH}"
+
+timeout 300 bash -c 'until grep -q PASS! uart.sc.log ; do
+ echo "Expected log is missing. Wait up to 300s."
+ sleep 10
+ done'
+
+cat -n uart.sc.log
+cat -n uart.smc.log
+
+grep -q "PASS!" uart.sc.log
+exit $?
diff --git a/preupload-hooks/run_buildifier.sh b/preupload-hooks/run_buildifier.sh
index 56f9003..6051ba5 100755
--- a/preupload-hooks/run_buildifier.sh
+++ b/preupload-hooks/run_buildifier.sh
@@ -65,8 +65,6 @@
# Run buildifier formatter and linter. The diff is compared with git-diff.
"${CACHE}/buildifier/buildifier" "${files[@]}" || (echo "buildifier error" && exit 1)
-"${CACHE}/buildifier/buildifier" -lint=warn -warnings=-module-docstring,-function-docstring "${files[@]}"
-
git diff --exit-code || (echo """
Please amend the commit with: