1 # Functional test that boots a Linux kernel and checks the console
3 # Copyright (c) 2022 Linaro Ltd.
6 # Alex Bennée <alex.bennee@linaro.org>
8 # SPDX-License-Identifier: GPL-2.0-or-later
12 from avocado_qemu
import QemuSystemTest
13 from avocado_qemu
import wait_for_console_pattern
14 from avocado_qemu
import exec_command
16 class Aarch64VirtMachine(QemuSystemTest
):
17 KERNEL_COMMON_COMMAND_LINE
= 'printk.time=0 '
19 def wait_for_console_pattern(self
, success_message
, vm
=None):
20 wait_for_console_pattern(self
, success_message
,
21 failure_message
='Kernel panic - not syncing',
24 def test_aarch64_virt(self
):
26 :avocado: tags=arch:aarch64
27 :avocado: tags=machine:virt
28 :avocado: tags=accel:tcg
29 :avocado: tags=cpu:max
31 kernel_url
= ('https://fileserver.linaro.org/s/'
32 'z6B2ARM7DQT3HWN/download')
34 kernel_hash
= 'ed11daab50c151dde0e1e9c9cb8b2d9bd3215347'
35 kernel_path
= self
.fetch_asset(kernel_url
, asset_hash
=kernel_hash
)
38 kernel_command_line
= (self
.KERNEL_COMMON_COMMAND_LINE
+
40 self
.require_accelerator("tcg")
41 self
.vm
.add_args('-cpu', 'max,pauth-impdef=on',
43 '-kernel', kernel_path
,
44 '-append', kernel_command_line
)
46 self
.wait_for_console_pattern('Welcome to Buildroot')
48 exec_command(self
, 'root')
50 exec_command(self
, 'cat /proc/self/maps')