From nobody Sun Feb 8 18:43:18 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1688119753; cv=none; d=zohomail.com; s=zohoarc; b=NO3b6zPK20r32bavm0gUxVqm59EsA+t3iqi5uGNyu5pgUqNX4AhTKGRzzrxMBmHH1P0lPQFOCfbHmfvsaAUtMgrPc5IHQ60MBiKTzjKtL+VBK3h2HHYvBHw/WmNiICJmlClCmOwfGhj9kAAuIEHaorPY5a6HdNYmnR9mzvH9rEE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1688119753; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q2Ls8WYAVehPuW6jRYnhu0ILyAvAR2A2rGoavXju0UU=; b=KjGBgbVJmnoi+sjn1Rd6UQUZNh6jjceE/fWP01Jt7sIjoIq/DTIbf+QFFcs7B0PczleUqdqTm2jvWI6N4kHvYBzkmpyrXMwxjaIQkuhtpgvzU9wwbtrvaJRGXjqzgfpEU0j61KuvMiDLupvlajFt9vaPwzl/IjVkOqM3pzEE4iM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1688119753065239.09183137494256; Fri, 30 Jun 2023 03:09:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qFB3G-00052r-G2; Fri, 30 Jun 2023 06:08:30 -0400 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 1qFB3F-00052i-CP for qemu-devel@nongnu.org; Fri, 30 Jun 2023 06:08:29 -0400 Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qFB3D-0000lD-Kr for qemu-devel@nongnu.org; Fri, 30 Jun 2023 06:08:29 -0400 Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-1b056276889so1462773fac.2 for ; Fri, 30 Jun 2023 03:08:27 -0700 (PDT) Received: from grind.. (201-69-66-110.dial-up.telesp.net.br. [201.69.66.110]) by smtp.gmail.com with ESMTPSA id eh18-20020a056870f59200b001a663e49523sm8707467oab.36.2023.06.30.03.08.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 30 Jun 2023 03:08:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1688119706; x=1690711706; 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=Q2Ls8WYAVehPuW6jRYnhu0ILyAvAR2A2rGoavXju0UU=; b=VPgI4oKz8zRXvgs3p+R7JxklGqRrcfA486xl5RyKEagigrFPzORgZg9LA9grO7pWPq KRivCVTxkLlT8/qFUz+NR2ICZMvjQBHoHRDMSP7rHo0y4oqOIj+b8bXHPdd1gV9D/f/u QaqTdsKnwaQ3fvzq8nuBmQ33ut8sz1kwsEmBKOEh4v7bqlRL9n00UfnFjW30y8CY594Z 9uM3gfT94WHiktKCopvwNzsXIfr5vu5DFzVdqSPZABkNm9JQqY9JRFvgT1tlnc/7xm4B vDUeXkXlgIjTuIcPgvcEWzLC1oULVUbv13VIlOF5nj9IYLfVvnTNyBP++3MJ1iswlKo6 +4dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1688119706; x=1690711706; 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=Q2Ls8WYAVehPuW6jRYnhu0ILyAvAR2A2rGoavXju0UU=; b=KxuwkZKfYrjje7PWeCBaLlWBKkqoQExSiCOGoNABtDrV2dxL56efzkg/HXjiuqHqhI b3sziV2fmpsdF3p7i6KIuYev4+FAQMlnki/QFxbQT2W2iLZEZA2gvp2vAi3skYVvGjyi 0odxHBRFy9tk3976MWvlDspGCIlmYRXswEG4ufb83CC4WhWmp2lrFnE4f8aUYBXpfmv7 eYGMHwLJjgmnNbLPZNQjng22NG1W5Y0l72OEZyo9zWUZ49qJteyo6/UQTZHRRNAmt4QD aRGcdrWAj7nul2NAY+pE70wci03Drbytijf1nedjOkrTci52bVnkM1+nLuLjeDpzlYrx cvtQ== X-Gm-Message-State: ABy/qLYCkcHCYNRi0z1GsYZLBZc7LwAdhJ2m5gILcjYxdBXFFViWtJam vI1oAbAfsfXkFSRBGlIos1DsAT7++89O5Ch2A/A= X-Google-Smtp-Source: ACHHUZ4FMAdo81GaiQbTQp6jj/59wk+DK5lfQ2yYvIOnc2E+s/tR61rxQNAGSydn96fjml4dwTrJpg== X-Received: by 2002:a05:6870:7815:b0:19e:cfe6:8758 with SMTP id hb21-20020a056870781500b0019ecfe68758mr2727441oab.13.1688119706018; Fri, 30 Jun 2023 03:08:26 -0700 (PDT) From: Daniel Henrique Barboza To: qemu-devel@nongnu.org Cc: qemu-riscv@nongnu.org, alistair.francis@wdc.com, bmeng@tinylab.org, liweiwei@iscas.ac.cn, zhiwei_liu@linux.alibaba.com, palmer@rivosinc.com, ajones@ventanamicro.com, philmd@linaro.org, Daniel Henrique Barboza Subject: [PATCH v7 02/20] hw/riscv/virt.c: skip 'mmu-type' FDT if satp mode not set Date: Fri, 30 Jun 2023 07:07:53 -0300 Message-ID: <20230630100811.287315-3-dbarboza@ventanamicro.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230630100811.287315-1-dbarboza@ventanamicro.com> References: <20230630100811.287315-1-dbarboza@ventanamicro.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2001:4860:4864:20::35; envelope-from=dbarboza@ventanamicro.com; helo=mail-oa1-x35.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, T_SCC_BODY_TEXT_LINE=-0.01 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ventanamicro.com) X-ZM-MESSAGEID: 1688119756215100001 The absence of a satp mode in riscv_host_cpu_init() is causing the following error: $ ./qemu/build/qemu-system-riscv64 -machine virt,accel=3Dkvm \ -m 2G -smp 1 -nographic -snapshot \ -kernel ./guest_imgs/Image \ -initrd ./guest_imgs/rootfs_kvm_riscv64.img \ -append "earlycon=3Dsbi root=3D/dev/ram rw" \ -cpu host ** ERROR:../target/riscv/cpu.c:320:satp_mode_str: code should not be reached Bail out! ERROR:../target/riscv/cpu.c:320:satp_mode_str: code should not be reached Aborted The error is triggered from create_fdt_socket_cpus() in hw/riscv/virt.c. It's trying to get satp_mode_str for a NULL cpu->cfg.satp_mode.map. For this KVM cpu we would need to inherit the satp supported modes from the RISC-V host. At this moment this is not possible because the KVM driver does not support it. And even when it does we can't just let this broken for every other older kernel. Since mmu-type is not a required node, according to [1], skip the 'mmu-type' FDT node if there's no satp_mode set. We'll revisit this logic when we can get satp information from KVM. [1] https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/= cpu.yaml Signed-off-by: Daniel Henrique Barboza Reviewed-by: Andrew Jones Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- hw/riscv/virt.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 95708d890e..f025a0fcaf 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -243,13 +243,13 @@ static void create_fdt_socket_cpus(RISCVVirtState *s,= int socket, s->soc[socket].hartid_base + cpu); qemu_fdt_add_subnode(ms->fdt, cpu_name); =20 - satp_mode_max =3D satp_mode_max_from_map( - s->soc[socket].harts[cpu].cfg.satp_mode.map); - sv_name =3D g_strdup_printf("riscv,%s", - satp_mode_str(satp_mode_max, is_32_bit)); - qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type", sv_name); - g_free(sv_name); - + if (cpu_ptr->cfg.satp_mode.supported !=3D 0) { + satp_mode_max =3D satp_mode_max_from_map(cpu_ptr->cfg.satp_mod= e.map); + sv_name =3D g_strdup_printf("riscv,%s", + satp_mode_str(satp_mode_max, is_32_b= it)); + qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type", sv_name= ); + g_free(sv_name); + } =20 name =3D riscv_isa_string(cpu_ptr); qemu_fdt_setprop_string(ms->fdt, cpu_name, "riscv,isa", name); --=20 2.41.0