fix: ensure non-standard FVP UART port schemes are respected
Change-Id: I75acd7c1b1cfc7a1e6c4fd22494a351d4ae7f65b
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/run_config/fvp-linux.sgi b/run_config/fvp-linux.sgi
index cdc1104..31c1544 100644
--- a/run_config/fvp-linux.sgi
+++ b/run_config/fvp-linux.sgi
@@ -17,8 +17,12 @@
}
generate_lava_job_template() {
- uart="0" file="trusted-firmware-sgi.exp" track_expect
- uart="1" timeout="1800" set_primary="1" file="linux-busybox-sgi.exp" track_expect
+ uart="0" port="5002" file="trusted-firmware-sgi.exp" track_expect
+ uart="1" port="5003" file="linux-busybox-sgi.exp" timeout="1800" \
+ set_primary="1" track_expect
+
+ set_uart_port "${archive:?}" 2 5000
+ set_uart_port "${archive:?}" 3 5001
payload_type="linux" gen_fvp_yaml_template
}
diff --git a/run_config/fvp-linux.tc b/run_config/fvp-linux.tc
index b309a32..c4109c4 100644
--- a/run_config/fvp-linux.tc
+++ b/run_config/fvp-linux.tc
@@ -110,8 +110,12 @@
generate_lava_job_template() {
# Hold scp terminal_s0
- uart="0" file="hold_uart.exp" track_expect
- uart="1" set_primary="1" file="linux-rd-busybox.exp" track_expect
+ uart="0" port="5002" file="hold_uart.exp" track_expect
+ uart="1" port="5003" file="linux-rd-busybox.exp" set_primary="1" \
+ track_expect
+
+ set_uart_port "${archive:?}" 2 5000
+ set_uart_port "${archive:?}" 3 5001
payload_type="linux" gen_fvp_yaml_template
}
diff --git a/utils.sh b/utils.sh
index cbf6805..ead6ce7 100644
--- a/utils.sh
+++ b/utils.sh
@@ -366,6 +366,26 @@
get_uart_env "${1:?}" "${2:?}" port "${3-${default}}"
}
+# Set a UART environment variable.
+#
+# UART environment variables are the UART-specific environment variables
+# configured by the CI's test configuration.
+#
+# Usage: set_uart_env <archive> <uart> <variable> <value>
+set_uart_env() {
+ local path="$(get_uart_env_path "${1:?}" "${2:?}")"
+
+ mkdir -p "${path}" && \
+ echo "${4:?}" > "${path}/${3:?}"
+}
+
+# Set the FVP port for a given UART.
+#
+# Usage: set_uart_port <archive> <uart> <port>
+set_uart_port() {
+ set_uart_env "${1:?}" "${2:?}" port "${3:?}"
+}
+
# Make a temporary directory/file insdie workspace, so that it doesn't need to
# be cleaned up. Jenkins is setup to clean up workspace before a job runs.
mktempdir() {