mirror of
https://github.com/qemu/qemu.git
synced 2025-07-24 10:00:21 +00:00

The 2023 edition of the QEMU advent calendar featured an image that we can use to test whether the lm3s6965evb machine is basically still working. And for the lm3s811evb there is a small test kernel on github which can be used to check its UART. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-id: 20250519170242.520805-1-thuth@redhat.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
49 lines
1.6 KiB
Python
Executable File
49 lines
1.6 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Functional test that checks the serial console of the stellaris machines
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
from qemu_test import QemuSystemTest, Asset, exec_command_and_wait_for_pattern
|
|
from qemu_test import wait_for_console_pattern
|
|
|
|
|
|
class StellarisMachine(QemuSystemTest):
|
|
|
|
ASSET_DAY22 = Asset(
|
|
'https://www.qemu-advent-calendar.org/2023/download/day22.tar.gz',
|
|
'ae3a63ef4b7a22c21bfc7fc0d85e402fe95e223308ed23ac854405016431ff51')
|
|
|
|
def test_lm3s6965evb(self):
|
|
self.set_machine('lm3s6965evb')
|
|
kernel_path = self.archive_extract(self.ASSET_DAY22,
|
|
member='day22/day22.bin')
|
|
self.vm.set_console()
|
|
self.vm.add_args('-kernel', kernel_path)
|
|
self.vm.launch()
|
|
|
|
wait_for_console_pattern(self, 'In a one horse open')
|
|
|
|
ASSET_NOTMAIN = Asset(
|
|
'https://github.com/Ahelion/QemuArmM4FDemoSw/raw/master/build/notmain.bin',
|
|
'6ceda031aa081a420fca2fca9e137fa681d6e3820d820ad1917736cb265e611a')
|
|
|
|
def test_lm3s811evb(self):
|
|
self.set_machine('lm3s811evb')
|
|
kernel_path = self.ASSET_NOTMAIN.fetch()
|
|
|
|
self.vm.set_console()
|
|
self.vm.add_args('-cpu', 'cortex-m4')
|
|
self.vm.add_args('-kernel', kernel_path)
|
|
self.vm.launch()
|
|
|
|
# The test kernel emits an initial '!' and then waits for input.
|
|
# For each character that we send it responds with a certain
|
|
# other ASCII character.
|
|
wait_for_console_pattern(self, '!')
|
|
exec_command_and_wait_for_pattern(self, '789', 'cdf')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
QemuSystemTest.main()
|