Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2223366/?format=api
{ "id": 2223366, "url": "http://patchwork.ozlabs.org/api/patches/2223366/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260415064838.652297-5-joel@jms.id.au/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "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": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260415064838.652297-5-joel@jms.id.au>", "list_archive_url": null, "date": "2026-04-15T06:48:36", "name": "[v2,4/4] hw/riscv/boot: Provide a simple halting payload", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "1ac4e872db78f4c84f87a05b703110957d4dcf17", "submitter": { "id": 48628, "url": "http://patchwork.ozlabs.org/api/people/48628/?format=api", "name": "Joel Stanley", "email": "joel@jms.id.au" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260415064838.652297-5-joel@jms.id.au/mbox/", "series": [ { "id": 499931, "url": "http://patchwork.ozlabs.org/api/series/499931/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=499931", "date": "2026-04-15T06:48:32", "name": "hw/riscv: Boot setup improvements", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/499931/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2223366/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2223366/checks/", "tags": {}, "related": [], "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=AZTG8n7n;\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 4fwWwW64Mlz1yHd\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 15 Apr 2026 16:49:46 +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 1wCu3m-0001OL-Vc; Wed, 15 Apr 2026 02:49:15 -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 1wCu3i-0001ND-9z\n for qemu-devel@nongnu.org; Wed, 15 Apr 2026 02:49:11 -0400", "from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c])\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 1wCu3g-0001lf-Nx\n for qemu-devel@nongnu.org; Wed, 15 Apr 2026 02:49:10 -0400", "by mail-pl1-x62c.google.com with SMTP id\n d9443c01a7336-2a7a9b8ed69so49059805ad.2\n for <qemu-devel@nongnu.org>; Tue, 14 Apr 2026 23:49:08 -0700 (PDT)", "from donnager-debian.. ([45.124.203.19])\n by smtp.gmail.com with ESMTPSA id\n d9443c01a7336-2b478142565sm10353195ad.37.2026.04.14.23.49.03\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 14 Apr 2026 23:49:07 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776235747; x=1776840547; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date\n :message-id:reply-to;\n bh=I40LmaMvAl7ia3mfi8/ye+EBtWhiI0K4i/01QGVKBqY=;\n b=AZTG8n7nO1PlOuHPjPF5RgPsOwqLcLpUQTurLbgC+6bUZCfFi6X2eWxmKZ28x1386N\n 4qStf8jB0sxU/V9XKiSNedXnjwLoTt0sUXQK1yo/Ndrny0XErZwbq8H6dW/z0/4g3P/O\n HTUoj/6tyFKIKdyXMzy3BblP7UrjvK7VAP1QeEbgTadKeO7Yt67WPgxbM83SiwRcxlD1\n nF+HC9XppdNO5+NUoE9O7037iRXf2cLGLvQaSvTDfpzFUVWAjrSzqwVd1SRxWjSFfRmk\n Npi9buL5W2Gusb4K3/W9W8Oc7rsdvGRMjUOtcbP8g8G8SHY7LQO+DJPLI6h9dkeOLGqk\n mQ5Q==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776235747; x=1776840547;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:sender:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=I40LmaMvAl7ia3mfi8/ye+EBtWhiI0K4i/01QGVKBqY=;\n b=V0VoX5Jc6CeHOc5TGExHFvQuYLyXu4mb15tCXwILnoRKM5PbaQNZMY3JL1lRUOnoft\n lI2bD5J0Ip9XkQD4kNgJLOyfxATkaCkyWA5VwufKpep5ep7OW3U5Mlql/JSwnA1QgFCC\n jHT7SzAZTLGvG/GWv491OvYUujdt5HBTjKhCFnSXrH+BLP8mEpEAsGzHK5gpH6IhhwbY\n rdHZECp6XNK8Z6UNmgjIJakbjVZsUUBc3sLoAaFFL3rquEObqaty73+OJz/6XIqamyrx\n 2xWfiQPf30bjRGpUjPanlXe3v3gWPkJeVKzEF1HbHrh4pNymXSnxsEWxIJghTI96q4SD\n DdjA==", "X-Forwarded-Encrypted": "i=1;\n AFNElJ+D17rwIHkwIzycg5ck+wonUsRe5T8XYj5vU2Ov2YBPI1gqpLf9SkGCEjYfOmwcWIQlOdsEh2SJ1+7N@nongnu.org", "X-Gm-Message-State": "AOJu0Yx3sjZ5XQ4MLH4Wt/TOp0xbfqjkVL6vMFyU7UXE6rXVE10PJ4JN\n Tpl94C4+JNiQ/EISMWGKDprDOi/oSwpMoUvgkA2rni+nGVjv4hmUieZz", "X-Gm-Gg": "AeBDieshPuHgSwI0EOwGv9nAF7Pi2DM1khUz1orZP99OpHuxBXMG44+EJcaJ9UXdX9b\n BtLJgQfnWFF3yJPxip+Qcjo2FRkt41TisqihLrJKcy00VqxITzxHPcxQZYTEPbeR4FUzPmrQ8pl\n tAv2bSv9q//oDCh1o0EgkDaXRRZOam85RBDoa/sHclxZ/h4T3sL/KzX2h/x+8VrCdWIsccFH51C\n NhwO3GZxxCvRRrEBCOpje53ZLm082VPeAp2FGkVKaEgJT7H5ScomRT2vI8Jk8wFXD7CiFCT3IXh\n naBExhd/gxYSfei96ZVzGKg/3XV3rB84zW7j1LwhXufsgrjBEI0qms462ORcuF9ZLJ3eCuWgFYz\n +6HGmrwEkPC2HLUF6OSpYi5zUdsW6LrVmwhMbqg+heS+X0OFTzNTDlMZ5b0eBOd21Cf2Gh7ZJ/O\n 8iQRbM2Q0jgCAYNgTeJFtLuzDKv/uIN0JpUPrNTLbhcpMJY1xQWfIhh+eITZwpkUHFFZiCCVIyO\n dEenLaPR19z9RGFwYH/PA==", "X-Received": "by 2002:a17:902:8c97:b0:2b2:549f:7d2b with SMTP id\n d9443c01a7336-2b2d59a52famr167589865ad.11.1776235747410;\n Tue, 14 Apr 2026 23:49:07 -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>,\n qemu-devel@nongnu.org", "Cc": "Nicholas Piggin <npiggin@gmail.com>, Weiwei Li <liwei1518@gmail.com>,\n Michael Ellerman <mpe@oss.tenstorrent.com>,\n Joel Stanley <jms@oss.tenstorrent.com>,\n Nick Piggin <npiggin@oss.tenstorrent.com>,\n Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>, qemu-riscv@nongnu.org", "Subject": "[PATCH v2 4/4] hw/riscv/boot: Provide a simple halting payload", "Date": "Wed, 15 Apr 2026 16:48:36 +1000", "Message-ID": "<20260415064838.652297-5-joel@jms.id.au>", "X-Mailer": "git-send-email 2.47.3", "In-Reply-To": "<20260415064838.652297-1-joel@jms.id.au>", "References": "<20260415064838.652297-1-joel@jms.id.au>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Received-SPF": "pass client-ip=2607:f8b0:4864:20::62c;\n envelope-from=joel.stan@gmail.com; helo=mail-pl1-x62c.google.com", "X-Spam_score_int": "-17", "X-Spam_score": "-1.8", "X-Spam_bar": "-", "X-Spam_report": "(-1.8 / 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.248,\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": "From: Nicholas Piggin <npiggin@gmail.com>\n\nOpenSBI hangs before any console output if the domain init code sees the\nnext stage is not in an executable region.\n\nIf no kernel payload is provided to QEMU, the next stage address is\nNULL, and the riscv virt machine memory map ends up covering the 0\naddress with the catch all S-mode RWX region and so OpenSBI prints\nconsole messages and does not hang until the next stage boot.\n\nThe soon to be added Tenstorrent Atlantis board address map has RAM\nstarting at 0 and it loads OpenSBI there, so it is M-mode and not\naccessible by S-mode, tripping the early check and hang.\n\nAdd a helper to set up a simple payload that gets OpenSBI messages\nto console.\n\nSigned-off-by: Nicholas Piggin <npiggin@gmail.com>\nReviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>\nSigned-off-by: Joel Stanley <joel@jms.id.au>\n---\nv2: Update commit message to clarfiy that Atlantis isn't in the tree yet\n\n include/hw/riscv/boot.h | 2 ++\n hw/riscv/boot.c | 21 +++++++++++++++++++++\n 2 files changed, 23 insertions(+)", "diff": "diff --git a/include/hw/riscv/boot.h b/include/hw/riscv/boot.h\nindex fb90bf12399e..d1d7258a2179 100644\n--- a/include/hw/riscv/boot.h\n+++ b/include/hw/riscv/boot.h\n@@ -78,6 +78,8 @@ void riscv_setup_rom_reset_vec(MachineState *machine, RISCVHartArrayState *harts\n hwaddr rom_base, hwaddr rom_size,\n uint64_t kernel_entry,\n uint64_t fdt_load_addr);\n+void riscv_setup_halting_payload(MachineState *machine,\n+ RISCVBootInfo *info, hwaddr addr);\n void riscv_rom_copy_firmware_info(MachineState *machine,\n RISCVHartArrayState *harts,\n hwaddr rom_base,\ndiff --git a/hw/riscv/boot.c b/hw/riscv/boot.c\nindex 3ea95c175c14..fc8a39a8d913 100644\n--- a/hw/riscv/boot.c\n+++ b/hw/riscv/boot.c\n@@ -518,6 +518,27 @@ void riscv_setup_rom_reset_vec(MachineState *machine, RISCVHartArrayState *harts\n kernel_entry);\n }\n \n+/* Simple payload so OpenSBI does not hang early with no output */\n+void riscv_setup_halting_payload(MachineState *machine,\n+ RISCVBootInfo *info, hwaddr addr)\n+{\n+ int i;\n+ uint32_t payload_vec[] = {\n+ 0x10500073, /* 1: wfi */\n+ 0xffdff06f, /* j 1b */\n+ };\n+ /* copy in the payload vector in little_endian byte order */\n+ for (i = 0; i < ARRAY_SIZE(payload_vec); i++) {\n+ payload_vec[i] = cpu_to_le32(payload_vec[i]);\n+ }\n+ rom_add_blob_fixed_as(\"mrom.payload\", payload_vec, sizeof(payload_vec),\n+ addr, &address_space_memory);\n+\n+ info->kernel_size = sizeof(payload_vec);\n+ info->image_low_addr = addr;\n+ info->image_high_addr = info->image_low_addr + info->kernel_size;\n+}\n+\n void riscv_setup_direct_kernel(hwaddr kernel_addr, hwaddr fdt_addr)\n {\n CPUState *cs;\n", "prefixes": [ "v2", "4/4" ] }