From patchwork Thu Feb 6 15:12:10 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 862518 Delivered-To: patch@linaro.org Received: by 2002:a5d:51d2:0:b0:385:e875:8a9e with SMTP id n18csp164737wrv; Thu, 6 Feb 2025 07:13:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU0kvjAv6+WinNYuNyMhLfeVkQ5UzF17e5uUhbUvBrBSJQc+GEfapw37fs66hmU4qGxuYEQag==@linaro.org X-Google-Smtp-Source: AGHT+IGvKtuxz2/I7gvsZuEoGwbZDPxZUbYKrfhE+KkK88L825OY7vBQanAQcO62iQxTfvRrCO7W X-Received: by 2002:a05:620a:400f:b0:7b6:e9db:3b19 with SMTP id af79cd13be357-7c03a047b6cmr1075176085a.47.1738854799643; Thu, 06 Feb 2025 07:13:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1738854799; cv=none; d=google.com; s=arc-20240605; b=f7izJ2Npu2J9vxRh8C8pd+j+aexm6nly959fZM+sP0Kw15LNvO2B8tdUl5eT1cLWcu V2tvASR/I1ax43gEkHFrgF7gUwxIdKEVQg/1Kw5UpS6OpcExEQGUKyMHfI/pHj+X31ak PkZ0iEBGIqIL7xZ4sZICjWAYWEwwXcX5f+wST9GCGJFQDH9kqt9t//9UObDfYrOFglDq VZ/NyL4zBNhYLe1hIHVMu2ETtdGL8IzEs7OsM/Pg1NpQ6x/sgjWhCQMJ+3rcKsIwVJV0 tHy9eqybANbyByZxgvTW/KUb2XHKN3xHa+RXBjic+K38KdB4p0x9Jc5rzz2wnKQiYulX j08Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Dyc4k4zZ3UDjTeOj4G3vch41PnGrPu5ooBf/NMqW0u8=; fh=/TilQLwyttiBBYoxQPhW9QA6ISv7dt8NoLGF4ij1vv8=; b=RZB0ANVZ71ea3/h9ZgsJg+Q+cPlEPhxnpb4qLYZmDP/jJyPVMssCnVxd9L4IYGB1Pj LR+8+AE84ML09lIH50U+Gg5WbpaReOnB+wBOBXl0S1TMP/2wbScdrhxJIS/B9raES4ze rsggPQh9PFjWhiE+q+YQzRT/6lN0t+bTwAmqCvRdBtEJ81s3GCOEZSM/LfH8LGN3hQAb 9jNYjPEWyL/UAFdU/Ue9E0zBFxWeu2V2EQM49/7jqeo1XTXez1sNBem/TmS4yXfoCBiw VJsyFZYOJK+TB+dntHSzNFTxRNqMp0cdzde9IBSopCLzvqCn9mDXk36LvUbx+kz7HrO7 pEtw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Xih5rxwU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id a1e0cc1a2514c-866f963edfasi214893241.68.2025.02.06.07.13.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 06 Feb 2025 07:13:19 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Xih5rxwU; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tg3YI-0000Y3-83; Thu, 06 Feb 2025 10:12:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tg3YE-0000Vt-9X for qemu-devel@nongnu.org; Thu, 06 Feb 2025 10:12:23 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tg3YC-00013m-9d for qemu-devel@nongnu.org; Thu, 06 Feb 2025 10:12:21 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-437a92d7b96so10230475e9.2 for ; Thu, 06 Feb 2025 07:12:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1738854738; x=1739459538; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Dyc4k4zZ3UDjTeOj4G3vch41PnGrPu5ooBf/NMqW0u8=; b=Xih5rxwUrZhpx/r741Y/GOmx4ptWOkxgwnUEs2rv1t3fA/68/yf0Kk/HbekxH4YrgZ llMrZoqT0FhotzENKVhEHa2tcvCvbHTVVwp6uGc0Kh4Cleu36XIR1JPXbG3FJwyvB+he rsJdLGLNYJo89x8F2MOMyp3tcTB5gjYjuXx2ZprTlGZ4BPfx+zG3XdnPYFB8GTP//raW U4BhQ8EONFyRgbSOEMiEhimk7MUG7YN3MB7Le0q7fX/F5W8Xe1cXG9M2t1yRU7v5jhaX 7/ZgMwVc/lo13ONFQlEefDKMXzeto06OR+0/rF6YBv4kmWuNydsafckuO+JorfKWK7ia cibA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738854738; x=1739459538; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dyc4k4zZ3UDjTeOj4G3vch41PnGrPu5ooBf/NMqW0u8=; b=sdIAOjPRmTb+SRPJUD5YX5LlPlNt/PPTr15ehy2c1XzNpIe9GbAFIGoKbsga59b+BU SvdMzLKgwYcOUoDvumgO5W5UMhgg+b2jXsYZjBLvhlogbhSIvjzRqhopnjafVCms8CPP hQdcCajXOh1stBuTF+kzmnTW7W0h+1l4fbKO2cCElou3S0taokaEV5CELBbzKR3zwDAw tfFCquoiuRByP09tgAipEV0QpOQOiqHKoR3rs7NQA8DYikROeClxRAXUWWZ/3c93sBtz vNbokwIrr+8YKyOT0Wsx9BRIprXzVOu09ARK/f3hGUsD74kZj284YlDIfCnJ7OqPYtxw vISQ== X-Gm-Message-State: AOJu0Yy9JXHCf0JTZ9mIg02KXZHX/Gz/PDQOmxFtns5CGdvNe48eqPWh 8Ioj0qtkEQnpBCEv2esmBbjd+N7YotZ4nXCJbMPLgfS7oVVzCkgpvnEM4NWoVIXDVPQ3GiNm+pv Y X-Gm-Gg: ASbGncujuhGnz3zT26VYCbAdn6A8IA2eswE22oxUxYMHy4x4hsVJ0U8wObwRvamXy+9 rRJv7J+d62AsKuuQgyRFPb8V/mgSdcmSkWvBPblhK7EbLYofVPSsT9NJPyTE36JMDv71u02Y4kG ULXVuJTqPnwGVKMiI3YgBesPSDUqr3wrkSO3BX0gIBe5WZeXlV1PTMp1u+7WwAjww4RSdTIB7f8 AXV8AZL9jTUYuxFw/tTnHzXNCV2I9AoJmje8rx2xiMTIsXgb2dRI/nXrstovCdn2ExLTa6CPyYJ 3ZJvLWe2u91Hl2bePUCNVw== X-Received: by 2002:a05:600c:3b0f:b0:434:e9ee:c2d with SMTP id 5b1f17b1804b1-4390d56c256mr48427715e9.26.1738854738483; Thu, 06 Feb 2025 07:12:18 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [2001:8b0:1d0::2]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4391d5283b2sm23591535e9.0.2025.02.06.07.12.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Feb 2025 07:12:17 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Cc: Paul Burton , Aleksandar Rikalo , Eduardo Habkost , Marcel Apfelbaum , =?utf-8?q?Philippe_Mathieu-D?= =?utf-8?q?aud=C3=A9?= , Yanan Wang , Zhao Liu , Jia Liu Subject: [PATCH 2/6] hw/openrisc: Support monitor dumpdtb command Date: Thu, 6 Feb 2025 15:12:10 +0000 Message-Id: <20250206151214.2947842-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250206151214.2947842-1-peter.maydell@linaro.org> References: <20250206151214.2947842-1-peter.maydell@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=peter.maydell@linaro.org; helo=mail-wm1-x334.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, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The openrisc machines don't set MachineState::fdt to point to their DTB blob. This means that although the command line '-machine dumpdtb=file.dtb' option works, the equivalent QMP and HMP monitor commands do not, but instead produce the error "This machine doesn't have a FDT". Set MachineState::fdt in openrisc_load_fdt(), when we write it to guest memory. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé --- include/hw/openrisc/boot.h | 3 ++- hw/openrisc/boot.c | 7 +++++-- hw/openrisc/openrisc_sim.c | 2 +- hw/openrisc/virt.c | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/hw/openrisc/boot.h b/include/hw/openrisc/boot.h index 25a313d63a1..9b4d88072c4 100644 --- a/include/hw/openrisc/boot.h +++ b/include/hw/openrisc/boot.h @@ -20,6 +20,7 @@ #define OPENRISC_BOOT_H #include "exec/cpu-defs.h" +#include "hw/boards.h" hwaddr openrisc_load_kernel(ram_addr_t ram_size, const char *kernel_filename, @@ -28,7 +29,7 @@ hwaddr openrisc_load_kernel(ram_addr_t ram_size, hwaddr openrisc_load_initrd(void *fdt, const char *filename, hwaddr load_start, uint64_t mem_size); -uint32_t openrisc_load_fdt(void *fdt, hwaddr load_start, +uint32_t openrisc_load_fdt(MachineState *ms, void *fdt, hwaddr load_start, uint64_t mem_size); #endif /* OPENRISC_BOOT_H */ diff --git a/hw/openrisc/boot.c b/hw/openrisc/boot.c index 0f08df812dc..72e2756af05 100644 --- a/hw/openrisc/boot.c +++ b/hw/openrisc/boot.c @@ -90,8 +90,8 @@ hwaddr openrisc_load_initrd(void *fdt, const char *filename, return start + size; } -uint32_t openrisc_load_fdt(void *fdt, hwaddr load_start, - uint64_t mem_size) +uint32_t openrisc_load_fdt(MachineState *ms, void *fdt, + hwaddr load_start, uint64_t mem_size) { uint32_t fdt_addr; int ret; @@ -111,6 +111,9 @@ uint32_t openrisc_load_fdt(void *fdt, hwaddr load_start, /* copy in the device tree */ qemu_fdt_dumpdtb(fdt, fdtsize); + /* Save FDT for dumpdtb monitor command */ + ms->fdt = fdt; + rom_add_blob_fixed_as("fdt", fdt, fdtsize, fdt_addr, &address_space_memory); qemu_register_reset_nosnapshotload(qemu_fdt_randomize_seeds, diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index e0da4067ba3..d9e0744922a 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -354,7 +354,7 @@ static void openrisc_sim_init(MachineState *machine) machine->initrd_filename, load_addr, machine->ram_size); } - boot_info.fdt_addr = openrisc_load_fdt(state->fdt, load_addr, + boot_info.fdt_addr = openrisc_load_fdt(machine, state->fdt, load_addr, machine->ram_size); } } diff --git a/hw/openrisc/virt.c b/hw/openrisc/virt.c index 7b60bf85094..9afe407b00a 100644 --- a/hw/openrisc/virt.c +++ b/hw/openrisc/virt.c @@ -540,7 +540,7 @@ static void openrisc_virt_init(MachineState *machine) machine->initrd_filename, load_addr, machine->ram_size); } - boot_info.fdt_addr = openrisc_load_fdt(state->fdt, load_addr, + boot_info.fdt_addr = openrisc_load_fdt(machine, state->fdt, load_addr, machine->ram_size); } }