configs: Add --exit-on-uart-eot flag to Arm baremetal.py config
Many benchmarks signal their termination by writing an EOT character
to the UART. This change adds an option to the Arm `baremetal.py`
example script to exit the simulation when an EOT character is
detected on any of the UARTs.
Change-Id: Ibfce9800c47090714258dbdbc5d6cee5ee6fb952
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/69688
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/configs/example/arm/baremetal.py b/configs/example/arm/baremetal.py
index ab24fd3..8ffd2b4 100644
--- a/configs/example/arm/baremetal.py
+++ b/configs/example/arm/baremetal.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2017,2019-2022 Arm Limited
+# Copyright (c) 2016-2017,2019-2023 Arm Limited
# All rights reserved.
#
# The license below extends only to copyright in the software and shall
@@ -157,6 +157,10 @@
workload_class = workloads.workload_list.get(args.workload)
system.workload = workload_class(object_file, system)
+ if args.exit_on_uart_eot:
+ for uart in system.realview.uart:
+ uart.end_on_eot = True
+
return system
@@ -254,6 +258,12 @@
help="Destination for the Tarmac trace output. [Default: stdoutput]",
)
parser.add_argument(
+ "--exit-on-uart-eot",
+ action="store_true",
+ help="Exit simulation if any of the UARTs receive an EOT. Many "
+ "workloads signal termination by sending an EOT character.",
+ )
+ parser.add_argument(
"--dtb-gen",
action="store_true",
help="Doesn't run simulation, it generates a DTB only",