[{"id":3679680,"web_url":"http://patchwork.ozlabs.org/comment/3679680/","msgid":"<87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>","list_archive_url":null,"date":"2026-04-21T06:05:48","subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/people/85046/","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"content":"On 21/4/26 07:31, Joel Stanley wrote:\n> From: Nicholas Piggin <npiggin@gmail.com>\n> \n> Add OpenSBI and Linux boot tests for the tt-atlantis machine. Based on\n> tests/functional/riscv64/test_sifive_u.py.\n> \n> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>\n> Signed-off-by: Joel Stanley <joel@jms.id.au>\n> ---\n> v3:\n>   - Fix path to test files\n>   - Dedupe command line root argument\n>   - Remove unused import\n> ---\n>   MAINTAINERS                                  |  1 +\n>   tests/functional/riscv64/meson.build         |  1 +\n>   tests/functional/riscv64/test_opensbi.py     |  4 ++\n>   tests/functional/riscv64/test_tt_atlantis.py | 63 ++++++++++++++++++++\n>   4 files changed, 69 insertions(+)\n>   create mode 100755 tests/functional/riscv64/test_tt_atlantis.py\n\n\n> diff --git a/tests/functional/riscv64/test_tt_atlantis.py b/tests/functional/riscv64/test_tt_atlantis.py\n> new file mode 100755\n> index 000000000000..f6f4b7ceec34\n> --- /dev/null\n> +++ b/tests/functional/riscv64/test_tt_atlantis.py\n> @@ -0,0 +1,63 @@\n> +#!/usr/bin/env python3\n> +#\n> +# Functional test that boots a Linux kernel on a Tenstorrent Atlantis machine\n> +# and checks the console\n> +#\n> +# Copyright (c) Linaro Ltd.\n> +# Copyright 2026 Tenstorrent\n> +#\n> +# SPDX-License-Identifier: GPL-2.0-or-later\n> +\n> +import os\n> +\n> +from qemu_test import Asset, LinuxKernelTest\n> +\n> +\n> +class TTAtlantis(LinuxKernelTest):\n> +\n> +    ASSET_KERNEL = Asset(\n> +        'https://storage.tuxboot.com/kernels/6.11.9/riscv64/Image',\n> +        '174f8bb87f08961e54fa3fcd954a8e31f4645f6d6af4dd43983d5e9841490fb0')\n> +    ASSET_ROOTFS = Asset(\n> +        ('https://github.com/groeck/linux-build-test/raw/'\n> +         '9819da19e6eef291686fdd7b029ea00e764dc62f/rootfs/riscv64/'\n> +         'rootfs.ext2.gz'),\n> +        'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b')\n> +\n> +    def do_test_riscv64_tt_atlantis(self, connect_disk):\n> +        self.set_machine('tt-atlantis')\n> +        kernel_path = self.ASSET_KERNEL.fetch()\n> +        rootfs_path = self.uncompress(self.ASSET_ROOTFS)\n> +\n> +        self.vm.set_console()\n> +        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon=sbi '\n> +\n> +        if connect_disk:\n> +            kernel_command_line += 'root=/dev/vda panic=-1 noreboot rootwait '\n> +            self.vm.add_args('-device',\n> +                             'virtio-blk,drive=drive0,serial=0x1234,bus=pcie.0')\n> +            self.vm.add_args('-drive',\n> +                             f'file={rootfs_path},if=none,id=drive0,format=raw')\n> +            pattern = 'Boot successful.'\n\nShould we run a full shutdown to test up to the halting payload\n(patch #4)?\n\n> +        else:\n> +            kernel_command_line += 'panic=0 noreboot '\n> +            pattern = 'Cannot open root device'\n> +\n> +        self.vm.add_args('-kernel', kernel_path,\n> +                         '-append', kernel_command_line,\n> +                         '-no-reboot')\n> +\n> +        self.vm.launch()\n> +        self.wait_for_console_pattern(pattern)\n> +\n> +        os.remove(rootfs_path)\n\nSince you call uncompress() with implicit @target=None argument,\nscratch_file() is used:\n\n         Construct a path for accessing/creating a scratch file\n         located relative to a temporary directory dedicated to\n         this test case. The directory and its contents will be\n         purged upon completion of the test.\n\nSo IIUC no need to remove manually. Do you have an issue with it\nto remove it manually?\n\nOtherwise,\nReviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n\n> +\n> +    def test_riscv64_tt_atlantis(self):\n> +        self.do_test_riscv64_tt_atlantis(False)\n> +\n> +    def test_riscv64_tt_atlantis_disk(self):\n> +        self.do_test_riscv64_tt_atlantis(True)\n> +\n> +\n> +if __name__ == '__main__':\n> +    LinuxKernelTest.main()","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=vXhFJ/JH;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0Bgz2M7nz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 16:06:37 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wF4FB-0008E9-U8; Tue, 21 Apr 2026 02:05:57 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wF4F9-00088i-G6\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 02:05:55 -0400","from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wF4F6-0007GF-57\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 02:05:54 -0400","by mail-wm1-x32f.google.com with SMTP id\n 5b1f17b1804b1-488b0e1b870so60286375e9.2\n for <qemu-devel@nongnu.org>; Mon, 20 Apr 2026 23:05:51 -0700 (PDT)","from [192.168.69.228] (88-187-86-199.subs.proxad.net.\n [88.187.86.199]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fc17f642sm314040795e9.5.2026.04.20.23.05.48\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Mon, 20 Apr 2026 23:05:49 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1776751550; x=1777356350; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=OtKY0PIm2HMVW6Fw0IHLRhBr7oEOdI6Y19waM5q9yes=;\n b=vXhFJ/JHPWIK9OtSJWljglTOmAiCUMaWRBahV8gVyZQPEkGdj63Hv0aOLbkyqdMpHE\n Mk/oM7ASUQx+FeQhxPsGtgv3tgZrvAohFu6UuTIuuhWAyIDalxZ2CHC9ZgKbMAQoxBez\n l63v8PwNhrRpfvhXYoXckKy2SkTpgF3aY2HYnkWGFRarr4epzWEqJHMrKw2GQHpc0eQm\n HS/d3uodZGtgbNaR92ODQo9iHPXHpMXBvycijz1+J/GoAuXJaSpTUat01AR+RZ+/hd9e\n 5yqRGuaFgFAwEWgx7gxBi3zNUa3tf1njr/p0/LoBllzAQGIqF/HUH/ILcOIJliXWeh3g\n 5IBw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776751550; x=1777356350;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=OtKY0PIm2HMVW6Fw0IHLRhBr7oEOdI6Y19waM5q9yes=;\n b=b6AlQY83klLCoIEvL8RKkCl081jJYQ4OEdEEIumEjNqwIQUXrYaMxWNEKkzjP/ef3n\n Vi2jST+9tF7OjEbnfWhr3oxlGhupIgT2Jnekmo8faJM+oFX2ZtgHg1ZdzxfUAHI5xgsi\n Xf5Rxz1kikBr30TkrFGGIRMx4vNrb2Mqo+JlVfv8oMK+6ee0akUJSQ9iICLq8yb13rDp\n 3KkLRew7gk4r4Nkb6hkK3DsoS0CGpyR/HEP+9WkB+vnDXMG+RPoTS1tlpJ1Zhi/YMfve\n vdSnsbzhyJFgI/5t69h27PNHTdXRDqZ+rWFPmwNuHvL+j6k/kLHbXxxQEiXVqNANm1IF\n R26w==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9VFZ6Cmr8pXpOHagvqD1FXzbSP5IcK0mIldAX6wV3fB+UqzGveiZOWS9VQab3dNZc8DQ9vwvzC3mz/@nongnu.org","X-Gm-Message-State":"AOJu0YyhSXskes/HjeYDwII1LXvgNVv7zqtZCQR0+yBhezFKd5uNPt6+\n EtM99DowZ4xGmTKf5k31vd7sPOKmBFEFD+qtS4xHveJyArxD7SYrS61qc9FAS1HDSD0=","X-Gm-Gg":"AeBDieutdGRbTCQcjnkEwuKINmhhlUSXP6hhi770qlMNlPeX2miSmB/aINxRVIfXWrS\n TVigUBYM5blMzUGHisjn6yMoFJf5RmxDesanc0UU/Kyz34p8CdlI8flEhL42+XXMP9DYi8KLq92\n TpkU5JnZbNKw/Hc6V7OMZSU5lUHaFOa+EXc+sQ/nBJCmBhY6TVVLZWF1cmYNF1pMbptFb/jK3zu\n +nQOL+YjH8DSKlpovweDy/lBFjIl+W43sCbzOnHLCTV1qzZLqiPQkd/8qFbimGjSYYFiaO/jhxI\n 1iZbzTpBBxe1sJEe8mcLoHNhCXAjGrpEMbDTVNr+Cvx7C7VMZ4AuLIri5iu/e9mdumhVG66ImDA\n cTpuwA18cl3tNpfYApydE0bdPjeuh6rHiVNnboD8gCQkHmfEey0c55QCJi7FKDWGCqN2TP7bPeT\n htXVtB0H2FPjlr+5ooKz3/g/r95qGQg8EGkyfMtPKteeG/m0REj6LAcIHhHFOE+kIRHeupTGq/Q\n EhQ","X-Received":"by 2002:a05:600c:2e42:b0:489:1fa4:50c6 with SMTP id\n 5b1f17b1804b1-4891fa451bamr41848125e9.20.1776751550085;\n Mon, 20 Apr 2026 23:05:50 -0700 (PDT)","Message-ID":"<87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>","Date":"Tue, 21 Apr 2026 08:05:48 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","Content-Language":"en-US","To":"Joel Stanley <joel@jms.id.au>,\n Alistair Francis <alistair.francis@wdc.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Cc":"Nicholas Piggin <npiggin@gmail.com>, Michael Ellerman <mpe@kernel.org>,\n Joel Stanley <jms@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Thomas Huth <thuth@redhat.com>","References":"<20260421053140.752059-1-joel@jms.id.au>\n <20260421053140.752059-12-joel@jms.id.au>","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","In-Reply-To":"<20260421053140.752059-12-joel@jms.id.au>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::32f;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3679776,"web_url":"http://patchwork.ozlabs.org/comment/3679776/","msgid":"<aedEGxGq1qKhGI5d@lima-default>","list_archive_url":null,"date":"2026-04-21T09:45:30","subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","submitter":{"id":69518,"url":"http://patchwork.ozlabs.org/api/people/69518/","name":"Nicholas Piggin","email":"npiggin@gmail.com"},"content":"On Tue, Apr 21, 2026 at 08:05:48AM +0200, Philippe Mathieu-Daudé wrote:\n> On 21/4/26 07:31, Joel Stanley wrote:\n> > From: Nicholas Piggin <npiggin@gmail.com>\n> > \n> > Add OpenSBI and Linux boot tests for the tt-atlantis machine. Based on\n> > tests/functional/riscv64/test_sifive_u.py.\n> > \n> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>\n> > Signed-off-by: Joel Stanley <joel@jms.id.au>\n> > ---\n> > v3:\n> >   - Fix path to test files\n> >   - Dedupe command line root argument\n> >   - Remove unused import\n> > ---\n> >   MAINTAINERS                                  |  1 +\n> >   tests/functional/riscv64/meson.build         |  1 +\n> >   tests/functional/riscv64/test_opensbi.py     |  4 ++\n> >   tests/functional/riscv64/test_tt_atlantis.py | 63 ++++++++++++++++++++\n> >   4 files changed, 69 insertions(+)\n> >   create mode 100755 tests/functional/riscv64/test_tt_atlantis.py\n> \n> \n> > diff --git a/tests/functional/riscv64/test_tt_atlantis.py b/tests/functional/riscv64/test_tt_atlantis.py\n> > new file mode 100755\n> > index 000000000000..f6f4b7ceec34\n> > --- /dev/null\n> > +++ b/tests/functional/riscv64/test_tt_atlantis.py\n> > @@ -0,0 +1,63 @@\n> > +#!/usr/bin/env python3\n> > +#\n> > +# Functional test that boots a Linux kernel on a Tenstorrent Atlantis machine\n> > +# and checks the console\n> > +#\n> > +# Copyright (c) Linaro Ltd.\n> > +# Copyright 2026 Tenstorrent\n> > +#\n> > +# SPDX-License-Identifier: GPL-2.0-or-later\n> > +\n> > +import os\n> > +\n> > +from qemu_test import Asset, LinuxKernelTest\n> > +\n> > +\n> > +class TTAtlantis(LinuxKernelTest):\n> > +\n> > +    ASSET_KERNEL = Asset(\n> > +        'https://storage.tuxboot.com/kernels/6.11.9/riscv64/Image',\n> > +        '174f8bb87f08961e54fa3fcd954a8e31f4645f6d6af4dd43983d5e9841490fb0')\n> > +    ASSET_ROOTFS = Asset(\n> > +        ('https://github.com/groeck/linux-build-test/raw/'\n> > +         '9819da19e6eef291686fdd7b029ea00e764dc62f/rootfs/riscv64/'\n> > +         'rootfs.ext2.gz'),\n> > +        'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b')\n> > +\n> > +    def do_test_riscv64_tt_atlantis(self, connect_disk):\n> > +        self.set_machine('tt-atlantis')\n> > +        kernel_path = self.ASSET_KERNEL.fetch()\n> > +        rootfs_path = self.uncompress(self.ASSET_ROOTFS)\n> > +\n> > +        self.vm.set_console()\n> > +        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon=sbi '\n> > +\n> > +        if connect_disk:\n> > +            kernel_command_line += 'root=/dev/vda panic=-1 noreboot rootwait '\n> > +            self.vm.add_args('-device',\n> > +                             'virtio-blk,drive=drive0,serial=0x1234,bus=pcie.0')\n> > +            self.vm.add_args('-drive',\n> > +                             f'file={rootfs_path},if=none,id=drive0,format=raw')\n> > +            pattern = 'Boot successful.'\n> \n> Should we run a full shutdown to test up to the halting payload\n> (patch #4)?\n\nHalting payload is only used when there is no kernel given, not sure if\nit's good cost/benefit to test that, it's just in case user screw up\nthey don't get blank screen apparent hang.\n\nA shutdown test all the way to machine halt would be good, although I\ndon't know if we model that properly in the atlantis machine yet. Maybe\nsomething to expand on later.\n\n> \n> > +        else:\n> > +            kernel_command_line += 'panic=0 noreboot '\n> > +            pattern = 'Cannot open root device'\n> > +\n> > +        self.vm.add_args('-kernel', kernel_path,\n> > +                         '-append', kernel_command_line,\n> > +                         '-no-reboot')\n> > +\n> > +        self.vm.launch()\n> > +        self.wait_for_console_pattern(pattern)\n> > +\n> > +        os.remove(rootfs_path)\n> \n> Since you call uncompress() with implicit @target=None argument,\n> scratch_file() is used:\n> \n>         Construct a path for accessing/creating a scratch file\n>         located relative to a temporary directory dedicated to\n>         this test case. The directory and its contents will be\n>         purged upon completion of the test.\n> \n> So IIUC no need to remove manually. Do you have an issue with it\n> to remove it manually?\n\nNo, I just copied it from tests/functional/riscv64/test_sifive_u.py :)\nand looks like same pattern exists in a couple of other tests as well.\n\n> \n> Otherwise,\n> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n\nThanks,\nNick\n\n> \n> > +\n> > +    def test_riscv64_tt_atlantis(self):\n> > +        self.do_test_riscv64_tt_atlantis(False)\n> > +\n> > +    def test_riscv64_tt_atlantis_disk(self):\n> > +        self.do_test_riscv64_tt_atlantis(True)\n> > +\n> > +\n> > +if __name__ == '__main__':\n> > +    LinuxKernelTest.main()\n> \n>","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=XSySg0Rm;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0HYN3TCQz1yGt\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 19:46:14 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wF7fn-00048D-7m; Tue, 21 Apr 2026 05:45:39 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <npiggin@gmail.com>) id 1wF7fl-00047A-Ah\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 05:45:37 -0400","from mail-pg1-x535.google.com ([2607:f8b0:4864:20::535])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <npiggin@gmail.com>) id 1wF7fj-0001ja-Gn\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 05:45:37 -0400","by mail-pg1-x535.google.com with SMTP id\n 41be03b00d2f7-c70fb6aa323so1360231a12.3\n for <qemu-devel@nongnu.org>; Tue, 21 Apr 2026 02:45:35 -0700 (PDT)","from localhost (203-214-45-63.dyn.iinet.net.au. [203.214.45.63])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82f8e981a0asm13845521b3a.3.2026.04.21.02.45.32\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 02:45:33 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776764734; x=1777369534; darn=nongnu.org;\n h=in-reply-to:content-transfer-encoding:content-disposition\n :mime-version:references:message-id:subject:cc:to:from:date:from:to\n :cc:subject:date:message-id:reply-to;\n bh=1jVL1LNffz2XuEwtsS228+wq1RvyVcmr3CNu77pcIF4=;\n b=XSySg0RmkkG2nCy6iKPIlqCqUHFxYnji6f1x4IiH3vBP5Hitih9IjUuCch7/3W+q9r\n 9QGTphV0l1ZxFeaCtVb93KLhTT15z6v4fGYvY+GfI6CzTSo0Vj2xBxgCeLB0WOIjmmMl\n YQTQCqKboLLO6QjqrOmafpJSC8uMImsKaqSCfmHJpioFFUhm57zoTXk3wvIe7nCM6hbz\n oi58VC/EURBGv8h7uC/FwEwn9Uc7RQJ4hCyTg+1DmRl0YPE/o46iXNrghibQQkgfJGVW\n Ko9jmwDk7kdqTezwuDvmfbedEPH9FT+GvmLv0Mr3MWkTS3Qs8VnO7LVanogVnaTrTIsL\n wWpw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776764734; x=1777369534;\n h=in-reply-to:content-transfer-encoding:content-disposition\n :mime-version:references:message-id:subject:cc:to:from:date:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=1jVL1LNffz2XuEwtsS228+wq1RvyVcmr3CNu77pcIF4=;\n b=Loal1bvKhLA9jlgUFjLmOchU4PKWaDWpZb+MpUTJ8gAJQahSQ5Mr6eZ8C9jMlMyod8\n DzvzxyZNtyvilXJzaRxamI4yX2tCefuAjsqSYiBXxEe2uiBWaUFgpeAfgVzWXV3hpbGT\n MclpRoSjZ3A4sM6gBvCSofF0hXZUQi9r+3KN94Hwf46NU0XKyLpzy939bpIQml5LnoLx\n j5msFCKMm5YvePvkOczxZbr6uio4DesoREDYpAOWCjfrj+shoC1FpGRsNr/Lt01voEZ/\n utPLKotAvaXgbmWq8btT2M9wX7GztWv73I9/iVEtd46QWY5hLR+XPTAZ6TMGS0Ghm6gF\n CP8g==","X-Forwarded-Encrypted":"i=1;\n AFNElJ/3+NWjX6qYxrRs/cBat8e2AaNGdJgnnvczrTq+71bANHPI8FVrR/LzgA7zAhY7BWQEwcIVntMa9I8h@nongnu.org","X-Gm-Message-State":"AOJu0YyUTIVlymWkUxJlQUkkcAAX/Ahc1hA5cJ6cRZC0z3JtAIc2D/K8\n oRevSGL2n6uCzLThFshUwkpnVDbgoSnMT5IlWDd/lYkgfAuktU/0cob+","X-Gm-Gg":"AeBDieuRgckpExwJIkzPw/nak57YDeO8FoHcmczA+sl5ErZWEanFAE+r6OrcqZXSxOw\n 7TwcE4OESIIncp651Rjv5eeitzLcnKOs/8A5cTDeYykYrMj0IxG5jdXw6WWL5abW7UVLyYFPkU3\n Pp9qU5OiVNNRyhU6I4R/CqKzSWEqxkJwOYGPZn7ZFgVG/bRRBlEIcqKyWBd+OCydNwdLwvJJmfq\n eyaIuO2SP+whxLv27Bidl+j7Yc7NFkKnYJq8QRnx9XXXlCW9jbHCfT4asD19E5rjtTlrVRCbx96\n rUaHLI/wVyhW/8mCJHVQcKRabXgSjZ5xQrpiJn/a04pFDHJ6bvs3Q6QCTgS3EnDZZzmtqwt10bc\n BB8DtobFVqwX/d4YcbAZOQ1ghKqeibQ4EzudShBwDi9IRh/z8Um5xNr3lsSyex9SB5ZI1X8Zo6n\n 7N6Wxo89zup+KbFjCwlnUY5unwI6BBVRosGAtBvbWMQdE2dVs4aZy8ASITvgE/u59jDZ6dqfCUI\n g==","X-Received":"by 2002:aa7:8892:0:b0:82a:190b:2225 with SMTP id\n d2e1a72fcca58-82f8c8bb677mr18417373b3a.31.1776764733824;\n Tue, 21 Apr 2026 02:45:33 -0700 (PDT)","Date":"Tue, 21 Apr 2026 19:45:30 +1000","From":"Nicholas Piggin <npiggin@gmail.com>","To":"Philippe =?utf-8?q?Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Cc":"Joel Stanley <joel@jms.id.au>,\n Alistair Francis <alistair.francis@wdc.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Michael Ellerman <mpe@kernel.org>, Joel Stanley <jms@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Thomas Huth <thuth@redhat.com>","Subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","Message-ID":"<aedEGxGq1qKhGI5d@lima-default>","References":"<20260421053140.752059-1-joel@jms.id.au>\n <20260421053140.752059-12-joel@jms.id.au>\n <87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=iso-8859-1","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>","Received-SPF":"pass client-ip=2607:f8b0:4864:20::535;\n envelope-from=npiggin@gmail.com; helo=mail-pg1-x535.google.com","X-Spam_score_int":"-10","X-Spam_score":"-1.1","X-Spam_bar":"-","X-Spam_report":"(-1.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_GMAIL_RCVD=1,\n FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=no autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3679949,"web_url":"http://patchwork.ozlabs.org/comment/3679949/","msgid":"<c0fbd10c-9e6b-4d6d-8c5c-92645d2746d9@linaro.org>","list_archive_url":null,"date":"2026-04-21T15:35:21","subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","submitter":{"id":85046,"url":"http://patchwork.ozlabs.org/api/people/85046/","name":"Philippe Mathieu-Daudé","email":"philmd@linaro.org"},"content":"On 21/4/26 11:45, Nicholas Piggin wrote:\n> On Tue, Apr 21, 2026 at 08:05:48AM +0200, Philippe Mathieu-Daudé wrote:\n>> On 21/4/26 07:31, Joel Stanley wrote:\n>>> From: Nicholas Piggin <npiggin@gmail.com>\n>>>\n>>> Add OpenSBI and Linux boot tests for the tt-atlantis machine. Based on\n>>> tests/functional/riscv64/test_sifive_u.py.\n>>>\n>>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>\n>>> Signed-off-by: Joel Stanley <joel@jms.id.au>\n>>> ---\n>>> v3:\n>>>    - Fix path to test files\n>>>    - Dedupe command line root argument\n>>>    - Remove unused import\n>>> ---\n>>>    MAINTAINERS                                  |  1 +\n>>>    tests/functional/riscv64/meson.build         |  1 +\n>>>    tests/functional/riscv64/test_opensbi.py     |  4 ++\n>>>    tests/functional/riscv64/test_tt_atlantis.py | 63 ++++++++++++++++++++\n>>>    4 files changed, 69 insertions(+)\n>>>    create mode 100755 tests/functional/riscv64/test_tt_atlantis.py\n>>\n>>\n>>> diff --git a/tests/functional/riscv64/test_tt_atlantis.py b/tests/functional/riscv64/test_tt_atlantis.py\n>>> new file mode 100755\n>>> index 000000000000..f6f4b7ceec34\n>>> --- /dev/null\n>>> +++ b/tests/functional/riscv64/test_tt_atlantis.py\n>>> @@ -0,0 +1,63 @@\n>>> +#!/usr/bin/env python3\n>>> +#\n>>> +# Functional test that boots a Linux kernel on a Tenstorrent Atlantis machine\n>>> +# and checks the console\n>>> +#\n>>> +# Copyright (c) Linaro Ltd.\n>>> +# Copyright 2026 Tenstorrent\n>>> +#\n>>> +# SPDX-License-Identifier: GPL-2.0-or-later\n>>> +\n>>> +import os\n>>> +\n>>> +from qemu_test import Asset, LinuxKernelTest\n>>> +\n>>> +\n>>> +class TTAtlantis(LinuxKernelTest):\n>>> +\n>>> +    ASSET_KERNEL = Asset(\n>>> +        'https://storage.tuxboot.com/kernels/6.11.9/riscv64/Image',\n>>> +        '174f8bb87f08961e54fa3fcd954a8e31f4645f6d6af4dd43983d5e9841490fb0')\n>>> +    ASSET_ROOTFS = Asset(\n>>> +        ('https://github.com/groeck/linux-build-test/raw/'\n>>> +         '9819da19e6eef291686fdd7b029ea00e764dc62f/rootfs/riscv64/'\n>>> +         'rootfs.ext2.gz'),\n>>> +        'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b')\n>>> +\n>>> +    def do_test_riscv64_tt_atlantis(self, connect_disk):\n>>> +        self.set_machine('tt-atlantis')\n>>> +        kernel_path = self.ASSET_KERNEL.fetch()\n>>> +        rootfs_path = self.uncompress(self.ASSET_ROOTFS)\n>>> +\n>>> +        self.vm.set_console()\n>>> +        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon=sbi '\n>>> +\n>>> +        if connect_disk:\n>>> +            kernel_command_line += 'root=/dev/vda panic=-1 noreboot rootwait '\n>>> +            self.vm.add_args('-device',\n>>> +                             'virtio-blk,drive=drive0,serial=0x1234,bus=pcie.0')\n>>> +            self.vm.add_args('-drive',\n>>> +                             f'file={rootfs_path},if=none,id=drive0,format=raw')\n>>> +            pattern = 'Boot successful.'\n>>\n>> Should we run a full shutdown to test up to the halting payload\n>> (patch #4)?\n> \n> Halting payload is only used when there is no kernel given, not sure if\n> it's good cost/benefit to test that, it's just in case user screw up\n> they don't get blank screen apparent hang.\n> \n> A shutdown test all the way to machine halt would be good, although I\n> don't know if we model that properly in the atlantis machine yet. Maybe\n> something to expand on later.\n\nOK, then we are good.\n\n>>> +        else:\n>>> +            kernel_command_line += 'panic=0 noreboot '\n>>> +            pattern = 'Cannot open root device'\n>>> +\n>>> +        self.vm.add_args('-kernel', kernel_path,\n>>> +                         '-append', kernel_command_line,\n>>> +                         '-no-reboot')\n>>> +\n>>> +        self.vm.launch()\n>>> +        self.wait_for_console_pattern(pattern)\n>>> +\n>>> +        os.remove(rootfs_path)\n>>\n>> Since you call uncompress() with implicit @target=None argument,\n>> scratch_file() is used:\n>>\n>>          Construct a path for accessing/creating a scratch file\n>>          located relative to a temporary directory dedicated to\n>>          this test case. The directory and its contents will be\n>>          purged upon completion of the test.\n>>\n>> So IIUC no need to remove manually. Do you have an issue with it\n>> to remove it manually?\n> \n> No, I just copied it from tests/functional/riscv64/test_sifive_u.py :)\n> and looks like same pattern exists in a couple of other tests as well.\n\nGood opportunity to clean it ;)\n\n> \n>>\n>> Otherwise,\n>> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>\n> \n> Thanks,\n> Nick","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=wkg9Cw0V;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0RKC65MLz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 01:36:14 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFD8j-0002iW-K4; Tue, 21 Apr 2026 11:35:53 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wFD8W-0002eW-UL\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 11:35:44 -0400","from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1wFD8T-0005XP-IK\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 11:35:40 -0400","by mail-wm1-x32f.google.com with SMTP id\n 5b1f17b1804b1-48984d29fe3so29354155e9.0\n for <qemu-devel@nongnu.org>; Tue, 21 Apr 2026 08:35:25 -0700 (PDT)","from [10.193.39.66] (140.170.88.92.rev.sfr.net. [92.88.170.140])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fc0f82bbsm627725225e9.3.2026.04.21.08.35.22\n (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n Tue, 21 Apr 2026 08:35:23 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1776785724; x=1777390524; darn=nongnu.org;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :from:to:cc:subject:date:message-id:reply-to;\n bh=FHMi8h7Fn+GysCoJ54nKp2fCJyi0JqED1y7NK4Yge5U=;\n b=wkg9Cw0V5rlH1i6Bd0ljAIqzAnzcJ1JikI5wrBk+OgqKTjLlM8rR7oNOdcoxW9BkYd\n 5GdtHtB26t1BT3n6v+epU7+n5INvrs/Xo/dUhZZgvahQLUzfLzUVxtdwp6NQgnPhTbva\n 9rpGb//mqOfWYZykWjHlMp3bKp656fdDu6ZTsYaJTpjVn71/kjJUTE1uyMBEErH1bZo2\n 2AjC8omCPwVL2ERnajVxRPfhMmQKx3/MTwmAC9DPdYKj/83WznZb+sznwnT9bt30BogK\n BueHDWozgG8S4k6T5yhk7n7TL3k7M2Ij+Esps/GLEXAbIArvcQ+I0Unq+X4b2MNZMDQz\n Fd+Q==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776785724; x=1777390524;\n h=content-transfer-encoding:in-reply-to:from:references:cc:to\n :content-language:subject:user-agent:mime-version:date:message-id\n :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=FHMi8h7Fn+GysCoJ54nKp2fCJyi0JqED1y7NK4Yge5U=;\n b=bMdF+l4Pt1h+aPLlATQ/lJ8ojyontKlWkbvFL8JZ9lvBXfGCqeYM0UDkfaQsS2rpej\n iX2nbzQJ4Kwd+s8fsRsIzZeb9ZgnINrvu7NNfduStPgyZUtl7PG/S4S+sd7B0bv3O1+F\n yCy8H6ibKOCvRd8ttl8/wHizwz83kJ+r+4YuJ3PfV2eYdATnhdsxQoFyVz4U/MOW58c4\n SHV77KLSHMfA/Kkdj5bHzJW3WwH639IN76J4QsAv72FCjxBFXHqMIgKCJ/9QhT3nBFCw\n BlHG2v3SdmeuJSDSu+WzyOwixrOQ0XkJCvz0LsZrXsOmKDlfDMBeBdLT+SLQBvMw282l\n A4tA==","X-Forwarded-Encrypted":"i=1;\n AFNElJ+9IBbMrcQiSe9po04exhRsJsQJ5SEas6C3bBbUfHwb+NSbpelO/g759IYIQDDzDN0mgXoOy0NT1fw2@nongnu.org","X-Gm-Message-State":"AOJu0YxSSAX8CMfjyfdLnkai+lRnEVmX/iuVaRbZK+QNnJtLs4BhS9rD\n 1j2EhSVGKFgs66DSBtOz3NYbh76Ya1pDLmvm5NRIdWEjGJsV/xviQby64g8GcpGorr8=","X-Gm-Gg":"AeBDievSYFm4ovttNQC1Vtyi+KFpYL0MfV0g4ys+ZjY4kSTolr9HHHQo+rlQrm3I226\n dHBqeAWMY2ie4Tj14SU3TzRhTnd5HCS2CSpLwBSRMqsiLOgoRDXkKsdkrZcyCmq/FeulKXmxl0q\n o7gzwQAglClHWIo8kk20+c/UHaT0d1L8xW5Uz+C60fxwQ2KqHw+63i4B9PwNFdZCzjj9fMyHcUJ\n k7bYV1ockLKEu/LUcw0xqxedGTO4gcL7DTss1AtIMmOs6JU6K+jCAbsxcOxtfw3xtUu5rV7nDsT\n a99g/bg+K974blsWasruqBOdUKARHuYmj4ESBoU2oRxZCR/DpNkzkgJe/gArLKU+Y+rIa5Yj78M\n hUZTLk27OiaRxAkDTQLPZNNjo1Mnpq9mLphMA6vjafKTiZJtFfm4c9acjFDpaBjAl6LPN08UWhy\n WnAfsOpfSaUlKPf4TBUTa2XSK126WUDRXgefaztBmx+p93Mu9jxGbLy2zfBf4hLKfCC8iK","X-Received":"by 2002:a05:600c:3553:b0:48a:52f2:a0f1 with SMTP id\n 5b1f17b1804b1-48a52f2a5f0mr85008665e9.18.1776785724332;\n Tue, 21 Apr 2026 08:35:24 -0700 (PDT)","Message-ID":"<c0fbd10c-9e6b-4d6d-8c5c-92645d2746d9@linaro.org>","Date":"Tue, 21 Apr 2026 17:35:21 +0200","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","Content-Language":"en-US","To":"Nicholas Piggin <npiggin@gmail.com>","Cc":"Joel Stanley <joel@jms.id.au>,\n Alistair Francis <alistair.francis@wdc.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Michael Ellerman <mpe@kernel.org>, Joel Stanley <jms@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Thomas Huth <thuth@redhat.com>","References":"<20260421053140.752059-1-joel@jms.id.au>\n <20260421053140.752059-12-joel@jms.id.au>\n <87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>\n <aedEGxGq1qKhGI5d@lima-default>","From":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","In-Reply-To":"<aedEGxGq1qKhGI5d@lima-default>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2a00:1450:4864:20::32f;\n envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.google.com","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}},{"id":3681245,"web_url":"http://patchwork.ozlabs.org/comment/3681245/","msgid":"<CACPK8Xc5DSN9dCbFv=E1H9mKG2F40WYt39D5mLogOe1xekXuwA@mail.gmail.com>","list_archive_url":null,"date":"2026-04-23T02:25:31","subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","submitter":{"id":48628,"url":"http://patchwork.ozlabs.org/api/people/48628/","name":"Joel Stanley","email":"joel@jms.id.au"},"content":"On Wed, 22 Apr 2026 at 01:35, Philippe Mathieu-Daudé <philmd@linaro.org> wrote:\n>\n> On 21/4/26 11:45, Nicholas Piggin wrote:\n> > On Tue, Apr 21, 2026 at 08:05:48AM +0200, Philippe Mathieu-Daudé wrote:\n> >> On 21/4/26 07:31, Joel Stanley wrote:\n> >>> From: Nicholas Piggin <npiggin@gmail.com>\n> >>>\n> >>> Add OpenSBI and Linux boot tests for the tt-atlantis machine. Based on\n> >>> tests/functional/riscv64/test_sifive_u.py.\n> >>>\n> >>> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>\n> >>> Signed-off-by: Joel Stanley <joel@jms.id.au>\n> >>> ---\n> >>> v3:\n> >>>    - Fix path to test files\n> >>>    - Dedupe command line root argument\n> >>>    - Remove unused import\n> >>> ---\n> >>>    MAINTAINERS                                  |  1 +\n> >>>    tests/functional/riscv64/meson.build         |  1 +\n> >>>    tests/functional/riscv64/test_opensbi.py     |  4 ++\n> >>>    tests/functional/riscv64/test_tt_atlantis.py | 63 ++++++++++++++++++++\n> >>>    4 files changed, 69 insertions(+)\n> >>>    create mode 100755 tests/functional/riscv64/test_tt_atlantis.py\n> >>\n> >>\n> >>> diff --git a/tests/functional/riscv64/test_tt_atlantis.py b/tests/functional/riscv64/test_tt_atlantis.py\n> >>> new file mode 100755\n> >>> index 000000000000..f6f4b7ceec34\n> >>> --- /dev/null\n> >>> +++ b/tests/functional/riscv64/test_tt_atlantis.py\n> >>> @@ -0,0 +1,63 @@\n> >>> +#!/usr/bin/env python3\n> >>> +#\n> >>> +# Functional test that boots a Linux kernel on a Tenstorrent Atlantis machine\n> >>> +# and checks the console\n> >>> +#\n> >>> +# Copyright (c) Linaro Ltd.\n> >>> +# Copyright 2026 Tenstorrent\n> >>> +#\n> >>> +# SPDX-License-Identifier: GPL-2.0-or-later\n> >>> +\n> >>> +import os\n> >>> +\n> >>> +from qemu_test import Asset, LinuxKernelTest\n> >>> +\n> >>> +\n> >>> +class TTAtlantis(LinuxKernelTest):\n> >>> +\n> >>> +    ASSET_KERNEL = Asset(\n> >>> +        'https://storage.tuxboot.com/kernels/6.11.9/riscv64/Image',\n> >>> +        '174f8bb87f08961e54fa3fcd954a8e31f4645f6d6af4dd43983d5e9841490fb0')\n> >>> +    ASSET_ROOTFS = Asset(\n> >>> +        ('https://github.com/groeck/linux-build-test/raw/'\n> >>> +         '9819da19e6eef291686fdd7b029ea00e764dc62f/rootfs/riscv64/'\n> >>> +         'rootfs.ext2.gz'),\n> >>> +        'b6ed95610310b7956f9bf20c4c9c0c05fea647900df441da9dfe767d24e8b28b')\n> >>> +\n> >>> +    def do_test_riscv64_tt_atlantis(self, connect_disk):\n> >>> +        self.set_machine('tt-atlantis')\n> >>> +        kernel_path = self.ASSET_KERNEL.fetch()\n> >>> +        rootfs_path = self.uncompress(self.ASSET_ROOTFS)\n> >>> +\n> >>> +        self.vm.set_console()\n> >>> +        kernel_command_line = self.KERNEL_COMMON_COMMAND_LINE + 'earlycon=sbi '\n> >>> +\n> >>> +        if connect_disk:\n> >>> +            kernel_command_line += 'root=/dev/vda panic=-1 noreboot rootwait '\n> >>> +            self.vm.add_args('-device',\n> >>> +                             'virtio-blk,drive=drive0,serial=0x1234,bus=pcie.0')\n> >>> +            self.vm.add_args('-drive',\n> >>> +                             f'file={rootfs_path},if=none,id=drive0,format=raw')\n> >>> +            pattern = 'Boot successful.'\n> >>\n> >> Should we run a full shutdown to test up to the halting payload\n> >> (patch #4)?\n> >\n> > Halting payload is only used when there is no kernel given, not sure if\n> > it's good cost/benefit to test that, it's just in case user screw up\n> > they don't get blank screen apparent hang.\n> >\n> > A shutdown test all the way to machine halt would be good, although I\n> > don't know if we model that properly in the atlantis machine yet. Maybe\n> > something to expand on later.\n>\n> OK, then we are good.\n\nYep. I plan to add more to this test as we model more of the machine.\n\n>\n> >>> +        else:\n> >>> +            kernel_command_line += 'panic=0 noreboot '\n> >>> +            pattern = 'Cannot open root device'\n> >>> +\n> >>> +        self.vm.add_args('-kernel', kernel_path,\n> >>> +                         '-append', kernel_command_line,\n> >>> +                         '-no-reboot')\n> >>> +\n> >>> +        self.vm.launch()\n> >>> +        self.wait_for_console_pattern(pattern)\n> >>> +\n> >>> +        os.remove(rootfs_path)\n> >>\n> >> Since you call uncompress() with implicit @target=None argument,\n> >> scratch_file() is used:\n> >>\n> >>          Construct a path for accessing/creating a scratch file\n> >>          located relative to a temporary directory dedicated to\n> >>          this test case. The directory and its contents will be\n> >>          purged upon completion of the test.\n> >>\n> >> So IIUC no need to remove manually. Do you have an issue with it\n> >> to remove it manually?\n> >\n> > No, I just copied it from tests/functional/riscv64/test_sifive_u.py :)\n> > and looks like same pattern exists in a couple of other tests as well.\n>\n> Good opportunity to clean it ;)\n\nI dropped the os.remove from our test. I'll send a cleanup patch for\nthe sifive machine when I get a chance.","headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n secure) header.d=jms.id.au header.i=@jms.id.au header.a=rsa-sha256\n header.s=google header.b=GIrGLokV;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1KhP3BZJz1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 12:25:57 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFjlE-0002t9-SJ; Wed, 22 Apr 2026 22:25:49 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <joel.stan@gmail.com>)\n id 1wFjlB-0002rY-Ec\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 22:25:45 -0400","from mail-yw1-x112d.google.com ([2607:f8b0:4864:20::112d])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <joel.stan@gmail.com>)\n id 1wFjl9-0001Ul-Kr\n for qemu-devel@nongnu.org; Wed, 22 Apr 2026 22:25:45 -0400","by mail-yw1-x112d.google.com with SMTP id\n 00721157ae682-799001d73bdso43744307b3.0\n for <qemu-devel@nongnu.org>; Wed, 22 Apr 2026 19:25:43 -0700 (PDT)"],"ARC-Seal":"i=1; a=rsa-sha256; t=1776911142; cv=none;\n d=google.com; s=arc-20240605;\n b=PSvD+ZI5ifsjjGpVmpWGe9Cbg+0Jp6hTEN2NnTSTkag8wdrmENtjWsbKTOG2Xa4XBU\n RHWGvvXH0hHF7+NEfemGSP+/VUnstGieGj4z70X0VayM8N4tnPJ0KRY2NgkyDItSj7ph\n cLnVAijLbGXhMo5gq6YbLwEKyik34nyfF59BqiScwcnTzpjHwFIQVz8DdUEjOGpxhuIG\n lhET5U7YR/XJMEXBDODFeO0TIYWqdyN5y8urMHtzjmk+QUxz/B/LYtb4tpdsZha0Tckd\n Y1VWYKr/E61VDKUSquCrox/KRHpMJuvP2SM0RUnBhxvIS6sFcHNPt292WVpV0rJenQIx\n 1NAA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=VLn3Fuy+S55qq5Y7iI7YlfV3HKtC4OgHGc0P8JqC+98=;\n fh=mznYpu65tKvpKsO6j4LQbbgTcALS8o/ugSfQAc+8LVg=;\n b=W1fXcWy8Rzqjw+zEvyT68oOmkGy24XPNshoyFaMVfoB7Q/DhBVtQy0QBUwrW/do0+g\n ro5aMdmrKJ2/5F1T6Tbnsv0C+MGA8B2VMBOrCHX0WOa88JicDQnjEQEVGxvbhfrPsOzH\n C5bGHqtAarFUPSRjpGbpZ+d45OLenYlAN45O4mhKeyFfR48K5t8D48LEQVkXF7G+9j+a\n DIOimFbq0K+I1j5Viuqz0qG+LFusGayxG0cb++h8qa/XycwwFwt9BUwwBbE0kcuXm4pq\n K3Hg7PP14ZqD2k1ttJP32akYwS9znv9d121P1qZ8xd0kKvt19ZdVIH6GAPKP4EoxS7B6\n QPQw==; darn=nongnu.org","ARC-Authentication-Results":"i=1; mx.google.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=jms.id.au; s=google; t=1776911142; x=1777515942; darn=nongnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=VLn3Fuy+S55qq5Y7iI7YlfV3HKtC4OgHGc0P8JqC+98=;\n b=GIrGLokVvP5mcK+CkuySn7Ww6bd394CiL4iCDEFS5P1JPliuPhak0ByRwccimXMk7y\n 2tJ83nC7UVXT0ipYfUKV+NpcQvwpKRjSrLePpExYnY7rkWF0tgGH65r/P6NER8lcM0DL\n UtgMFPFEp/KNl6iHCBJcg6DesSUBmItgIEVDo=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776911142; x=1777515942;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=VLn3Fuy+S55qq5Y7iI7YlfV3HKtC4OgHGc0P8JqC+98=;\n b=SJGI+Gsb0/L/x4eCKDI8+pHlV2ucMWOQv8+6iVeSaW2vWGEglkvuqNvblMJ4nHNGOq\n 4nKk1QVWXA5sgWSiyFuQ+0gX/HujHdYF57wIxInVDN9kmjXa6nyVK2yRQZsaz/RmmGmu\n tBfKzvxvagt1YkDe0lD60zOzrJKYxBbBWGAkY3/h8+baNpgIpL1yotwIFHTMjBDLsxZz\n yY/MLBZnva9rDI8slEJBSJiQe/pcDZ3wK9NZlP25n7ag3UBmH0187rT0bQzy9NSKtIjc\n clYblFsO2GrApKNOhcdYxjQMn5Fx445BLCqGSCpuvqay48PIhLpvOpGvIowWksml2YdU\n 6SHg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9XehQo2zCrv2bDLVIIKxJzvDop4W9ld0HM+B8Bt1/otFNr5zbVaWnCgBGlx2dv0dEWB43QWJ3BC10Y@nongnu.org","X-Gm-Message-State":"AOJu0Yy8I+s+fcp/dlIB10CzU9pjnw/tKUDnt9aQEW4GbDemg+p6ajrN\n lEScK2bfUsHO57IvRSVkabr+Y9Z3KuQTVkZ7w0K5DCo9UdJoOzBOdgCsueKP/w+LXkB0ifLKA1O\n 77u0ijrRyTMNSfEc2imf8tKqT1HK4Dfk=","X-Gm-Gg":"AeBDietkR9pfaEiU2yekFN+AAm1oO6Ugz/telmjIPpyfW0CMklaXFpfqAgzOugbprDS\n f7a/6GLOYk4xnnBKnRzBDv4qCkEX+I4Hs6DGips0NfQturU1c4lFbzA0/OftL04AVJ1fc3LK6oo\n VnfB25IRJVwVuiNOjYjNxyOOsvgOvHze33epcTraiLK+jmVI+dtXQ1ewGe7+BKHxqDtijdpUZwu\n 4DJi15XqeajS7wb/rLZy9arH8hz2PLSUUFpbkf1A1wz8yO7YSDKS+kilw0ScZfbGey/6ZjbKVE7\n WUE9dWMC1PBQazN/9jA6It1x7pNFQMsqHp+l6I+X5xRPJpGSSsAFyTLoRrOGTLROJZb+t+adtgX\n w","X-Received":"by 2002:a05:690c:1d:b0:7b8:338d:7d6f with SMTP id\n 00721157ae682-7b9ecf7aefbmr254393587b3.25.1776911142279; Wed, 22 Apr 2026\n 19:25:42 -0700 (PDT)","MIME-Version":"1.0","References":"<20260421053140.752059-1-joel@jms.id.au>\n <20260421053140.752059-12-joel@jms.id.au>\n <87ba28f4-aeab-4015-8f9c-9d3a53c0cb7a@linaro.org>\n <aedEGxGq1qKhGI5d@lima-default>\n <c0fbd10c-9e6b-4d6d-8c5c-92645d2746d9@linaro.org>","In-Reply-To":"<c0fbd10c-9e6b-4d6d-8c5c-92645d2746d9@linaro.org>","From":"Joel Stanley <joel@jms.id.au>","Date":"Thu, 23 Apr 2026 12:25:31 +1000","X-Gm-Features":"AQROBzBAQwJtcWxJZRdWqaRm6Jh5SJGwqVM6PxSswy2X7YB8rSnTXuzJm6KeOEc","Message-ID":"\n <CACPK8Xc5DSN9dCbFv=E1H9mKG2F40WYt39D5mLogOe1xekXuwA@mail.gmail.com>","Subject":"Re: [PATCH v3 11/13] tests/functional/riscv64: Add tt-atlantis tests","To":"=?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= <philmd@linaro.org>","Cc":"Nicholas Piggin <npiggin@gmail.com>,\n Alistair Francis <alistair.francis@wdc.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>,\n Michael Ellerman <mpe@kernel.org>,\n Joel Stanley <jms@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org, Thomas Huth <thuth@redhat.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","Received-SPF":"pass client-ip=2607:f8b0:4864:20::112d;\n envelope-from=joel.stan@gmail.com; helo=mail-yw1-x112d.google.com","X-Spam_score_int":"-16","X-Spam_score":"-1.7","X-Spam_bar":"-","X-Spam_report":"(-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.001,\n FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=no autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"}}]