{"id":2228148,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2228148/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/cover/20260425131721.932250-1-joel@jms.id.au/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.1/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260425131721.932250-1-joel@jms.id.au>","date":"2026-04-25T13:17:06","name":"[v4,00/13] hw/riscv: Add the Tenstorrent Atlantis machine","submitter":{"id":48628,"url":"http://patchwork.ozlabs.org/api/1.1/people/48628/?format=json","name":"Joel Stanley","email":"joel@jms.id.au"},"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/cover/20260425131721.932250-1-joel@jms.id.au/mbox/","series":[{"id":501439,"url":"http://patchwork.ozlabs.org/api/1.1/series/501439/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=501439","date":"2026-04-25T13:17:08","name":"hw/riscv: Add the Tenstorrent Atlantis machine","version":4,"mbox":"http://patchwork.ozlabs.org/series/501439/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2228148/comments/","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=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Yv4fQ5yj;\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 4g2r6d2kvpz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 25 Apr 2026 23:20:25 +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 1wGctW-0006zA-76; Sat, 25 Apr 2026 09:18:02 -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 1wGctT-0006yM-R9\n for qemu-devel@nongnu.org; Sat, 25 Apr 2026 09:17:59 -0400","from mail-pf1-x431.google.com ([2607:f8b0:4864:20::431])\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 1wGctQ-0008Gl-Nq\n for qemu-devel@nongnu.org; Sat, 25 Apr 2026 09:17:59 -0400","by mail-pf1-x431.google.com with SMTP id\n d2e1a72fcca58-82f33d28c1dso4764824b3a.3\n for <qemu-devel@nongnu.org>; Sat, 25 Apr 2026 06:17:55 -0700 (PDT)","from donnager-debian.. ([45.124.203.19])\n by smtp.gmail.com with ESMTPSA id\n d2e1a72fcca58-82f8e9f7735sm26898866b3a.21.2026.04.25.06.17.49\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Sat, 25 Apr 2026 06:17:53 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1777123075; x=1777727875; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:sender:from:to:cc:subject:date:message-id:reply-to;\n bh=YX2v6/XRsVtr8NZBTyRWs8eBd31aH/Qd9dfsSxnSR4k=;\n b=Yv4fQ5yjniYJ0nor+f7JPPLOJcK7bSjIrCMBWl9HXZUaqjuDUgX6hV2IUj28AJtTZE\n UfQNirVKaFLcXlCeLk1bvVfocBOW5QCjK9IaQFCP0HuHUUBOEZEK6LGCnUQ4v7pz5PrL\n lrd520hY2bT9uTCi+e15CauyTataZK7mVe35zat5SEgtmzVDOGsLf1ziW54Hoz8fhq10\n 8RgW/MXC14vAS4e/Kd+mqtQd+MX60xxdc7TfZpINhv/5HKwI64z/070oLjTQ+VNeeOIp\n ZUyR5nY0wTpsaadwTDQr5jUqJk6EutTWgVKC6Cq0Wbw2fKhNcCJ8r2HHMTnmPnYGaM0Q\n 8zcg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777123075; x=1777727875;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:sender:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=YX2v6/XRsVtr8NZBTyRWs8eBd31aH/Qd9dfsSxnSR4k=;\n b=m2pR+bmDEHlY35u2dJ6DAZaspg3G4gQeGT7L1Ccm8DowItfYYbwN3meZDQ7mVGChtW\n Ea5aGPp0KQy50eV5D5SY+02oYc1qrQCNkl41whb8BWCXbDSChwkp5b3ZXM2B9auxaRur\n zyHZFARlG9z2vl1i/a/+r39KLiIeSfc8DGXFz9LMD9JKZOGi+uMlIFErtXrcXSjO8Zly\n /4/cVlTEc/iK73Jq+j2ib6WFbW1tZcJYsiyj4r5M/x/rPdB99hSHKPA/aN9sk2EANLPX\n o//kCtCkuDzKyt4Jwyb0ALwBrFYLS20HK5vrQXxMkKOTCnc5DDSUOiHtt6MbT4z0fYwc\n ouvg==","X-Forwarded-Encrypted":"i=1;\n AFNElJ9WPtNlvadrDZxSlvVkLdofqNdvHzmucTmwwCzpFLGVjzjtvUQBeIf3ci1rbqwTFZwXpoQl99Xa0ym+@nongnu.org","X-Gm-Message-State":"AOJu0YwcKC9zEjt4t199f0V02C+CUFtNYuPVuzcCJ7UQdHpV3qbCE6Ha\n YDIgA72phrzdY3jsvTGS8i4keN5j1atpqRmrX2EVmjJ+4lwUaZg+/UG5","X-Gm-Gg":"AeBDieuz42JjdD7JSJ9O/n2rq6o83YALi5IoXyvfcv1wGdOclw4LtDeYVpcqHBkHp3C\n 5udkOAaYP+Wcy46jcdGOL2ivx5NCY8nzTXRSe9b+jkZMp9kNA7bwIquvrKLu3ZLSynPbXy4vjPp\n /yJ0dByDRGqJET/MbqDv3/NfeMCdLwG2awZbcelIIyrJM58LcDB1MtUMKhvDId2LCmrVChOPp/A\n T8LZeuvlIpnWIXeUoQtCDztOPEnPa8Ty6fGwqUAs2H4Q2xsygAfSY+pZlJdD5yOB5caQNEfHYPK\n 96cg8Yvf6SR0g7M+jlFGv3rlSnUqDHSswR2g9hJmIh4B9FJnYOMcp9pqdUNDLs8Ihq1niECPRVf\n jD/7TpPzekNVkdrl90z4MclWIgjnIukuPrjVK3X8pYw/uxQ7PV7kZ4zehFK+8f6G2YCXMzelZLz\n A4DGXdwZ+CJ2tCgaxSGOpIR363NiEkraiEefG+YUHpSM6nVozD5Ce697W54JMjGisP+eL9zBApw\n wKt1Bfa2bTdjAh5tuN76pchN3r/RVqwJHLDyBpG8aU=","X-Received":"by 2002:a05:6a00:1993:b0:82c:2241:ab71 with SMTP id\n d2e1a72fcca58-82f8c9718c5mr38660687b3a.42.1777123074576;\n Sat, 25 Apr 2026 06:17:54 -0700 (PDT)","From":"Joel Stanley <joel@jms.id.au>","To":"Alistair Francis <alistair.francis@wdc.com>,\n Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>","Cc":"Chao Liu <chao.liu.zevorn@gmail.com>, Michael Ellerman <mpe@kernel.org>,\n Nicholas Piggin <npiggin@gmail.com>,\n Joel Stanley <jms@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>,\n Portia Stephens <portias@oss.tenstorrent.com>, qemu-riscv@nongnu.org,\n qemu-devel@nongnu.org","Subject":"[PATCH v4 00/13] hw/riscv: Add the Tenstorrent Atlantis machine","Date":"Sat, 25 Apr 2026 23:17:06 +1000","Message-ID":"<20260425131721.932250-1-joel@jms.id.au>","X-Mailer":"git-send-email 2.47.3","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Received-SPF":"pass client-ip=2607:f8b0:4864:20::431;\n envelope-from=joel.stan@gmail.com; helo=mail-pf1-x431.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_EF=-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"},"content":"v4 addresses the review comments from Phil and picks up some r-b from\nChao, Phil and Alistair. Thanks for the reviews.\n\n  - Describe PCIe mappings separately from the MemMapEntry table so\n    the mappings aren't mixed with fixed hardware addresses. The\n    mappings used are changed too, and the XXX comment and check was\n    dropped\n  - Move temperature sensor from bus 0 to bus 4 and use ti,tmp105\n    compatible instead of national,lm75 to match the QEMU model name \n  - Add i2c_get_bus() to do bounds checking on getting i2c buses\n  - Make halting payload const \n  - Don't remove rootfs in functional test, the test framework handles\n    cleanup\n  - Rename Svadu patch to  to better describe what it does\n  - Other minor cleanups\n\nv3: https://lore.kernel.org/qemu-devel/20260421053140.752059-1-joel@jms.id.au/\n\nOriginal cover letter:\n\nIntroducing Tenstorrent Atlantis!\n\n The Tenstorrent Atlantis platform is a collaboration between Tenstorrent\n and CoreLab Technology. It is based on the Atlantis SoC, which includes\n the Ascalon-X CPU and other IP from Tenstorrent and CoreLab Technology.\n\n The Tenstorrent Ascalon-X is a high performance 64-bit RVA23 compliant\n RISC-V CPU.\n\nThis initial series adds the base machine support including:\n\n - AIA (Advanced Interrupt Architecture) support\n - PCIe controller and DesignWare I2C integration\n - Serial console and device tree generation\n - Functional tests for OpenSBI+Linux boot\n\nChris Rauer (1):\n  hw/i2c: Add designware i2c controller\n\nJoel Stanley (5):\n  hw/riscv/virt: Move AIA initialisation to helper file\n  hw/riscv/aia: Provide number of irq sources\n  hw/riscv: Add Tenstorrent Atlantis machine\n  hw/riscv/atlantis: Integrate i2c buses\n  hw/riscv/atlantis: Add some i2c peripherals\n\nNicholas Piggin (7):\n  hw/riscv/boot: Describe discontiguous memory in boot_info\n  hw/riscv/boot: Account for discontiguous memory when loading firmware\n  hw/riscv/boot: Provide a simple halting payload\n  target/riscv: tt-ascalon: Enable Zkr extension\n  target/riscv: tt-ascalon: Enable Svadu by removing Svade\n  hw/riscv/atlantis: Add PCIe controller\n  tests/functional/riscv64: Add tt-atlantis tests\n\n MAINTAINERS                                  |  20 +\n docs/system/riscv/tt_atlantis.rst            |  38 +\n docs/system/target-riscv.rst                 |   1 +\n hw/riscv/aia.h                               |  25 +\n include/hw/i2c/designware_i2c.h              | 101 ++\n include/hw/riscv/boot.h                      |  13 +-\n include/hw/riscv/tt_atlantis.h               |  86 ++\n include/hw/riscv/virt.h                      |   2 +-\n hw/i2c/designware_i2c.c                      | 817 ++++++++++++++++\n hw/riscv/aia.c                               |  93 ++\n hw/riscv/boot.c                              |  45 +-\n hw/riscv/microchip_pfsoc.c                   |   6 +-\n hw/riscv/opentitan.c                         |   6 +-\n hw/riscv/shakti_c.c                          |   6 +-\n hw/riscv/sifive_u.c                          |   6 +-\n hw/riscv/spike.c                             |   6 +-\n hw/riscv/tt_atlantis.c                       | 944 +++++++++++++++++++\n hw/riscv/virt-acpi-build.c                   |  27 +-\n hw/riscv/virt.c                              |  96 +-\n hw/riscv/xiangshan_kmh.c                     |   6 +-\n target/riscv/cpu.c                           |   2 +-\n hw/i2c/Kconfig                               |   4 +\n hw/i2c/meson.build                           |   1 +\n hw/i2c/trace-events                          |   4 +\n hw/riscv/Kconfig                             |  19 +\n hw/riscv/meson.build                         |   3 +-\n tests/functional/riscv64/meson.build         |   1 +\n tests/functional/riscv64/test_opensbi.py     |   4 +\n tests/functional/riscv64/test_tt_atlantis.py |  59 ++\n 29 files changed, 2333 insertions(+), 108 deletions(-)\n create mode 100644 docs/system/riscv/tt_atlantis.rst\n create mode 100644 hw/riscv/aia.h\n create mode 100644 include/hw/i2c/designware_i2c.h\n create mode 100644 include/hw/riscv/tt_atlantis.h\n create mode 100644 hw/i2c/designware_i2c.c\n create mode 100644 hw/riscv/aia.c\n create mode 100644 hw/riscv/tt_atlantis.c\n create mode 100755 tests/functional/riscv64/test_tt_atlantis.py"}