Commit 6c87b8bbaa for qemu.org
commit 6c87b8bbaaf69e229d6bb344da9e23f686fae6c5
Author: Brian Cain <brian.cain@oss.qualcomm.com>
Date: Mon Aug 24 08:58:22 2026 -0700
python/machine: support routing semihosting output to the test console
The hexagon semihosting systests will wait for output on the semihosting
console.
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index bfb59d4c0b..3937506555 100644
--- a/python/qemu/machine/machine.py
+++ b/python/qemu/machine/machine.py
@@ -186,6 +186,7 @@ def __init__(self,
self._console_index = 0
self._console_set = False
self._console_device_type: Optional[str] = None
+ self._console_semihosting = False
self._console_socket: Optional[socket.socket] = None
self._console_file: Optional[socket.SocketIO] = None
self._remove_files: List[str] = []
@@ -321,7 +322,10 @@ def _console_args(self, interactive: bool = False) -> List[str]:
fd = self._cons_sock_pair[0].fileno()
chardev = f"socket,id=console,fd={fd}"
args.extend(['-chardev', chardev])
- if self._console_device_type is None:
+ if self._console_semihosting:
+ args.extend(['-semihosting-config',
+ 'enable=on,chardev=console'])
+ elif self._console_device_type is None:
args.extend(['-serial', 'chardev:console'])
else:
device = '%s,chardev=console' % self._console_device_type
@@ -892,7 +896,8 @@ def set_machine(self, machine_type: str) -> None:
def set_console(self,
device_type: Optional[str] = None,
- console_index: int = 0) -> None:
+ console_index: int = 0,
+ semihosting: bool = False) -> None:
"""
Sets the device type for a console device
@@ -921,6 +926,7 @@ def set_console(self,
self._console_set = True
self._console_device_type = device_type
self._console_index = console_index
+ self._console_semihosting = semihosting
@property
def console_socket(self) -> socket.socket: