On Wed, Jun 3, 2026 at 5:02 PM Joel Stanley <[email protected]> wrote:
>
> From: Nicholas Piggin <[email protected]>
>
> Add OpenSBI and Linux boot tests for the tt-atlantis machine. Based on
> tests/functional/riscv64/test_sifive_u.py.
>
> Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
> Signed-off-by: Nicholas Piggin <[email protected]>
> Signed-off-by: Joel Stanley <[email protected]>

Acked-by: Alistair Francis <[email protected]>

Alistair

> ---
>  MAINTAINERS                                  |  1 +
>  tests/functional/riscv64/meson.build         |  1 +
>  tests/functional/riscv64/test_opensbi.py     |  4 ++
>  tests/functional/riscv64/test_tt_atlantis.py | 57 ++++++++++++++++++++
>  4 files changed, 63 insertions(+)
>  create mode 100755 tests/functional/riscv64/test_tt_atlantis.py
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index e52aa769c9ae..f4b7e7fd43a6 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1793,6 +1793,7 @@ S: Supported
>  F: docs/system/riscv/tt_*.rst
>  F: hw/riscv/tt_*.c
>  F: include/hw/riscv/tt_*.h
> +F: tests/functional/riscv64/test_tt_*.py
>
>  AMD Microblaze-V Generic Board
>  M: Sai Pavan Boddu <[email protected]>
> diff --git a/tests/functional/riscv64/meson.build 
> b/tests/functional/riscv64/meson.build
> index b996c89d7df9..c4456fabd757 100644
> --- a/tests/functional/riscv64/meson.build
> +++ b/tests/functional/riscv64/meson.build
> @@ -13,5 +13,6 @@ tests_riscv64_system_quick = [
>  tests_riscv64_system_thorough = [
>    'boston',
>    'sifive_u',
> +  'tt_atlantis',
>    'tuxrun',
>  ]
> diff --git a/tests/functional/riscv64/test_opensbi.py 
> b/tests/functional/riscv64/test_opensbi.py
> index d077e40f4278..0f8beb7e7a8c 100755
> --- a/tests/functional/riscv64/test_opensbi.py
> +++ b/tests/functional/riscv64/test_opensbi.py
> @@ -28,6 +28,10 @@ def test_riscv_sifive_u(self):
>          self.set_machine('sifive_u')
>          self.boot_opensbi()
>
> +    def test_riscv_tt_atlantis(self):
> +        self.set_machine('tt-atlantis')
> +        self.boot_opensbi()
> +
>      def test_riscv_virt(self):
>          self.set_machine('virt')
>          self.boot_opensbi()
> diff --git a/tests/functional/riscv64/test_tt_atlantis.py 
> b/tests/functional/riscv64/test_tt_atlantis.py
> new file mode 100755
> index 000000000000..48abd5cd27c2
> --- /dev/null
> +++ b/tests/functional/riscv64/test_tt_atlantis.py
> @@ -0,0 +1,57 @@
> +#!/usr/bin/env python3
> +#
> +# Functional test that boots a Linux kernel on a Tenstorrent Atlantis machine
> +# and checks the console
> +#
> +# Copyright (c) Linaro Ltd.
> +# Copyright 2026 Tenstorrent
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import Asset, LinuxKernelTest
> +
> +
> +class TTAtlantis(LinuxKernelTest):
> +
> +    ASSET_KERNEL = Asset(
> +        'https://storage.tuxboot.com/kernels/6.11.9/riscv64/Image',
> +        '174f8bb87f08961e54fa3fcd954a8e31f4645f6d6af4dd43983d5e9841490fb0')
> +    ASSET_ROOTFS = Asset(
> +        ('https://github.com/groeck/linux-build-test/raw/'
> +         '9819da19e6eef291686fdd7b029ea00e764dc62f/rootfs/riscv64/'
> +         'rootfs.ext2.gz'),
> +        'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b')
> +
> +    def do_test_riscv64_tt_atlantis(self, connect_disk):
> +        self.set_machine('tt-atlantis')
> +        kernel_path = self.ASSET_KERNEL.fetch()
> +        rootfs_path = self.uncompress(self.ASSET_ROOTFS)
> +
> +        self.vm.set_console()
> +        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 
> 'earlycon=sbi '
> +
> +        if connect_disk:
> +            kernel_command_line += 'root=/dev/vda panic=-1 noreboot rootwait 
> '
> +            self.vm.add_args('-device',
> +                             
> 'virtio-blk,drive=drive0,serial=0x1234,bus=pcie.0')
> +            self.vm.add_args('-drive',
> +                             
> f'file={rootfs_path},if=none,id=drive0,format=raw')
> +            pattern = 'Boot successful.'
> +        else:
> +            kernel_command_line += 'panic=0 noreboot '
> +            pattern = 'Cannot open root device'
> +
> +        self.vm.add_args('-kernel', kernel_path,
> +                         '-append', kernel_command_line,
> +                         '-no-reboot')
> +
> +        self.vm.launch()
> +        self.wait_for_console_pattern(pattern)
> +
> +    def test_riscv64_tt_atlantis(self):
> +        # tt-atlantis machine has no PCI host yet, so no disk
> +        self.do_test_riscv64_tt_atlantis(False)
> +
> +
> +if __name__ == '__main__':
> +    LinuxKernelTest.main()
> --
> 2.47.3
>
>

Reply via email to