From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662522589463.0719534874878; Wed, 21 Dec 2022 14:42:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87le-0007Lv-67; Wed, 21 Dec 2022 17:40:54 -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 1p87la-0007LO-0L for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:50 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lV-0000bQ-F5 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:49 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:31 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:00 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:32 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLR6BBZz1RvTr for ; Wed, 21 Dec 2022 14:40:31 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Y6prZ0ath7My for ; Wed, 21 Dec 2022 14:40:30 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLP1nSDz1RvTp; Wed, 21 Dec 2022 14:40:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662445; x=1703198445; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FRlSMP2b8zsVb4/ZDgFRZe/06W5GBU6yfCP7/T4rVJo=; b=ERxN8595S7RnSBiUsHyQW1qkYa35EZzZmrNItn9JWwvmqSE+EvQQoAPE O5PL7Xel77zgRoemgagkZ9pQi/ypnJgURu2JPwK+HbZVJvleVva+Txp50 gza855oAqqPMZlz3ts64Zc2msNNLcNO/vSpEQThvDU6frzY4gmWBKn01v xxwXKsI68MMnDCD54Wj8AV/AHGo3JKPnsUYXcSgWGZMbM3wYLq9/5TdiG GaatFtO3TwanqEzTb50AJrughsDyDUnyKkA+4VeiIxaEZhHOLj0tiYflL dqeb7U2pCkUDSIIVkD+exwlAphinbulPpVJEYNDFFSidTLxyN0jCV1Kjm g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561261" IronPort-SDR: Cb6EHoXTgRNbT+6jwyLmSOeFRlrD9YlASSkovbI+QsYZSadXwF4xhtBhkfiSmNZ3rvozK2hunE 4b+r71mvHCYGYxQXTCHvCe60svrq8ufbFnWwR2LcXGmBYm2NvmibB6yGSQUNCtSywrK48zmSxs xty2UeHZqzZZvZkRZn2Wf9qmaQ19YKhVvvQ1VfwWfiHRDj/7MQyXi+tcRoalaiU9e1H0JSE7DR q/cH1IJERZFpvL9RyQ/K49Q+8/1xMMIFIkWfXRil2cvg72YMcFIpqLA9RJE3a0MZoO7JrJx4h2 QmA= IronPort-SDR: mKB1SkxdoSw4ETgj7KJAcf8Nd2K09EYWt3mLrsSOu6hfYQZjvVTVhKTh3U6wuupJLEedimJG4B hjKup7hr+eZ/3RTcInDlQeeL18cXgXInsdSjiIgomZKRdKsSLWs3EpcnLIK6kguoH+HfqgAwEy w/kySlfCAJX+fjHtVaPaOZJv0ZMLgVIsHAtgPlKMClQ6iG2ABt+JjKgZZ6FVBdA/5ZkL0qbAF5 M1rmOOa0gH2LbaVeeg3kPKGYX8QUy5mPS0Hvwb1STOCVmqY7W4otYuXEB0QS7rbOen9BMyCefO ugo= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662430; x=1674254431; bh=FRlSMP2b8zsVb4/ZDg FRZe/06W5GBU6yfCP7/T4rVJo=; b=NcRp3FbwkxLpI/T7oExE7xk1FrbtSMnueu 9Biarnpxaav2s2Df0nLF1XoAtai3BZGWAN8QOIyvSGAqEPMIBievSPgSP/8y5HvL x/SDVf5T8xpFOBP9fHjeLrW0oLhSG+SlwsUGfTdGA8eG1mSr+vVVIoImPXw4r1mr UfbMuRiD20gjRJDi4vvwLpwNydWiNVkbX+lkeAZPKQQ03Y9gfbAgVQais/fd3q7h HUh1MN1bMxWca0p1rnuYjQj/U7oKlMpi+5N0EC5sHrj/3KGqvnjZ7QABsEbc+9oD Kb1/cMUnZO2J3LmuBOn76DPOObmmiCpHBD7NHBkvV97S8//s8ylg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, LIU Zhiwei , Alistair Francis Subject: [PULL v2 01/45] target/riscv: Fix PMP propagation for tlb Date: Thu, 22 Dec 2022 08:39:38 +1000 Message-Id: <20221221224022.425831-2-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662523646100001 Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei Only the pmp index that be checked by pmp_hart_has_privs can be used by pmp_get_tlb_size to avoid an error pmp index. Before modification, we may use an error pmp index. For example, we check address 0x4fc, and the size 0x4 in pmp_hart_has_privs. If there is an pmp rule, valid range is [0x4fc, 0x500), then pmp_hart_has_privs will return true; However, this checked pmp index is discarded as pmp_hart_has_privs return bool value. In pmp_is_range_in_tlb, it will traverse all pmp rules. The tlb_sa will be 0x0, and tlb_ea will be 0xfff. If there is a pmp rule [0x10, 0x14), it will be misused as it is legal in pmp_get_tlb_size. As we have already known the correct pmp index, just remove the remove the pmp_is_range_in_tlb and get tlb size directly from pmp_get_tlb_size. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221012060016.30856-1-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis --- target/riscv/pmp.h | 6 +-- target/riscv/cpu_helper.c | 16 ++++--- target/riscv/pmp.c | 90 +++++++++++++-------------------------- 3 files changed, 42 insertions(+), 70 deletions(-) diff --git a/target/riscv/pmp.h b/target/riscv/pmp.h index a8dd797476..da32c61c85 100644 --- a/target/riscv/pmp.h +++ b/target/riscv/pmp.h @@ -72,11 +72,11 @@ target_ulong mseccfg_csr_read(CPURISCVState *env); void pmpaddr_csr_write(CPURISCVState *env, uint32_t addr_index, target_ulong val); target_ulong pmpaddr_csr_read(CPURISCVState *env, uint32_t addr_index); -bool pmp_hart_has_privs(CPURISCVState *env, target_ulong addr, +int pmp_hart_has_privs(CPURISCVState *env, target_ulong addr, target_ulong size, pmp_priv_t privs, pmp_priv_t *allowed_privs, target_ulong mode); -bool pmp_is_range_in_tlb(CPURISCVState *env, hwaddr tlb_sa, - target_ulong *tlb_size); +target_ulong pmp_get_tlb_size(CPURISCVState *env, int pmp_index, + target_ulong tlb_sa, target_ulong tlb_ea); void pmp_update_rule_addr(CPURISCVState *env, uint32_t pmp_index); void pmp_update_rule_nums(CPURISCVState *env); uint32_t pmp_get_num_rules(CPURISCVState *env); diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 278d163803..5d66246c2c 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -706,24 +706,26 @@ static int get_physical_address_pmp(CPURISCVState *en= v, int *prot, int mode) { pmp_priv_t pmp_priv; - target_ulong tlb_size_pmp =3D 0; + int pmp_index =3D -1; =20 if (!riscv_feature(env, RISCV_FEATURE_PMP)) { *prot =3D PAGE_READ | PAGE_WRITE | PAGE_EXEC; return TRANSLATE_SUCCESS; } =20 - if (!pmp_hart_has_privs(env, addr, size, 1 << access_type, &pmp_priv, - mode)) { + pmp_index =3D pmp_hart_has_privs(env, addr, size, 1 << access_type, + &pmp_priv, mode); + if (pmp_index < 0) { *prot =3D 0; return TRANSLATE_PMP_FAIL; } =20 *prot =3D pmp_priv_to_page_prot(pmp_priv); - if (tlb_size !=3D NULL) { - if (pmp_is_range_in_tlb(env, addr & ~(*tlb_size - 1), &tlb_size_pm= p)) { - *tlb_size =3D tlb_size_pmp; - } + if ((tlb_size !=3D NULL) && pmp_index !=3D MAX_RISCV_PMPS) { + target_ulong tlb_sa =3D addr & ~(TARGET_PAGE_SIZE - 1); + target_ulong tlb_ea =3D tlb_sa + TARGET_PAGE_SIZE - 1; + + *tlb_size =3D pmp_get_tlb_size(env, pmp_index, tlb_sa, tlb_ea); } =20 return TRANSLATE_SUCCESS; diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index 2b43e399b8..d1126a6066 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -292,8 +292,11 @@ static bool pmp_hart_has_privs_default(CPURISCVState *= env, target_ulong addr, =20 /* * Check if the address has required RWX privs to complete desired operati= on + * Return PMP rule index if a pmp rule match + * Return MAX_RISCV_PMPS if default match + * Return negtive value if no match */ -bool pmp_hart_has_privs(CPURISCVState *env, target_ulong addr, +int pmp_hart_has_privs(CPURISCVState *env, target_ulong addr, target_ulong size, pmp_priv_t privs, pmp_priv_t *allowed_privs, target_ulong mode) { @@ -305,8 +308,10 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ulo= ng addr, =20 /* Short cut if no rules */ if (0 =3D=3D pmp_get_num_rules(env)) { - return pmp_hart_has_privs_default(env, addr, size, privs, - allowed_privs, mode); + if (pmp_hart_has_privs_default(env, addr, size, privs, + allowed_privs, mode)) { + ret =3D MAX_RISCV_PMPS; + } } =20 if (size =3D=3D 0) { @@ -333,7 +338,7 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ulon= g addr, if ((s + e) =3D=3D 1) { qemu_log_mask(LOG_GUEST_ERROR, "pmp violation - access is partially inside\n"); - ret =3D 0; + ret =3D -1; break; } =20 @@ -436,18 +441,22 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ul= ong addr, } } =20 - ret =3D ((privs & *allowed_privs) =3D=3D privs); + if ((privs & *allowed_privs) =3D=3D privs) { + ret =3D i; + } break; } } =20 /* No rule matched */ if (ret =3D=3D -1) { - return pmp_hart_has_privs_default(env, addr, size, privs, - allowed_privs, mode); + if (pmp_hart_has_privs_default(env, addr, size, privs, + allowed_privs, mode)) { + ret =3D MAX_RISCV_PMPS; + } } =20 - return ret =3D=3D 1 ? true : false; + return ret; } =20 /* @@ -586,64 +595,25 @@ target_ulong mseccfg_csr_read(CPURISCVState *env) * Calculate the TLB size if the start address or the end address of * PMP entry is presented in the TLB page. */ -static target_ulong pmp_get_tlb_size(CPURISCVState *env, int pmp_index, - target_ulong tlb_sa, target_ulong tlb= _ea) +target_ulong pmp_get_tlb_size(CPURISCVState *env, int pmp_index, + target_ulong tlb_sa, target_ulong tlb_ea) { target_ulong pmp_sa =3D env->pmp_state.addr[pmp_index].sa; target_ulong pmp_ea =3D env->pmp_state.addr[pmp_index].ea; =20 - if (pmp_sa >=3D tlb_sa && pmp_ea <=3D tlb_ea) { - return pmp_ea - pmp_sa + 1; - } - - if (pmp_sa >=3D tlb_sa && pmp_sa <=3D tlb_ea && pmp_ea >=3D tlb_ea) { - return tlb_ea - pmp_sa + 1; - } - - if (pmp_ea <=3D tlb_ea && pmp_ea >=3D tlb_sa && pmp_sa <=3D tlb_sa) { - return pmp_ea - tlb_sa + 1; - } - - return 0; -} - -/* - * Check is there a PMP entry which range covers this page. If so, - * try to find the minimum granularity for the TLB size. - */ -bool pmp_is_range_in_tlb(CPURISCVState *env, hwaddr tlb_sa, - target_ulong *tlb_size) -{ - int i; - target_ulong val; - target_ulong tlb_ea =3D (tlb_sa + TARGET_PAGE_SIZE - 1); - - for (i =3D 0; i < MAX_RISCV_PMPS; i++) { - val =3D pmp_get_tlb_size(env, i, tlb_sa, tlb_ea); - if (val) { - if (*tlb_size =3D=3D 0 || *tlb_size > val) { - *tlb_size =3D val; - } - } - } - - if (*tlb_size !=3D 0) { + if (pmp_sa <=3D tlb_sa && pmp_ea >=3D tlb_ea) { + return TARGET_PAGE_SIZE; + } else { /* - * At this point we have a tlb_size that is the smallest possible = size - * That fits within a TARGET_PAGE_SIZE and the PMP region. - * - * If the size is less then TARGET_PAGE_SIZE we drop the size to 1. - * This means the result isn't cached in the TLB and is only used = for - * a single translation. - */ - if (*tlb_size < TARGET_PAGE_SIZE) { - *tlb_size =3D 1; - } - - return true; + * At this point we have a tlb_size that is the smallest possible s= ize + * That fits within a TARGET_PAGE_SIZE and the PMP region. + * + * If the size is less then TARGET_PAGE_SIZE we drop the size to 1. + * This means the result isn't cached in the TLB and is only used f= or + * a single translation. + */ + return 1; } - - return false; } =20 /* --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662517619756.857909859059; Wed, 21 Dec 2022 14:41:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87le-0007Lw-6O; Wed, 21 Dec 2022 17:40:54 -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 1p87lZ-0007LN-UJ for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:50 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lW-0000bf-IE for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:49 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:33 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:02 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:33 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLT1F55z1RvTp for ; Wed, 21 Dec 2022 14:40:33 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id rdGFDpOKS6ta for ; Wed, 21 Dec 2022 14:40:32 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLR23w3z1RvLy; Wed, 21 Dec 2022 14:40:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662446; x=1703198446; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CI5uErihF5w7ZBbRgK9Gg9eNSt3tdaxo7HSFvtv5odE=; b=aAeEC8vG6SkKtjg/Q5wOikOqqORwnj96WNhwPaU6QHkXup2/rcYJRpGY 9sT5banDyvikFcpNR5VbRb8zTvepaOhnR1YUqqnBDL79VDflcXufWqakn UbxLCgVgsJ9h7x/ARe+HAk14F0n02k8Xtu3C6/z+XuJC6FdBUBsA1k6EB z0tfSu1Vwqrksz7QYS1QVF4ImzwkHK1ZJ4fVrlCbalRD1ugrRW6LFfEZh 0yxJl3gJaEEjC/j842KN3GnxpNEWB8g0qMzuKUqzD9kZF2GtOOjimr3+l GiHdFw2u46vWaHuAq5nfrry9ulo9nayLKCnIZ5IQFWrxBzFfesgk9BcHs A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561264" IronPort-SDR: 2v8QIhBxuFNP2FlJXbEsJbPMzZzJiIX8pya3YD+ixaABejoNFSK4v5xJJRqvrnlpSZWXH3hPIU O1we+0D0DAXVOpwgh7S7SpBg0UXHN8prvkyV81Xsybj2oxAKl1XCDdVRwSD+l42wd8+gcBerEW Tl0Q28YurJHmrx2DIfUQ1QPZq8z9bSYeemdqDNes2bnVs/r66iLz1LxdGseqhIEUoPEUelSu0d RtDmGk1K7kvh0qM6bYzYwQip50zlrZCGIWQJ55tnY4DvBJoy2FN5oqMwggbMjIpkFNJV1wUr7D ywQ= IronPort-SDR: TTaMnDWPk+TQTvCom3G7KcfvwWlfDpp6VxpHjs4NH3wo41ZU4MkVy9BKTG5KCQXPcbKvVfxFzJ j5Kvb1sljpr16BAlhl5r/+hWm/QDEadlIo2r8Zyksq1P/RwLgpABGBEz6OnhmGBKrarkPE57R1 Xw+1v6V7MV8Ypy4LcxXbu0iklP4z+CcqGvbM4rqJMzI1SPuCaovclrAWGs97lRJD+DBzqmDSo5 67djWYqCtqpKkBTCNshcEBHJajXP3yI7QnvcuKWHuSIQauI2oW44tVYHHVB5RxjEbLt84S0EvF iNw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662432; x=1674254433; bh=CI5uErihF5w7ZBbRgK 9Gg9eNSt3tdaxo7HSFvtv5odE=; b=X8jG4t/WUpVLeHa3pMMptxNIfeYqDit5KA l64Hy6+V21Lq4k82MohAMZjP4HSngQX8wvQIZa+s/92+E4p+wLY9swvoDCUKhi4q dNy5kAbJDtL9EO7LPZm01z/RSuX58s/2CiWs22ShxVt2O6SCkLRxPqTdR4qlsWwu dPfti2DHBM4nNH5WaR/KTSc/dOzm2K3NZo0lSJINtImyfEYb+vAq5lCY3stJwdOG /cGOVxtOinMDVYiJwMZfcVLxdtb9M/Rd7eNEkx90r4QLO5QIk+Mzm0UJOQelM9Dz XUFUxlhrAq3xCdhPohy/IYSquu6LHhxLVF3lzyeOSDlyggOyMuqg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Alistair Francis Subject: [PULL v2 02/45] hw/registerfields: add `FIELDx_1CLEAR()` macro Date: Thu, 22 Dec 2022 08:39:39 +1000 Message-Id: <20221221224022.425831-3-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662519613100012 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa Adds a helper macro that implements the register `w1c` functionality. Ex: uint32_t data =3D FIELD32_1CLEAR(val, REG, FIELD); If ANY bits of the specified `FIELD` is set then the respective field is cleared and returned to `data`. If the field is cleared (0), then no change and val is returned. Signed-off-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221017054950.317584-2-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- include/hw/registerfields.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/hw/registerfields.h b/include/hw/registerfields.h index 1330ca77de..0b8404c2f7 100644 --- a/include/hw/registerfields.h +++ b/include/hw/registerfields.h @@ -115,6 +115,28 @@ R_ ## reg ## _ ## field ## _LENGTH, _v.v); \ _d; }) =20 +/* + * Clear the specified field in storage if + * any field bits are set, else no changes made. Implements + * single/multi-bit `w1c` + * + */ +#define FIELD8_1CLEAR(storage, reg, field) \ + (FIELD_EX8(storage, reg, field) ? \ + FIELD_DP8(storage, reg, field, 0x00) : storage) + +#define FIELD16_1CLEAR(storage, reg, field) \ + (FIELD_EX16(storage, reg, field) ? \ + FIELD_DP16(storage, reg, field, 0x00) : storage) + +#define FIELD32_1CLEAR(storage, reg, field) \ + (FIELD_EX32(storage, reg, field) ? \ + FIELD_DP32(storage, reg, field, 0x00) : storage) + +#define FIELD64_1CLEAR(storage, reg, field) \ + (FIELD_EX64(storage, reg, field) ? \ + FIELD_DP64(storage, reg, field, 0x00) : storage) + #define FIELD_SDP8(storage, reg, field, val) ({ \ struct { \ signed int v:R_ ## reg ## _ ## field ## _LENGTH; \ --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663429808451.64898188457664; Wed, 21 Dec 2022 14:57:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lg-0007Mw-Eh; Wed, 21 Dec 2022 17:40:56 -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 1p87lb-0007Le-7K for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:51 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lY-0000Xf-M4 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:50 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:34 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:03 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:35 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLV6nGyz1RvLy for ; Wed, 21 Dec 2022 14:40:34 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id BJZ6zXumrtH7 for ; Wed, 21 Dec 2022 14:40:34 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLT220vz1Rwt8; Wed, 21 Dec 2022 14:40:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662448; x=1703198448; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=R0UTDDb8qlNNbQTJDvqcP3kxtottUm1EerNxVeKk0so=; b=WNmP1s4cP65j9mlkN+LkEsDzO3mxh1isTRWN5rMAKdjDySHihHbbvomP Gwu3VLX9gAr8tEHUYesjoigUAiV5lYjiFKuzYO0CubmONrZ4x02VCGblk kcj6FqsyIm6hR+Hot3zjD3fIhROLOw+al7K6Mk/k/Ldp397HsnqbbcIbq 1A80vC8ksXqeng3W9Ghrg2wtZmaMBw3gj9VHt+D97M9z2eRSDgTf4ulwJ rU9BI6AOXE7n4uyWbpskO+NWCe1PCsOZ12+0+5+AKdp8y9DnGA2cjF+lX TsQzFEgHkbb+AwEPvJHR4v8gm9nCbrKRLZQj6iY4Ofcqla1rW54LYk02t Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561271" IronPort-SDR: 1n6NuF+m3LKxiB5eu06GcAhrCucYjRhEWNDE8cqUSwlLmyBu9kRyqtnFUiEeJk/AUMTRNdjOKA 22ywhD3N6eZVhRB4Ip22GoSe/cYaGFzKWFRlSUBSq1PJMXRMDQ+sajIIuQBUUm/ooBuGLY/pd1 t6rB23Rf3xnw8UPOaeQ8vBMvjqMkAY72o5iB+WjuxmMPGuUbyiBzBQet+oKrxUBXeNTcR/mKmS 9OAlqvtA5UkKpGZy+8MREC6ylfx8bMlTVtxYSAvY5OB8d8UvV9FdpE6q2F0dAF5lwFr6N4K6NM jFw= IronPort-SDR: HLH4DYj1WAHg5w6PVLTfa22zBvYagVEje5qVtjNbxGesSjud0okADYhpIv4qAjw+S82b+TNLvN 8XS+CrOt+QtHOuBXSE0WJVIEAvs29kxaQpy9nCvCc6nfArU/x7RRGfCwVrIQApvqrHqfrq2A7J 84hJBwpzeEPlTE9gHj2TsBLaC0FNBan+dxLSylBYrV5HqqznM9zZZRey1hY55Lhhpesnmxjcw5 3/mDOzk6n70L6addn4MUSbzHozZAo0rZ+fCpaUi2gdH0ZUepHH0RXW9Q6rqTanLsIbJtiV2zv6 0WM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662434; x=1674254435; bh=R0UTDDb8qlNNbQTJDv qcP3kxtottUm1EerNxVeKk0so=; b=fMEfVuE5bPq2uCI56Z8SdgSFMQrcXXLP3o cqHOvzg7pKhKke+z1j4xR7KNdqLh8mMtyJIiuxhACjojfUHaYctjCSkuI2O8sBUm /OEeVu1NTZhN6RAigxBgMK5vpGGDimzkQuFfog8Ga9gdnAUcWEFfE+Cq9fDHPiCG wDhRdeq+2HGXXOa5ytSw42KbFhyIL8+bINECTjUFOzzJNxFXX6qi76KuyndYHayL x+whlHeC/nHFWR+hDoolBQFAc7gddLt/YbeqPG1HRgVFz0dvMfrEFJNL5InkuVb7 QtSm5emphopZ33bTjkaZkxVi0G1eqgyENG78n18oW/iTFaryrlQA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Alistair Francis Subject: [PULL v2 03/45] hw/ssi/ibex_spi: implement `FIELD32_1CLEAR` macro Date: Thu, 22 Dec 2022 08:39:40 +1000 Message-Id: <20221221224022.425831-4-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663431839100007 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa use the `FIELD32_1CLEAR` macro to implement register `rw1c` functionality to `ibex_spi`. This change was tested by running the `SPI_HOST` from TockOS. Signed-off-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221017054950.317584-3-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- hw/ssi/ibex_spi_host.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/hw/ssi/ibex_spi_host.c b/hw/ssi/ibex_spi_host.c index 57df462e3c..0a456cd1ed 100644 --- a/hw/ssi/ibex_spi_host.c +++ b/hw/ssi/ibex_spi_host.c @@ -342,7 +342,7 @@ static void ibex_spi_host_write(void *opaque, hwaddr ad= dr, { IbexSPIHostState *s =3D opaque; uint32_t val32 =3D val64; - uint32_t shift_mask =3D 0xff, status =3D 0, data =3D 0; + uint32_t shift_mask =3D 0xff, status =3D 0; uint8_t txqd_len; =20 trace_ibex_spi_host_write(addr, size, val64); @@ -355,12 +355,11 @@ static void ibex_spi_host_write(void *opaque, hwaddr = addr, case IBEX_SPI_HOST_INTR_STATE: /* rw1c status register */ if (FIELD_EX32(val32, INTR_STATE, ERROR)) { - data =3D FIELD_DP32(data, INTR_STATE, ERROR, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], INTR_STATE, ER= ROR); } if (FIELD_EX32(val32, INTR_STATE, SPI_EVENT)) { - data =3D FIELD_DP32(data, INTR_STATE, SPI_EVENT, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], INTR_STATE, SP= I_EVENT); } - s->regs[addr] =3D data; break; case IBEX_SPI_HOST_INTR_ENABLE: s->regs[addr] =3D val32; @@ -505,27 +504,25 @@ static void ibex_spi_host_write(void *opaque, hwaddr = addr, * When an error occurs, the corresponding bit must be cleared * here before issuing any further commands */ - status =3D s->regs[addr]; /* rw1c status register */ if (FIELD_EX32(val32, ERROR_STATUS, CMDBUSY)) { - status =3D FIELD_DP32(status, ERROR_STATUS, CMDBUSY, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = CMDBUSY); } if (FIELD_EX32(val32, ERROR_STATUS, OVERFLOW)) { - status =3D FIELD_DP32(status, ERROR_STATUS, OVERFLOW, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = OVERFLOW); } if (FIELD_EX32(val32, ERROR_STATUS, UNDERFLOW)) { - status =3D FIELD_DP32(status, ERROR_STATUS, UNDERFLOW, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = UNDERFLOW); } if (FIELD_EX32(val32, ERROR_STATUS, CMDINVAL)) { - status =3D FIELD_DP32(status, ERROR_STATUS, CMDINVAL, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = CMDINVAL); } if (FIELD_EX32(val32, ERROR_STATUS, CSIDINVAL)) { - status =3D FIELD_DP32(status, ERROR_STATUS, CSIDINVAL, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = CSIDINVAL); } if (FIELD_EX32(val32, ERROR_STATUS, ACCESSINVAL)) { - status =3D FIELD_DP32(status, ERROR_STATUS, ACCESSINVAL, 0); + s->regs[addr] =3D FIELD32_1CLEAR(s->regs[addr], ERROR_STATUS, = ACCESSINVAL); } - s->regs[addr] =3D status; break; case IBEX_SPI_HOST_EVENT_ENABLE: /* Controls which classes of SPI events raise an interrupt. */ --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662518657991.4575551123118; Wed, 21 Dec 2022 14:41:58 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87li-0007Nh-5m; Wed, 21 Dec 2022 17:40:58 -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 1p87ld-0007Lz-NN for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:54 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87la-0000bf-Hb for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:52 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:37 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:05 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:37 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLY0gZ9z1RwqL for ; Wed, 21 Dec 2022 14:40:37 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id dTR53Z5EFMMT for ; Wed, 21 Dec 2022 14:40:36 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLV6v6wz1RvTp; Wed, 21 Dec 2022 14:40:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662450; x=1703198450; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CA4KckVxC2yHEoq4Su2S93cY9ilRgoP8o3uZSJMhlOs=; b=NYzENApu+7cHHFDA7B2heKBhlezoJGuBQaCyGzVcCCNUxvghQoSQrzEh NDWy+gZk93hAccyhYmwrFTNMFia9bsMomu1yW+t2k3/jUo6XyqlpdJZIT m/xA1K+2Y2bZ7XIHfwtgVb9baPxIy39AO1SzCidXDStHZNQ/4LYekKUKT RWOZg29bMTI9G4Qo8NkfJWT/Jue9E62qSmw1u/i+dkUoZOPkCb+QeEx2H vXn//u0Jn4ElQi6JvN0rvoebluI6DSYKwrfYMCe7PTUuE4Nx9cqPtFROA BJoCqkG2Yb+SH+OSzEWDjPfEnpx52sW8Gc36A5UiWPTHcY3CU6cSNb2QZ Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561276" IronPort-SDR: /dQ6uCVwTyzk1kegwZd9h4rdYwqzx2io2jirk9Yjf5nEFbVWHd6Wn0gvFmEqqReI1l6h/5/8Xk eWDYr7EeMyLdPgHOfE+EP9qZyyYDJJfPBP5Gi2BFMzQQPeHv1CcBup9PZSpZrp4etMbih2drD2 2FW2vPLdXqVVHsPZM4kajxtdPMUXvDYCeAIPsMS+MIC4V3RuYPFIiMbruYWKeSrgsQP6CQhEHq Mi3LtckMB64/eUmZBAbs9qtYuA9/QET8+AT6F08XC8dAGHNnQwUSWYhiXepl45fNOjarGlUjv2 h/4= IronPort-SDR: iDnPKdkjWlrZ/8F/w8jaCaloQGFOqH4zSAwwtgP8G0YbxuWkN5euQH+R/6PB/qyh5xiHE7ZyZF pM1A4234CYOJJZEaypwvxn2f8IXCeof/csigH1BbObqB+wRryTpEl25U3WBGwsxjeou6kA/cLV NP7HzHLEzRUxy29oMNGPDJsF2XdmbeCeUmV07gZcgt5bcjjn587jQ+lps+E7yKen8wwlO5693S ya6kO4Tli8nrmeFpnoqPJWaQMOPrBTFS3MBSI6sIWi60dR1abXaMWgr0j8tJqvAaaHM77lzQNe bi8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662436; x=1674254437; bh=CA4KckVxC2yHEoq4Su 2S93cY9ilRgoP8o3uZSJMhlOs=; b=sU1ADYOSQlQqGe8WpgfzupwTRaWRNWBqQK Z9Mn2V1SAWj3Gdg2xqkieY1IZGuFViqBySgPrvdLRePamNkLlEDGsE6DqOmDT0xu GgzPbasVbFPRt5aGpg4A90Y0yj4c4SBfocTRMSCNScwSZ/KocY/rVynBXmVQ1jit NY2P0en4Ri54fHUu7AEx+nTxJfgardFmrwiPZnVrVoY8UgK91AilxyRtCqEbYFCi bgUgZNZei3PRCw6qmeu0bo0O0D4W58SJwozJg6MPG233v+t/iTiF5bTVPD6kyGaN 5qYMePjWrdayTsoFkvaiO19+20SAQMETR3FBXa8a7jCHG2tE0ojg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Richard Henderson , LIU Zhiwei , Alistair Francis Subject: [PULL v2 04/45] tcg/riscv: Fix range matched by TCG_CT_CONST_M12 Date: Thu, 22 Dec 2022 08:39:41 +1000 Message-Id: <20221221224022.425831-5-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662519614100013 Content-Type: text/plain; charset="utf-8" From: Richard Henderson We were matching a signed 13-bit range, not a 12-bit range. Expand the commentary within the function and be explicit about all of the ranges. Reported-by: LIU Zhiwei Signed-off-by: Richard Henderson Reviewed-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221022095821.2441874-1-richard.henderson@linaro.org> Signed-off-by: Alistair Francis --- tcg/riscv/tcg-target.c.inc | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 81a83e45b1..191197853f 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -154,13 +154,26 @@ static bool tcg_target_const_match(int64_t val, TCGTy= pe type, int ct) if ((ct & TCG_CT_CONST_ZERO) && val =3D=3D 0) { return 1; } - if ((ct & TCG_CT_CONST_S12) && val =3D=3D sextreg(val, 0, 12)) { + /* + * Sign extended from 12 bits: [-0x800, 0x7ff]. + * Used for most arithmetic, as this is the isa field. + */ + if ((ct & TCG_CT_CONST_S12) && val >=3D -0x800 && val <=3D 0x7ff) { return 1; } - if ((ct & TCG_CT_CONST_N12) && -val =3D=3D sextreg(-val, 0, 12)) { + /* + * Sign extended from 12 bits, negated: [-0x7ff, 0x800]. + * Used for subtraction, where a constant must be handled by ADDI. + */ + if ((ct & TCG_CT_CONST_N12) && val >=3D -0x7ff && val <=3D 0x800) { return 1; } - if ((ct & TCG_CT_CONST_M12) && val >=3D -0xfff && val <=3D 0xfff) { + /* + * Sign extended from 12 bits, +/- matching: [-0x7ff, 0x7ff]. + * Used by addsub2, which may need the negative operation, + * and requires the modified constant to be representable. + */ + if ((ct & TCG_CT_CONST_M12) && val >=3D -0x7ff && val <=3D 0x7ff) { return 1; } return 0; --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662966223912.6333749881763; Wed, 21 Dec 2022 14:49:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lh-0007NP-Ax; Wed, 21 Dec 2022 17:40:57 -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 1p87ld-0007M0-NM for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:54 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87la-0000bQ-IA for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:52 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:41 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:08 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:40 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLb30fzz1RvTp for ; Wed, 21 Dec 2022 14:40:39 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id r5dBrs1uXF0K for ; Wed, 21 Dec 2022 14:40:39 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLY15CFz1Rwt8; Wed, 21 Dec 2022 14:40:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662450; x=1703198450; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SPaspSsWq01oD2q07tmSbRBBdO5kaHAHyKb++qDpmvA=; b=hxfiUtfpu2MBXcmsI0kRKvwLD1GNRkHx2TUN3Nx2glxVmBuZw5Co5eWK gmd6rp9gBAUekmK/zQJpYyETzrbiovEtcwfUBD1LK4vYjuthIaqEWQ87s x+37g3LhRQC3Gkb0PhoE/rbo8nJXW+MHQUWvYiGk+e54+E5I/OXwh5eBs xDJejkDVgC8McQyxGee+1TQHeWL0AcCgUf6kKJMhWgT/kyanndqgRqUed TzeHlcPlJRgxvNX2wAm4pl3pvBI4QbXvCeAuPUye9WI9L08VilxO4Vcbx 9mdzrsjfPz3+uHGfIMa7oIeAKVb8aeFMY3cmNcAup5fmPWdCxk2doId/L g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561281" IronPort-SDR: +uxMfVgwk3wCwdnoDLxTmZA23VNPMqZ84UhvkVhhfyv/04soUj4PD26qvZU15VpCBy155c09cl xUCTORxvRX2H0AmMJFFg+1jKYf2t9WM7fJl3Dde/jlzjOm59cRrrp03HZJlg83HkLnUUhV6Dke wyrLYuSi1VRNuyf760z07gtkyLlXIWqVwMvBFwafstsLhjMBaax8FI+e5UGi3iutqqgluX4TLO A0Dp/RHMwKxQsL6MGWcePM8iJUE/gvq1ZnLjfM9i7538LAqnjTsTrwaG/4hTxIJWI6hrbCsFQg PYY= IronPort-SDR: tEWB27miB/4tBOJvt6UG/k5AEKHr4Vu3nG2L3PkRIgauAyV33hV+Xua469SpCzsfLaevE2fcGd SiwpAnpqkGErdNJV60ELOipb2Go7QKssOxeDFqpzmbLcWJPBjSkCAzhiY9tTWMGULXIj318HjZ DrSzeasUHnSX5HKyZZsWJLiY/4e1m8W6JXk8EnLZ+zRBreXW0ngZ7+Q7182U8Q2/VBmJlPQoAq gc4c2EhOwrnjcIP7srHZzqnlU9XV/fQp0wNr6cne3XpjHjutYGzVL8/KdR4kMjn83WCAmQu3fu BW8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662439; x=1674254440; bh=SPaspSsWq01oD2q07t mSbRBBdO5kaHAHyKb++qDpmvA=; b=aoMbUVwswy2g7fuyIRbVn+RxcY3FmvWNoZ z9Dh7FB+XlD49xD/L5NbxRj4jRyZvWnCTeI2w6eaY88O5YODK6A2A2r++DFUqhwI CyW16gW4KD4Zeq83mZ8X0+bLqJxCl4e0IB/0WmFlHT5s/1dfednqRG7786Hm6dEG R14ZW5rFIKRxx4gdwUWYaoU7griLtcQUT3adtW1AGg7jmONjvsKU1racI/u9/fJd eICJYBQZRYuKytH/VzQow8VhY3d2ZoORhh6zq89TmepBHfW3O9NyDAVY5hKTUC9d 6lYfuM4Mxf0r5Z85JQMnH5cxZDSVqCULpg24HpZX+JA1XDWis+Tw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Richard Henderson , LIU Zhiwei , Alistair Francis Subject: [PULL v2 05/45] tcg/riscv: Fix reg overlap case in tcg_out_addsub2 Date: Thu, 22 Dec 2022 08:39:42 +1000 Message-Id: <20221221224022.425831-6-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662967461100003 Content-Type: text/plain; charset="utf-8" From: Richard Henderson There was a typo using opc_addi instead of opc_add with the two registers. While we're at it, simplify the gating test to al =3D=3D bl to improve dynamic scheduling even when the output register does not overlap the inputs. Reported-by: LIU Zhiwei Signed-off-by: Richard Henderson Reviewed-by: Alistair Francis Message-Id: <20221020233836.2341671-1-richard.henderson@linaro.org> Signed-off-by: Alistair Francis --- tcg/riscv/tcg-target.c.inc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 191197853f..2a84c57bec 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -700,9 +700,15 @@ static void tcg_out_addsub2(TCGContext *s, if (cbl) { tcg_out_opc_imm(s, opc_addi, rl, al, bl); tcg_out_opc_imm(s, OPC_SLTIU, TCG_REG_TMP0, rl, bl); - } else if (rl =3D=3D al && rl =3D=3D bl) { + } else if (al =3D=3D bl) { + /* + * If the input regs overlap, this is a simple doubling + * and carry-out is the input msb. This special case is + * required when the output reg overlaps the input, + * but we might as well use it always. + */ tcg_out_opc_imm(s, OPC_SLTI, TCG_REG_TMP0, al, 0); - tcg_out_opc_reg(s, opc_addi, rl, al, bl); + tcg_out_opc_reg(s, opc_add, rl, al, al); } else { tcg_out_opc_reg(s, opc_add, rl, al, bl); tcg_out_opc_reg(s, OPC_SLTU, TCG_REG_TMP0, --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662517210949.9820267384926; Wed, 21 Dec 2022 14:41:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lk-0007OM-QW; Wed, 21 Dec 2022 17:41:00 -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 1p87lj-0007Nl-2T for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:59 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lc-0000Xf-1W for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:58 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:41 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:10 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:42 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLd5F0nz1Rwt8 for ; Wed, 21 Dec 2022 14:40:41 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id HNsGv5D0rwSx for ; Wed, 21 Dec 2022 14:40:41 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLb3MF3z1Rwrq; Wed, 21 Dec 2022 14:40:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662451; x=1703198451; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wLon510VHyvWrBnIFxTDZasif/XairXPaP+olplQ0og=; b=F8EXDoUffAEBrwmSnkq36QwEOjxilHV4YFj7HdCzl9cnzPZbb+6iNqfx ybcWPea9ApCOM6Z5Z6W8uJH98Ni2JC81/VuytTJsh9dQPuMvv+fcF6Uxn 5xw2VVHzvJ+ii3pxz50Yss13if/8gqDTaQgp72jjftPAtM53zMfE6l0/k EmvWRTX3hmLpGqapMwD30LuFd47aSAg7IZpZNDeMsPUQ7EWH8PSDRSGId 34hCYJy/LdL2J8nUXDVmUP3aVO2OmgAKddVeNbl16cXrC1+S7f5VhGv7W ijobtgKDzH1CiOnN0yRklvZeV5fWoeOQGFWo2V4Yod1ezKlHsx0DD//2M w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561283" IronPort-SDR: jo66Iu3gIRbvwbIrQMB5p1dn4VaTwxSup9YUcxrwyONx7Me+7J+K4gBTSUKGzyDMfLuMg+QGM3 XBf6a7f8YOU3xXzBVhjyd/Z9CtccbOfNYpgN+kMtdEHpUkYyOXRX34fdxkDSUWgc045JYiMydh vpf8YHaCBACB6G3mXmJ5Sj5czM4G1XsqAtMqv4Kcdguyo2SgfWuKTsqFn9mcxXnmINMCaHO7vq 6Sf+i83y1WmAAZl86c35cXsjXHWT9T0hvjoAuJLWSM3etAbsILObeD0os8cPGMLgVNSGI+2C9w aog= IronPort-SDR: wGb2i3jAk1HcJiVNPn9J50lRT/JwzLPJQN5QE7HzWiIUlk0vUWCQn19dpz/CI4qZrnBZpG3lMu 3NyWvhHxbSrM4MYPCXbJvvCLXiecX1lddGdG1TNffhU1SFYieCGSxG6XgeNm0juWuCu47/yiM1 Z3dUs+OcM6fCJv/44k7RDuXNkGRfGA4gYxbhoJTpgCP8tKNjA3notdEuUxwUNHDCAD3w4avMV9 6KPUHNQv061PAGw6XSBRNoIW4L4j2O2Kurl8dD2Hubx6nqUoK5E5YRTD0rYhOfv/RQbA2jL9vc R38= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662441; x=1674254442; bh=wLon510VHyvWrBnIFx TDZasif/XairXPaP+olplQ0og=; b=TqcX/z1wwwRPinwpR4Gh0up30R23mCQHPF +N1aNyJKqXkHMiG/zF6yk19gtSz1flUscb5oBn9qtNrQOtks1ina3d/CL6EblKzo IOriRmw1d/7wxS/nDiHOtvWYOQqw2Hk4wx3+PJs65zV0Zggl/WN7D5hWeuY6SBcz 7PxNXwMI8a4VnaE2ATV+nUGrUhD7cIfcQlzNk9kHjMJ8lyiRh0IIUKmjj7fYB609 nhmad5r+SkMegUI5NCryMsa+7HZdywZxwrqhyOfIaENJC+cUkddqApl2JigxRFf2 OuDA6Gqm/kuz9M1Rn+BXoi+n20U6zOuYox6EAhWp2N5sGUNLR1Dg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Richard Henderson , LIU Zhiwei , Alistair Francis Subject: [PULL v2 06/45] tcg/riscv: Fix base register for user-only qemu_ld/st Date: Thu, 22 Dec 2022 08:39:43 +1000 Message-Id: <20221221224022.425831-7-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662517953100009 Content-Type: text/plain; charset="utf-8" From: Richard Henderson When guest_base !=3D 0, we were not coordinating the usage of TCG_REG_TMP0 as base properly, leading to a previous zero-extend of the input address being discarded. Shuffle the alignment check to the front, because that does not depend on the zero-extend, and it keeps the register usage clear. Set base after each step of the address arithmetic instead of before. Return the base register used from tcg_out_tlb_load, so as to keep that register choice localized to that function. Reported-by: LIU Zhiwei Signed-off-by: Richard Henderson Reviewed-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221023233337.2846860-1-richard.henderson@linaro.org> Signed-off-by: Alistair Francis --- tcg/riscv/tcg-target.c.inc | 39 +++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc index 2a84c57bec..e3b608034f 100644 --- a/tcg/riscv/tcg-target.c.inc +++ b/tcg/riscv/tcg-target.c.inc @@ -923,9 +923,9 @@ static void tcg_out_goto(TCGContext *s, const tcg_insn_= unit *target) tcg_debug_assert(ok); } =20 -static void tcg_out_tlb_load(TCGContext *s, TCGReg addrl, - TCGReg addrh, MemOpIdx oi, - tcg_insn_unit **label_ptr, bool is_load) +static TCGReg tcg_out_tlb_load(TCGContext *s, TCGReg addrl, + TCGReg addrh, MemOpIdx oi, + tcg_insn_unit **label_ptr, bool is_load) { MemOp opc =3D get_memop(oi); unsigned s_bits =3D opc & MO_SIZE; @@ -975,6 +975,7 @@ static void tcg_out_tlb_load(TCGContext *s, TCGReg addr= l, addrl =3D TCG_REG_TMP0; } tcg_out_opc_reg(s, OPC_ADD, TCG_REG_TMP0, TCG_REG_TMP2, addrl); + return TCG_REG_TMP0; } =20 static void add_qemu_ldst_label(TCGContext *s, int is_ld, MemOpIdx oi, @@ -1177,7 +1178,7 @@ static void tcg_out_qemu_ld(TCGContext *s, const TCGA= rg *args, bool is_64) #else unsigned a_bits; #endif - TCGReg base =3D TCG_REG_TMP0; + TCGReg base; =20 data_regl =3D *args++; data_regh =3D (TCG_TARGET_REG_BITS =3D=3D 32 && is_64 ? *args++ : 0); @@ -1187,23 +1188,25 @@ static void tcg_out_qemu_ld(TCGContext *s, const TC= GArg *args, bool is_64) opc =3D get_memop(oi); =20 #if defined(CONFIG_SOFTMMU) - tcg_out_tlb_load(s, addr_regl, addr_regh, oi, label_ptr, 1); + base =3D tcg_out_tlb_load(s, addr_regl, addr_regh, oi, label_ptr, 1); tcg_out_qemu_ld_direct(s, data_regl, data_regh, base, opc, is_64); add_qemu_ldst_label(s, 1, oi, (is_64 ? TCG_TYPE_I64 : TCG_TYPE_I32), data_regl, data_regh, addr_regl, addr_regh, s->code_ptr, label_ptr); #else - if (TCG_TARGET_REG_BITS > TARGET_LONG_BITS) { - tcg_out_ext32u(s, base, addr_regl); - addr_regl =3D base; - } a_bits =3D get_alignment_bits(opc); if (a_bits) { tcg_out_test_alignment(s, true, addr_regl, a_bits); } + base =3D addr_regl; + if (TCG_TARGET_REG_BITS > TARGET_LONG_BITS) { + tcg_out_ext32u(s, TCG_REG_TMP0, base); + base =3D TCG_REG_TMP0; + } if (guest_base !=3D 0) { - tcg_out_opc_reg(s, OPC_ADD, base, TCG_GUEST_BASE_REG, addr_regl); + tcg_out_opc_reg(s, OPC_ADD, TCG_REG_TMP0, TCG_GUEST_BASE_REG, base= ); + base =3D TCG_REG_TMP0; } tcg_out_qemu_ld_direct(s, data_regl, data_regh, base, opc, is_64); #endif @@ -1249,7 +1252,7 @@ static void tcg_out_qemu_st(TCGContext *s, const TCGA= rg *args, bool is_64) #else unsigned a_bits; #endif - TCGReg base =3D TCG_REG_TMP0; + TCGReg base; =20 data_regl =3D *args++; data_regh =3D (TCG_TARGET_REG_BITS =3D=3D 32 && is_64 ? *args++ : 0); @@ -1259,23 +1262,25 @@ static void tcg_out_qemu_st(TCGContext *s, const TC= GArg *args, bool is_64) opc =3D get_memop(oi); =20 #if defined(CONFIG_SOFTMMU) - tcg_out_tlb_load(s, addr_regl, addr_regh, oi, label_ptr, 0); + base =3D tcg_out_tlb_load(s, addr_regl, addr_regh, oi, label_ptr, 0); tcg_out_qemu_st_direct(s, data_regl, data_regh, base, opc); add_qemu_ldst_label(s, 0, oi, (is_64 ? TCG_TYPE_I64 : TCG_TYPE_I32), data_regl, data_regh, addr_regl, addr_regh, s->code_ptr, label_ptr); #else - if (TCG_TARGET_REG_BITS > TARGET_LONG_BITS) { - tcg_out_ext32u(s, base, addr_regl); - addr_regl =3D base; - } a_bits =3D get_alignment_bits(opc); if (a_bits) { tcg_out_test_alignment(s, false, addr_regl, a_bits); } + base =3D addr_regl; + if (TCG_TARGET_REG_BITS > TARGET_LONG_BITS) { + tcg_out_ext32u(s, TCG_REG_TMP0, base); + base =3D TCG_REG_TMP0; + } if (guest_base !=3D 0) { - tcg_out_opc_reg(s, OPC_ADD, base, TCG_GUEST_BASE_REG, addr_regl); + tcg_out_opc_reg(s, OPC_ADD, TCG_REG_TMP0, TCG_GUEST_BASE_REG, base= ); + base =3D TCG_REG_TMP0; } tcg_out_qemu_st_direct(s, data_regl, data_regh, base, opc); #endif --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662850382894.5738684193394; Wed, 21 Dec 2022 14:47:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87ll-0007Oy-Ks; Wed, 21 Dec 2022 17:41:01 -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 1p87lj-0007Nt-D4 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:59 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87le-0000bf-IP for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:59 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:44 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:13 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:44 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLh1zP2z1Rwt8 for ; Wed, 21 Dec 2022 14:40:44 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id siAV_d5KbHgF for ; Wed, 21 Dec 2022 14:40:43 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLd4mXYz1RvTp; Wed, 21 Dec 2022 14:40:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662454; x=1703198454; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nZrlKiAsAn7MNytGWr5N4/b3L8vVhvkGQkq8G2qzSWk=; b=AXansJmWA65o3uekZtsqFJWZ4pWFA09tnfWpfCKSyTDooQxPWG7O/fn0 5exTyKNfRqsQ2aYaREvwnArgZv0c2eSmMhD9P32R1UI/2r7iGR9PeID// mDn82QW29mad0ypRta8WHdYAHW9/XzPaP8ECKLVvqe5L7n4sLNQedIZmj Cmsk+snfFcVtwwYV85R1rc+4HJChSJu8xhXNzwh2gHPKK6OMVS0Yb4pPq 94o4WHGhkIWuCjVqvt2uERiA0qo0zQmte06DxuBU4xdGJHwbsquYwIXyT rrj1vtBQEZKmrVaaqz6OEMzRV6xvtK4DZRIyzzKlQv+XvWY99Zb9Nb2H9 Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561289" IronPort-SDR: O6nOwe3QSEum4X376tHdKjxvuwfONs16Djp0XP4Yp+O1955JKj3h8Dk9Nd3AENjRYGPR6L7BNB ZaKikH5hUqT4d70v9vAqktTKimhqUf7DYKPkE8O1KlENqFg/+6+NuWj70irkbPj07kG31mszJh eRq6SkQPCg/Sh7/1T4BLxmpKswX5FUhMyjrOPnHoz41ybKy3LTfAjJj6KT8YtYN1Ttx87u501S xSiIBJuJ8199N5v2nVTQHNuylFeaFWajqx/OHvidRWS8fq3G1MYEHlXp+7eXygkut3htUp9iNe RPo= IronPort-SDR: EdO1dEUuR6wzRcqXHp8IO9eOSh+14892S2fgcO69Ouy4jsTLzEVc2c3TzG4BJxuzB/IIeTRV9j Q3ccdotaCtlQI1ZvDXm2NWn++TTVR7CpN8Mn5yvvnG5QSEAV3wkXbUh/LuuMFrQXU53XlkXQN+ plTn63Bz03yacKT78M+8AyVULt8WMzWX/tursVplSmz3fxoHgxwIcwDFGlCvbmUrw9mSKTqLey AJNLCRXJjYRrpqr8AqWdl/zTdIAZjf1Ecum6+2+rwompry2lz710nzPpnZmACC3K++J3Rg6jS3 tzc= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662443; x=1674254444; bh=nZrlKiAsAn7MNytGWr 5N4/b3L8vVhvkGQkq8G2qzSWk=; b=GUDXGFOO7PtrePzGTczMcsOfMdGC7lmd8n KlYY2nLD3h9+1V8Nf2Sd+wJi5gZ5VTsuCMdQK9+qaKjouo692eiv3sBpgBoI54c2 gkvT+qBYGFk06m59rSxk8RO6QHp/2TYFV8z/xwfN9oKanA7TLMM9Js1wLWMUXvqR Ds+5betG9ReNX6W1hPXv7srKG0xXFiG2mnevYIzowHZvDdJnL4kT+k2vulQgofZQ cSyKP/TAvBey5RC4BP8dzrFuZ2ridws1K/uKdArk5FlsIxCXpxPrsZKoz0PWpYE+ 6RMzzKq1fJsRrwfRJ+sveXV4srdl9z10YX7MAHxo2OU4MzyRSBQw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Alistair Francis , Bin Meng Subject: [PULL v2 07/45] hw/riscv/opentitan: bump opentitan Date: Thu, 22 Dec 2022 08:39:44 +1000 Message-Id: <20221221224022.425831-8-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662851018100001 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa This patch updates the OpenTitan model to match the specified register layout as per [1]. Which is also the latest commit of OpenTitan supported by TockOS. Note: Pinmux and Padctrl has been merged into Pinmux [2][3], this patch rem= oves any references to Padctrl. Note: OpenTitan doc [2] has not yet specified much detail regarding this, except for a note that states `TODO: this section needs to be updated to reflect the pinmux/padctrl merger` [1] https://github.com/lowRISC/opentitan/blob/d072ac505f82152678d6e04be95c7= 2b728a347b8/hw/top_earlgrey/sw/autogen/top_earlgrey_memory.h [2] https://docs.opentitan.org/hw/top_earlgrey/doc/design/ [3] https://docs.opentitan.org/hw/ip/pinmux/doc/#overview Signed-off-by: Wilfred Mallawa Reviewed-by: Alistair Francis Reviewed-by: Bin Meng Message-Id: <20221025043335.339815-2-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- include/hw/riscv/opentitan.h | 9 ++++----- hw/riscv/opentitan.c | 21 +++++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h index 6665cd5794..1fc055cdff 100644 --- a/include/hw/riscv/opentitan.h +++ b/include/hw/riscv/opentitan.h @@ -81,7 +81,6 @@ enum { IBEX_DEV_RSTMGR, IBEX_DEV_CLKMGR, IBEX_DEV_PINMUX, - IBEX_DEV_PADCTRL, IBEX_DEV_USBDEV, IBEX_DEV_FLASH_CTRL, IBEX_DEV_PLIC, @@ -109,10 +108,10 @@ enum { IBEX_UART0_RX_TIMEOUT_IRQ =3D 7, IBEX_UART0_RX_PARITY_ERR_IRQ =3D 8, IBEX_TIMER_TIMEREXPIRED0_0 =3D 127, - IBEX_SPI_HOST0_ERR_IRQ =3D 151, - IBEX_SPI_HOST0_SPI_EVENT_IRQ =3D 152, - IBEX_SPI_HOST1_ERR_IRQ =3D 153, - IBEX_SPI_HOST1_SPI_EVENT_IRQ =3D 154, + IBEX_SPI_HOST0_ERR_IRQ =3D 134, + IBEX_SPI_HOST0_SPI_EVENT_IRQ =3D 135, + IBEX_SPI_HOST1_ERR_IRQ =3D 136, + IBEX_SPI_HOST1_SPI_EVENT_IRQ =3D 137, }; =20 #endif diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index be7ff1eea0..92493c629d 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -28,8 +28,16 @@ #include "qemu/units.h" #include "sysemu/sysemu.h" =20 +/* + * This version of the OpenTitan machine currently supports + * OpenTitan RTL version: + * + * + * MMIO mapping as per (specified commit): + * lowRISC/opentitan: hw/top_earlgrey/sw/autogen/top_earlgrey_memory.h + */ static const MemMapEntry ibex_memmap[] =3D { - [IBEX_DEV_ROM] =3D { 0x00008000, 0x8000 }, + [IBEX_DEV_ROM] =3D { 0x00008000, 0x8000 }, [IBEX_DEV_RAM] =3D { 0x10000000, 0x20000 }, [IBEX_DEV_FLASH] =3D { 0x20000000, 0x100000 }, [IBEX_DEV_UART] =3D { 0x40000000, 0x1000 }, @@ -38,17 +46,17 @@ static const MemMapEntry ibex_memmap[] =3D { [IBEX_DEV_I2C] =3D { 0x40080000, 0x1000 }, [IBEX_DEV_PATTGEN] =3D { 0x400e0000, 0x1000 }, [IBEX_DEV_TIMER] =3D { 0x40100000, 0x1000 }, - [IBEX_DEV_SENSOR_CTRL] =3D { 0x40110000, 0x1000 }, [IBEX_DEV_OTP_CTRL] =3D { 0x40130000, 0x4000 }, [IBEX_DEV_LC_CTRL] =3D { 0x40140000, 0x1000 }, - [IBEX_DEV_USBDEV] =3D { 0x40150000, 0x1000 }, + [IBEX_DEV_ALERT_HANDLER] =3D { 0x40150000, 0x1000 }, [IBEX_DEV_SPI_HOST0] =3D { 0x40300000, 0x1000 }, [IBEX_DEV_SPI_HOST1] =3D { 0x40310000, 0x1000 }, + [IBEX_DEV_USBDEV] =3D { 0x40320000, 0x1000 }, [IBEX_DEV_PWRMGR] =3D { 0x40400000, 0x1000 }, [IBEX_DEV_RSTMGR] =3D { 0x40410000, 0x1000 }, [IBEX_DEV_CLKMGR] =3D { 0x40420000, 0x1000 }, [IBEX_DEV_PINMUX] =3D { 0x40460000, 0x1000 }, - [IBEX_DEV_PADCTRL] =3D { 0x40470000, 0x1000 }, + [IBEX_DEV_SENSOR_CTRL] =3D { 0x40490000, 0x1000 }, [IBEX_DEV_FLASH_CTRL] =3D { 0x41000000, 0x1000 }, [IBEX_DEV_AES] =3D { 0x41100000, 0x1000 }, [IBEX_DEV_HMAC] =3D { 0x41110000, 0x1000 }, @@ -59,10 +67,9 @@ static const MemMapEntry ibex_memmap[] =3D { [IBEX_DEV_ENTROPY] =3D { 0x41160000, 0x1000 }, [IBEX_DEV_EDNO] =3D { 0x41170000, 0x1000 }, [IBEX_DEV_EDN1] =3D { 0x41180000, 0x1000 }, - [IBEX_DEV_ALERT_HANDLER] =3D { 0x411b0000, 0x1000 }, [IBEX_DEV_NMI_GEN] =3D { 0x411c0000, 0x1000 }, [IBEX_DEV_PERI] =3D { 0x411f0000, 0x10000 }, - [IBEX_DEV_PLIC] =3D { 0x48000000, 0x4005000 }, + [IBEX_DEV_PLIC] =3D { 0x48000000, 0x4005000 }, [IBEX_DEV_FLASH_VIRTUAL] =3D { 0x80000000, 0x80000 }, }; =20 @@ -265,8 +272,6 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_s= oc, Error **errp) memmap[IBEX_DEV_CLKMGR].base, memmap[IBEX_DEV_CLKMGR].size); create_unimplemented_device("riscv.lowrisc.ibex.pinmux", memmap[IBEX_DEV_PINMUX].base, memmap[IBEX_DEV_PINMUX].size); - create_unimplemented_device("riscv.lowrisc.ibex.padctrl", - memmap[IBEX_DEV_PADCTRL].base, memmap[IBEX_DEV_PADCTRL].size); create_unimplemented_device("riscv.lowrisc.ibex.usbdev", memmap[IBEX_DEV_USBDEV].base, memmap[IBEX_DEV_USBDEV].size); create_unimplemented_device("riscv.lowrisc.ibex.flash_ctrl", --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662552649671.811652840075; Wed, 21 Dec 2022 14:42:32 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87ll-0007Of-3R; Wed, 21 Dec 2022 17:41:01 -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 1p87lj-0007Nk-00 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:59 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87le-0000bQ-JB for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:40:58 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:46 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:14 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:46 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLk0c4mz1RvTr for ; Wed, 21 Dec 2022 14:40:46 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pkNruyq2HtyF for ; Wed, 21 Dec 2022 14:40:45 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLg6Prvz1RvLy; Wed, 21 Dec 2022 14:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662454; x=1703198454; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SfKxA8G3IanL11OZNQXCiMwcclKpFSTH9ixHNUN8azY=; b=LJbOyhE45CJMBDz39Ik/IAfMVOLaMAevgS8Nm+T5O3/11ARyEzBC6pL2 lUE2E/w+i8KBOb1TtdSHs6hrsLX79OZOb/PqlwBSGh0vpgecV5JCJH5Dj knvTkn5FbGDqAn3ZoHjuESe4RQmtvEsg4tXI6kh/0cxCTixbJL68pVx1T 2V0ukkAKap/n1z/ALipfeR/8U7MRsVPUH302te3h68wJVBDieJzkB4XU6 QUC74q8cVhp8RM3HnGriIcpUra4J2XgwEKJYICtZsSPwHc9hgv/ge2OzW iDoYr0YQmGCRldDRAUQp2ljeenYLXKpu2F1T6G80uRzHrZZrL/so5OY1h A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561292" IronPort-SDR: 5z3tjnAvpxNq+LGDNHuCzzcZbJLbHKEoXE2ElCmbIhBTsELweuJg2Dk34ihSigO5U+aCpYChHU nkkrX6Ow0ECYp67Gk4YpvqDtw7nmTDw21YXnZgLNlhaz9vzWUdMvWD6eMQhMcHGj/LRN2DW3Na dZTFP38GAi3Z+SNolw7ek84LuB12Mr3wIta8TM+s0vlo6789IPOiqoViU8Ag/x109QQeChfHb0 X99lvylajkos2BkNnFHPTzf756lwSS9eNAsKr7ZV5xRU0BTHquO5UAax1+pijXbTdr27wwePun N84= IronPort-SDR: /7EVtbb7HWqBe+jV8Wcxcc975Y8UuaccBdRrtm4brZwOtTNJhM1y2JkXGBgPptsFvRFifr/h31 erwQyjtQ+YQCH92faxeIPjIR2XtsVG/NnKhY+Ce6NA4r2Ytr0woBEYKER/OMGI+K6lx5BiqOX3 u+By7Z6eyM9nnTo2r/8BSdhkJwrKXKxsMe9+J1b+ociwK0HlWaB65m4HMFavvFspY4Yb2hi4DD RAF8COYiM2lSjMscxCXv3ZFC/uJ8lI8uz1L7cO1Anc+XbeyErrE6FDxvLvN+1DYWj4FdhBe1DS ycY= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662445; x=1674254446; bh=SfKxA8G3IanL11OZNQ XCiMwcclKpFSTH9ixHNUN8azY=; b=NevxLN0dZxTZ6OTYdZocdhzQAcmn4ITo27 iDe774fTMt5KqwO0rrejUZU0F76psY+KH52cxghvXTaaFnnlsnaMQ8OJf4NJKHLw rnV+7oOVuJluRu8Z3uQKsefzelLtIspOk7aCw49nIXs4MD6fxK074kRf9/15nRhI XNGv0IZ3FtSR/RGKEq4lzd1PoRF985BXGfAySguz9l8eDlNvhH8grh10aztArqBI /bVeQAzC2Y1f2iXlvJfKhz5WAo0SzbQ2ucbpesywg+gTGUNKZOCidO93XoniR4vr k/NCzLGVpulEdo4nae2MjcE2BoSddH6qZ3K0/G6JToIsY8O1T59g== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Wilfred Mallawa , Bin Meng , Alistair Francis Subject: [PULL v2 08/45] hw/riscv/opentitan: add aon_timer base unimpl Date: Thu, 22 Dec 2022 08:39:45 +1000 Message-Id: <20221221224022.425831-9-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662553721100001 Content-Type: text/plain; charset="utf-8" From: Wilfred Mallawa Adds the updated `aon_timer` base as an unimplemented device. This is used by TockOS, patch ensures the guest doesn't hit load faults. Signed-off-by: Wilfred Mallawa Reviewed-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221025043335.339815-3-wilfred.mallawa@opensource.wdc.com> Signed-off-by: Alistair Francis --- include/hw/riscv/opentitan.h | 1 + hw/riscv/opentitan.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h index 1fc055cdff..7659d1bc5b 100644 --- a/include/hw/riscv/opentitan.h +++ b/include/hw/riscv/opentitan.h @@ -81,6 +81,7 @@ enum { IBEX_DEV_RSTMGR, IBEX_DEV_CLKMGR, IBEX_DEV_PINMUX, + IBEX_DEV_AON_TIMER, IBEX_DEV_USBDEV, IBEX_DEV_FLASH_CTRL, IBEX_DEV_PLIC, diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index 92493c629d..78f895d773 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -56,6 +56,7 @@ static const MemMapEntry ibex_memmap[] =3D { [IBEX_DEV_RSTMGR] =3D { 0x40410000, 0x1000 }, [IBEX_DEV_CLKMGR] =3D { 0x40420000, 0x1000 }, [IBEX_DEV_PINMUX] =3D { 0x40460000, 0x1000 }, + [IBEX_DEV_AON_TIMER] =3D { 0x40470000, 0x1000 }, [IBEX_DEV_SENSOR_CTRL] =3D { 0x40490000, 0x1000 }, [IBEX_DEV_FLASH_CTRL] =3D { 0x41000000, 0x1000 }, [IBEX_DEV_AES] =3D { 0x41100000, 0x1000 }, @@ -272,6 +273,8 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_s= oc, Error **errp) memmap[IBEX_DEV_CLKMGR].base, memmap[IBEX_DEV_CLKMGR].size); create_unimplemented_device("riscv.lowrisc.ibex.pinmux", memmap[IBEX_DEV_PINMUX].base, memmap[IBEX_DEV_PINMUX].size); + create_unimplemented_device("riscv.lowrisc.ibex.aon_timer", + memmap[IBEX_DEV_AON_TIMER].base, memmap[IBEX_DEV_AON_TIMER].size); create_unimplemented_device("riscv.lowrisc.ibex.usbdev", memmap[IBEX_DEV_USBDEV].base, memmap[IBEX_DEV_USBDEV].size); create_unimplemented_device("riscv.lowrisc.ibex.flash_ctrl", --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663388916618.1650800091546; Wed, 21 Dec 2022 14:56:28 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lp-0007PK-1v; Wed, 21 Dec 2022 17:41:05 -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 1p87lm-0007P0-DL for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:02 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lj-0000bQ-KE for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:02 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:49 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:18 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:49 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLn26HTz1RwqL for ; Wed, 21 Dec 2022 14:40:49 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id z7403kXjh5PA for ; Wed, 21 Dec 2022 14:40:48 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLk2bzTz1RvLy; Wed, 21 Dec 2022 14:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662459; x=1703198459; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=v/tolp0FI5QSu95NYDTltjd9EctNgrO7SoOyyHZ4l80=; b=k0aRm5zD7u0eZz18ENi5dlIqJhCYiId10GAjL5UTCP9NcLovkEWziMwE 1/d3R9PsioiVzZTUEeizOOwC86K9ZcB6ktszYn7+kXaBqhDiCXhfhfk8R 6uX3KwgMEGGb4eHQ3acVEvKaD1q0war5H7NotzvDNJEJo6uFRE1ONtBFm FB7HcBmgL+aIMPwq2fTIUAb9Qp0ewcj0ItChjAx0FRX5jUdxl/Tx90VPt VMD1tUz1jEXkLxbHPRCmL8uA0b1djiR9dJ1+6oL6j1h1GkWuaoFU7U7hG emyg7zh8HGSfWEodPKg04eviJW1yNljuO1M6hFZ7QwB+n6rBM7DsRE7Zc g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561306" IronPort-SDR: b3gqVcqswv8U8+IEWAhWOrJgjR/Qnn1EZdw6Vllaye8WxMcC6EL2jWDkOfq4ryyCQXOyIC58jE DkMqxAZwHlZUEjp9MaK6846+3vbwG69uH7ggkl5VFm4C1DHlTxV1C+mqCF8C9yvLKG9+DbLscU qbf/ZFNcJJ7UiiR1/ZoVz8xvAwPPYOE56d45QDURzuWuuFkWCF+aBTruGal7UMbP44PnIrSECJ DLo7Pjs+eus1u3vFJpyojs7AIwIEys33AAD5MDV7WRf6iPcwv6JaqzDj9Dtr9ZAgKBASxVYKL4 rK8= IronPort-SDR: jkiPC8uP+iRm+3WBRBkk2rOvhPm6gcBdvZmc6ZRzK1xWftekmp5PqENDsysvTmMNxzi9PjZqgC oS2DpVyafTal3/e/VUZOXZsb1XhV+/RoBvOBq+KXiZAoL48kh1UfJo7kd6bBIdLvSySfpu4dM2 Tju6LBzY3JG6n2XBOhYRdWRyWJno3UUWp2ZTvWe27wpG3Lxcmii6YXAbtrXWkh8kNvL4NnMfqB JBMuR2ln/Df8CcsTEMAqtV5t9/I0gS4d/kK3QPkX1YxneqN9c17HwfXsQXJVh4PCuwI/2dhbrU 6IQ= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662448; x=1674254449; bh=v/tolp0FI5QSu95NYD Tltjd9EctNgrO7SoOyyHZ4l80=; b=FgBHLVfFBX8ffBbUZt0OTrBKYmYPIh5TYA +aUf2Dgt2T/aP9M7v8lL8yjNj3bkA4OZ+ToDIhUV4298eCxddw2/ejttPwcCRote UpC4p+yMdgIm8Bj8s7CL9Jg+UMeAhxTOJ4gH5ymYuqqw1PsbeIvfGF7orgkpY4Fh 9xB7pS4JbcqwAEMROFd6Wjxn9/kiPPd9/b3HmkS448EyGC6NSkz4C4+DHsqZFMPd 5nDe9H2ABEwVLWVwZAE24Snvba7f6FZzCEz+IiTI7AvvojZTzfRvvAg7KHb0BCsZ kTZF+VRWIzNsl3KwKh21Mv4SZzvqZu2aXYPhwHCT2L284TPMwmNg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Mayuresh Chitale , Weiwei Li , Alistair Francis Subject: [PULL v2 09/45] target/riscv: Add smstateen support Date: Thu, 22 Dec 2022 08:39:46 +1000 Message-Id: <20221221224022.425831-10-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663395716100003 Content-Type: text/plain; charset="utf-8" From: Mayuresh Chitale Smstateen extension specifies a mechanism to close the potential covert channels that could cause security issues. This patch adds the CSRs defined in the specification and the corresponding predicates and read/write functions. Signed-off-by: Mayuresh Chitale Reviewed-by: Weiwei Li Reviewed-by: Alistair Francis Message-Id: <20221016124726.102129-2-mchitale@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 4 + target/riscv/cpu_bits.h | 37 +++++ target/riscv/csr.c | 316 ++++++++++++++++++++++++++++++++++++++++ target/riscv/machine.c | 21 +++ 4 files changed, 378 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 443d15a47c..5cac0c5eec 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -366,6 +366,9 @@ struct CPUArchState { =20 /* CSRs for execution enviornment configuration */ uint64_t menvcfg; + uint64_t mstateen[SMSTATEEN_MAX_COUNT]; + uint64_t hstateen[SMSTATEEN_MAX_COUNT]; + uint64_t sstateen[SMSTATEEN_MAX_COUNT]; target_ulong senvcfg; uint64_t henvcfg; #endif @@ -441,6 +444,7 @@ struct RISCVCPUConfig { bool ext_ifencei; bool ext_icsr; bool ext_zihintpause; + bool ext_smstateen; bool ext_sstc; bool ext_svinval; bool ext_svnapot; diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index d8f5f0abed..8b0d7e20ea 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -197,6 +197,12 @@ /* Supervisor Configuration CSRs */ #define CSR_SENVCFG 0x10A =20 +/* Supervisor state CSRs */ +#define CSR_SSTATEEN0 0x10C +#define CSR_SSTATEEN1 0x10D +#define CSR_SSTATEEN2 0x10E +#define CSR_SSTATEEN3 0x10F + /* Supervisor Trap Handling */ #define CSR_SSCRATCH 0x140 #define CSR_SEPC 0x141 @@ -244,6 +250,16 @@ #define CSR_HENVCFG 0x60A #define CSR_HENVCFGH 0x61A =20 +/* Hypervisor state CSRs */ +#define CSR_HSTATEEN0 0x60C +#define CSR_HSTATEEN0H 0x61C +#define CSR_HSTATEEN1 0x60D +#define CSR_HSTATEEN1H 0x61D +#define CSR_HSTATEEN2 0x60E +#define CSR_HSTATEEN2H 0x61E +#define CSR_HSTATEEN3 0x60F +#define CSR_HSTATEEN3H 0x61F + /* Virtual CSRs */ #define CSR_VSSTATUS 0x200 #define CSR_VSIE 0x204 @@ -289,6 +305,27 @@ #define CSR_MENVCFG 0x30A #define CSR_MENVCFGH 0x31A =20 +/* Machine state CSRs */ +#define CSR_MSTATEEN0 0x30C +#define CSR_MSTATEEN0H 0x31C +#define CSR_MSTATEEN1 0x30D +#define CSR_MSTATEEN1H 0x31D +#define CSR_MSTATEEN2 0x30E +#define CSR_MSTATEEN2H 0x31E +#define CSR_MSTATEEN3 0x30F +#define CSR_MSTATEEN3H 0x31F + +/* Common defines for all smstateen */ +#define SMSTATEEN_MAX_COUNT 4 +#define SMSTATEEN0_CS (1ULL << 0) +#define SMSTATEEN0_FCSR (1ULL << 1) +#define SMSTATEEN0_HSCONTXT (1ULL << 57) +#define SMSTATEEN0_IMSIC (1ULL << 58) +#define SMSTATEEN0_AIA (1ULL << 59) +#define SMSTATEEN0_SVSLCT (1ULL << 60) +#define SMSTATEEN0_HSENVCFG (1ULL << 62) +#define SMSTATEEN_STATEEN (1ULL << 63) + /* Enhanced Physical Memory Protection (ePMP) */ #define CSR_MSECCFG 0x747 #define CSR_MSECCFGH 0x757 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 5c9a7ee287..c861424e85 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -283,6 +283,72 @@ static RISCVException umode32(CPURISCVState *env, int = csrno) return umode(env, csrno); } =20 +static RISCVException mstateen(CPURISCVState *env, int csrno) +{ + CPUState *cs =3D env_cpu(env); + RISCVCPU *cpu =3D RISCV_CPU(cs); + + if (!cpu->cfg.ext_smstateen) { + return RISCV_EXCP_ILLEGAL_INST; + } + + return any(env, csrno); +} + +static RISCVException hstateen_pred(CPURISCVState *env, int csrno, int bas= e) +{ + CPUState *cs =3D env_cpu(env); + RISCVCPU *cpu =3D RISCV_CPU(cs); + + if (!cpu->cfg.ext_smstateen) { + return RISCV_EXCP_ILLEGAL_INST; + } + + if (env->priv < PRV_M) { + if (!(env->mstateen[csrno - base] & SMSTATEEN_STATEEN)) { + return RISCV_EXCP_ILLEGAL_INST; + } + } + + return hmode(env, csrno); +} + +static RISCVException hstateen(CPURISCVState *env, int csrno) +{ + return hstateen_pred(env, csrno, CSR_HSTATEEN0); +} + +static RISCVException hstateenh(CPURISCVState *env, int csrno) +{ + return hstateen_pred(env, csrno, CSR_HSTATEEN0H); +} + +static RISCVException sstateen(CPURISCVState *env, int csrno) +{ + bool virt =3D riscv_cpu_virt_enabled(env); + int index =3D csrno - CSR_SSTATEEN0; + CPUState *cs =3D env_cpu(env); + RISCVCPU *cpu =3D RISCV_CPU(cs); + + if (!cpu->cfg.ext_smstateen) { + return RISCV_EXCP_ILLEGAL_INST; + } + + if (env->priv < PRV_M) { + if (!(env->mstateen[index] & SMSTATEEN_STATEEN)) { + return RISCV_EXCP_ILLEGAL_INST; + } + + if (virt) { + if (!(env->hstateen[index] & SMSTATEEN_STATEEN)) { + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } + } + } + + return smode(env, csrno); +} + /* Checks if PointerMasking registers could be accessed */ static RISCVException pointer_masking(CPURISCVState *env, int csrno) { @@ -1861,6 +1927,197 @@ static RISCVException write_henvcfgh(CPURISCVState = *env, int csrno, return RISCV_EXCP_NONE; } =20 +static RISCVException read_mstateen(CPURISCVState *env, int csrno, + target_ulong *val) +{ + *val =3D env->mstateen[csrno - CSR_MSTATEEN0]; + + return RISCV_EXCP_NONE; +} + +static RISCVException write_mstateen(CPURISCVState *env, int csrno, + uint64_t wr_mask, target_ulong new_va= l) +{ + uint64_t *reg; + + reg =3D &env->mstateen[csrno - CSR_MSTATEEN0]; + *reg =3D (*reg & ~wr_mask) | (new_val & wr_mask); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_mstateen0(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + uint64_t wr_mask =3D SMSTATEEN_STATEEN; + + return write_mstateen(env, csrno, wr_mask, new_val); +} + +static RISCVException write_mstateen_1_3(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + return write_mstateen(env, csrno, SMSTATEEN_STATEEN, new_val); +} + +static RISCVException read_mstateenh(CPURISCVState *env, int csrno, + target_ulong *val) +{ + *val =3D env->mstateen[csrno - CSR_MSTATEEN0H] >> 32; + + return RISCV_EXCP_NONE; +} + +static RISCVException write_mstateenh(CPURISCVState *env, int csrno, + uint64_t wr_mask, target_ulong new_v= al) +{ + uint64_t *reg, val; + + reg =3D &env->mstateen[csrno - CSR_MSTATEEN0H]; + val =3D (uint64_t)new_val << 32; + val |=3D *reg & 0xFFFFFFFF; + *reg =3D (*reg & ~wr_mask) | (val & wr_mask); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_mstateen0h(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + uint64_t wr_mask =3D SMSTATEEN_STATEEN; + + return write_mstateenh(env, csrno, wr_mask, new_val); +} + +static RISCVException write_mstateenh_1_3(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + return write_mstateenh(env, csrno, SMSTATEEN_STATEEN, new_val); +} + +static RISCVException read_hstateen(CPURISCVState *env, int csrno, + target_ulong *val) +{ + int index =3D csrno - CSR_HSTATEEN0; + + *val =3D env->hstateen[index] & env->mstateen[index]; + + return RISCV_EXCP_NONE; +} + +static RISCVException write_hstateen(CPURISCVState *env, int csrno, + uint64_t mask, target_ulong new_val) +{ + int index =3D csrno - CSR_HSTATEEN0; + uint64_t *reg, wr_mask; + + reg =3D &env->hstateen[index]; + wr_mask =3D env->mstateen[index] & mask; + *reg =3D (*reg & ~wr_mask) | (new_val & wr_mask); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_hstateen0(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + uint64_t wr_mask =3D SMSTATEEN_STATEEN; + + return write_hstateen(env, csrno, wr_mask, new_val); +} + +static RISCVException write_hstateen_1_3(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + return write_hstateen(env, csrno, SMSTATEEN_STATEEN, new_val); +} + +static RISCVException read_hstateenh(CPURISCVState *env, int csrno, + target_ulong *val) +{ + int index =3D csrno - CSR_HSTATEEN0H; + + *val =3D (env->hstateen[index] >> 32) & (env->mstateen[index] >> 32); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_hstateenh(CPURISCVState *env, int csrno, + uint64_t mask, target_ulong new_val) +{ + int index =3D csrno - CSR_HSTATEEN0H; + uint64_t *reg, wr_mask, val; + + reg =3D &env->hstateen[index]; + val =3D (uint64_t)new_val << 32; + val |=3D *reg & 0xFFFFFFFF; + wr_mask =3D env->mstateen[index] & mask; + *reg =3D (*reg & ~wr_mask) | (val & wr_mask); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_hstateen0h(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + uint64_t wr_mask =3D SMSTATEEN_STATEEN; + + return write_hstateenh(env, csrno, wr_mask, new_val); +} + +static RISCVException write_hstateenh_1_3(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + return write_hstateenh(env, csrno, SMSTATEEN_STATEEN, new_val); +} + +static RISCVException read_sstateen(CPURISCVState *env, int csrno, + target_ulong *val) +{ + bool virt =3D riscv_cpu_virt_enabled(env); + int index =3D csrno - CSR_SSTATEEN0; + + *val =3D env->sstateen[index] & env->mstateen[index]; + if (virt) { + *val &=3D env->hstateen[index]; + } + + return RISCV_EXCP_NONE; +} + +static RISCVException write_sstateen(CPURISCVState *env, int csrno, + uint64_t mask, target_ulong new_val) +{ + bool virt =3D riscv_cpu_virt_enabled(env); + int index =3D csrno - CSR_SSTATEEN0; + uint64_t wr_mask; + uint64_t *reg; + + wr_mask =3D env->mstateen[index] & mask; + if (virt) { + wr_mask &=3D env->hstateen[index]; + } + + reg =3D &env->sstateen[index]; + *reg =3D (*reg & ~wr_mask) | (new_val & wr_mask); + + return RISCV_EXCP_NONE; +} + +static RISCVException write_sstateen0(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + uint64_t wr_mask =3D SMSTATEEN_STATEEN; + + return write_sstateen(env, csrno, wr_mask, new_val); +} + +static RISCVException write_sstateen_1_3(CPURISCVState *env, int csrno, + target_ulong new_val) +{ + return write_sstateen(env, csrno, SMSTATEEN_STATEEN, new_val); +} + static RISCVException rmw_mip64(CPURISCVState *env, int csrno, uint64_t *ret_val, uint64_t new_val, uint64_t wr_mask) @@ -3744,6 +4001,65 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_HENVCFGH] =3D { "henvcfgh", hmode32, read_henvcfgh, write_henvcfg= h, .min_priv_ver =3D PRIV_VERSION_1_12_0 = }, =20 + /* Smstateen extension CSRs */ + [CSR_MSTATEEN0] =3D { "mstateen0", mstateen, read_mstateen, write_msta= teen0, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN0H] =3D { "mstateen0h", mstateen, read_mstateenh, + write_mstateen0h, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN1] =3D { "mstateen1", mstateen, read_mstateen, + write_mstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN1H] =3D { "mstateen1h", mstateen, read_mstateenh, + write_mstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN2] =3D { "mstateen2", mstateen, read_mstateen, + write_mstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN2H] =3D { "mstateen2h", mstateen, read_mstateenh, + write_mstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN3] =3D { "mstateen3", mstateen, read_mstateen, + write_mstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_MSTATEEN3H] =3D { "mstateen3h", mstateen, read_mstateenh, + write_mstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN0] =3D { "hstateen0", hstateen, read_hstateen, write_hsta= teen0, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN0H] =3D { "hstateen0h", hstateenh, read_hstateenh, + write_hstateen0h, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN1] =3D { "hstateen1", hstateen, read_hstateen, + write_hstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN1H] =3D { "hstateen1h", hstateenh, read_hstateenh, + write_hstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN2] =3D { "hstateen2", hstateen, read_hstateen, + write_hstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN2H] =3D { "hstateen2h", hstateenh, read_hstateenh, + write_hstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN3] =3D { "hstateen3", hstateen, read_hstateen, + write_hstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_HSTATEEN3H] =3D { "hstateen3h", hstateenh, read_hstateenh, + write_hstateenh_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_SSTATEEN0] =3D { "sstateen0", sstateen, read_sstateen, write_ssta= teen0, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_SSTATEEN1] =3D { "sstateen1", sstateen, read_sstateen, + write_sstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_SSTATEEN2] =3D { "sstateen2", sstateen, read_sstateen, + write_sstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + [CSR_SSTATEEN3] =3D { "sstateen3", sstateen, read_sstateen, + write_sstateen_1_3, + .min_priv_ver =3D PRIV_VERSION_1_12_0 }, + /* Supervisor Trap Setup */ [CSR_SSTATUS] =3D { "sstatus", smode, read_sstatus, write_sst= atus, NULL, read_sstatus_i128 = }, diff --git a/target/riscv/machine.c b/target/riscv/machine.c index c2a94a82b3..e687f9fce0 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -253,6 +253,26 @@ static int riscv_cpu_post_load(void *opaque, int versi= on_id) return 0; } =20 +static bool smstateen_needed(void *opaque) +{ + RISCVCPU *cpu =3D opaque; + + return cpu->cfg.ext_smstateen; +} + +static const VMStateDescription vmstate_smstateen =3D { + .name =3D "cpu/smtateen", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D smstateen_needed, + .fields =3D (VMStateField[]) { + VMSTATE_UINT64_ARRAY(env.mstateen, RISCVCPU, 4), + VMSTATE_UINT64_ARRAY(env.hstateen, RISCVCPU, 4), + VMSTATE_UINT64_ARRAY(env.sstateen, RISCVCPU, 4), + VMSTATE_END_OF_LIST() + } +}; + static bool envcfg_needed(void *opaque) { RISCVCPU *cpu =3D opaque; @@ -364,6 +384,7 @@ const VMStateDescription vmstate_riscv_cpu =3D { &vmstate_kvmtimer, &vmstate_envcfg, &vmstate_debug, + &vmstate_smstateen, NULL } }; --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663412748285.3375419094259; Wed, 21 Dec 2022 14:56:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lo-0007PJ-9i; Wed, 21 Dec 2022 17:41:04 -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 1p87lm-0007Oz-BN for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:02 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lj-0000Xf-Lt for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:01 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:51 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:20 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:51 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLq1fMYz1RwtC for ; Wed, 21 Dec 2022 14:40:51 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id qtySPlCeGllo for ; Wed, 21 Dec 2022 14:40:50 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLm5K6Gz1RvTp; Wed, 21 Dec 2022 14:40:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662459; x=1703198459; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xbWWfWawTbSX2KmhEqxJ2DZscLJ5uVr1ICmRd7oSxqk=; b=UOtlAU64usRCe0m0YaKAg9KkkQ/66wriUKQwDdTbPeWTNYCI8ciGKzIN 6WDeAA+nsI7F2HSoTYH9sbKjzR+kllDMCU2SmVClO0sBJmmRRiKEsw4K9 woGKcST+Y7qaOJhkEyUdVvdlJnxae3kvkw+X2fBocVw30Tl7/AcUMGn6f ad5sL8lD8mDUths4KxXs1RjXs7zrzdoU9qoqowVWFm0A5mjKAd7UlPqw2 AZlO4OHLYQAWTTdt7EZBibUqGtveicWwT58vMpMO8FEZobbDh+7OQmwu8 uB1A0Ick/tMV5Vb/R9pWS8Xq/ummzD5srNq2hd4o5fjh4+nSKTXzhbGTx Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561309" IronPort-SDR: uJgY6oAPd0APFOj615EAJKpkTkMQ4vDTy66tvLoR7ktf1syvjdrXhiEXe3YNzl+inSKgMJobQW 5yyg3criai43V20Jn57q7XUMXdJB7pjKcijZjPeON9OMTOsRvZ8OElKSpUnQwHbLgSZIyC2WZN SDn0ordfnD6vDQvgAi/BJ0yZwGCWQuu7GTjibwmFgkJmiPSz64lb8ATE0SV9qoAc3CvIeHi4Dg l6XWqrOOK2TvV2Oo9Ew2Mu0sHyNy0cZQOMiV2/wLz9akU3hX9NpSc3YhjeK93U99lT/MukKXPc HJA= IronPort-SDR: pXY1PxeIspHeyjPx8JkAHWIQ+On9QiFn7SkhxLW08YQDDETY3Wwdh+ILmNvBNRZgfDy4AUU0V7 HsYMRcVgC/5NwI+WGuoTw1y7sH65TMq3VL8AZAVA8pRuH0IbBXpqdWIU/yJXZczBEkhfAfUL6t mxFbZmZ43IDCzCHXYv13tF8dnotm9Mt1UtFp0gl9gw61jVc38JjwDQA+40OzBaNJUtDYK8sXTu mgE+CkDUxfjC8I0HJPXMsqoU3hm1lVldIMEiwmMhCn+cRrrejBQjy+z2qH4dzvSVQMn8RQnKXg IEM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662450; x=1674254451; bh=xbWWfWawTbSX2KmhEq xJ2DZscLJ5uVr1ICmRd7oSxqk=; b=m3IdNiuFIb9IMPMXqyKlmzS7Fe8iYgo4QN x2j70wLfwxp78oYvnqso3XYSQ6BIaNH/mvQMozai+zqprRLtpV9F1sdd0nEg1vIg I/C0mm1dwocWoboN0JfnhqqGhuW4zspFC/8VSbo1gdPjfcnijGXC4Gi1rwaSru9k luOGzqmzGF8k/rMiD41mjCpTFWRnu0uzFeOPlwjSb63rm+vJHuNVwZbSM9yVacaF pwAv6RHZYOts9IWa+NQeAl7ruwsXVgbud6cqIcBo8fxOHW7/zKTPafexYHyiHA6v qyni1/5OeGmZ2X0DcHO1b/NhalB48DGqqGZ5+Eepl4bChYhukr8A== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Mayuresh Chitale , Weiwei Li , Alistair Francis Subject: [PULL v2 10/45] target/riscv: smstateen check for h/s/envcfg Date: Thu, 22 Dec 2022 08:39:47 +1000 Message-Id: <20221221224022.425831-11-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663413732100011 Content-Type: text/plain; charset="utf-8" From: Mayuresh Chitale Accesses to henvcfg, henvcfgh and senvcfg are allowed only if the correspon= ding bit in mstateen0/hstateen0 is enabled. Otherwise an illegal instruction tra= p is generated. Signed-off-by: Mayuresh Chitale Reviewed-by: Weiwei Li Reviewed-by: Alistair Francis Message-Id: <20221016124726.102129-3-mchitale@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 87 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index c861424e85..71236f2b5d 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -41,6 +41,42 @@ void riscv_set_csr_ops(int csrno, riscv_csr_operations *= ops) } =20 /* Predicates */ +#if !defined(CONFIG_USER_ONLY) +static RISCVException smstateen_acc_ok(CPURISCVState *env, int index, + uint64_t bit) +{ + bool virt =3D riscv_cpu_virt_enabled(env); + CPUState *cs =3D env_cpu(env); + RISCVCPU *cpu =3D RISCV_CPU(cs); + + if (env->priv =3D=3D PRV_M || !cpu->cfg.ext_smstateen) { + return RISCV_EXCP_NONE; + } + + if (!(env->mstateen[index] & bit)) { + return RISCV_EXCP_ILLEGAL_INST; + } + + if (virt) { + if (!(env->hstateen[index] & bit)) { + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } + + if (env->priv =3D=3D PRV_U && !(env->sstateen[index] & bit)) { + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } + } + + if (env->priv =3D=3D PRV_U && riscv_has_ext(env, RVS)) { + if (!(env->sstateen[index] & bit)) { + return RISCV_EXCP_ILLEGAL_INST; + } + } + + return RISCV_EXCP_NONE; +} +#endif + static RISCVException fs(CPURISCVState *env, int csrno) { #if !defined(CONFIG_USER_ONLY) @@ -1874,6 +1910,13 @@ static RISCVException write_menvcfgh(CPURISCVState *= env, int csrno, static RISCVException read_senvcfg(CPURISCVState *env, int csrno, target_ulong *val) { + RISCVException ret; + + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } + *val =3D env->senvcfg; return RISCV_EXCP_NONE; } @@ -1882,15 +1925,27 @@ static RISCVException write_senvcfg(CPURISCVState *= env, int csrno, target_ulong val) { uint64_t mask =3D SENVCFG_FIOM | SENVCFG_CBIE | SENVCFG_CBCFE | SENVCF= G_CBZE; + RISCVException ret; =20 - env->senvcfg =3D (env->senvcfg & ~mask) | (val & mask); + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } =20 + env->senvcfg =3D (env->senvcfg & ~mask) | (val & mask); return RISCV_EXCP_NONE; } =20 static RISCVException read_henvcfg(CPURISCVState *env, int csrno, target_ulong *val) { + RISCVException ret; + + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } + *val =3D env->henvcfg; return RISCV_EXCP_NONE; } @@ -1899,6 +1954,12 @@ static RISCVException write_henvcfg(CPURISCVState *e= nv, int csrno, target_ulong val) { uint64_t mask =3D HENVCFG_FIOM | HENVCFG_CBIE | HENVCFG_CBCFE | HENVCF= G_CBZE; + RISCVException ret; + + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } =20 if (riscv_cpu_mxl(env) =3D=3D MXL_RV64) { mask |=3D HENVCFG_PBMTE | HENVCFG_STCE; @@ -1912,6 +1973,13 @@ static RISCVException write_henvcfg(CPURISCVState *e= nv, int csrno, static RISCVException read_henvcfgh(CPURISCVState *env, int csrno, target_ulong *val) { + RISCVException ret; + + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } + *val =3D env->henvcfg >> 32; return RISCV_EXCP_NONE; } @@ -1921,9 +1989,14 @@ static RISCVException write_henvcfgh(CPURISCVState *= env, int csrno, { uint64_t mask =3D HENVCFG_PBMTE | HENVCFG_STCE; uint64_t valh =3D (uint64_t)val << 32; + RISCVException ret; =20 - env->henvcfg =3D (env->henvcfg & ~mask) | (valh & mask); + ret =3D smstateen_acc_ok(env, 0, SMSTATEEN0_HSENVCFG); + if (ret !=3D RISCV_EXCP_NONE) { + return ret; + } =20 + env->henvcfg =3D (env->henvcfg & ~mask) | (valh & mask); return RISCV_EXCP_NONE; } =20 @@ -1949,7 +2022,7 @@ static RISCVException write_mstateen(CPURISCVState *e= nv, int csrno, static RISCVException write_mstateen0(CPURISCVState *env, int csrno, target_ulong new_val) { - uint64_t wr_mask =3D SMSTATEEN_STATEEN; + uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 return write_mstateen(env, csrno, wr_mask, new_val); } @@ -1984,7 +2057,7 @@ static RISCVException write_mstateenh(CPURISCVState *= env, int csrno, static RISCVException write_mstateen0h(CPURISCVState *env, int csrno, target_ulong new_val) { - uint64_t wr_mask =3D SMSTATEEN_STATEEN; + uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 return write_mstateenh(env, csrno, wr_mask, new_val); } @@ -2021,7 +2094,7 @@ static RISCVException write_hstateen(CPURISCVState *e= nv, int csrno, static RISCVException write_hstateen0(CPURISCVState *env, int csrno, target_ulong new_val) { - uint64_t wr_mask =3D SMSTATEEN_STATEEN; + uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 return write_hstateen(env, csrno, wr_mask, new_val); } @@ -2060,7 +2133,7 @@ static RISCVException write_hstateenh(CPURISCVState *= env, int csrno, static RISCVException write_hstateen0h(CPURISCVState *env, int csrno, target_ulong new_val) { - uint64_t wr_mask =3D SMSTATEEN_STATEEN; + uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 return write_hstateenh(env, csrno, wr_mask, new_val); } @@ -2107,7 +2180,7 @@ static RISCVException write_sstateen(CPURISCVState *e= nv, int csrno, static RISCVException write_sstateen0(CPURISCVState *env, int csrno, target_ulong new_val) { - uint64_t wr_mask =3D SMSTATEEN_STATEEN; + uint64_t wr_mask =3D SMSTATEEN_STATEEN | SMSTATEEN0_HSENVCFG; =20 return write_sstateen(env, csrno, wr_mask, new_val); } --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662517291427.98953051259537; Wed, 21 Dec 2022 14:41:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87lw-0007RE-Na; Wed, 21 Dec 2022 17:41:12 -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 1p87lv-0007Qo-PE for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:11 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lu-0000bf-29 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:11 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:52 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:21 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:53 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLr5Y24z1RwtC for ; Wed, 21 Dec 2022 14:40:52 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Ifq5mwgrNZRF for ; Wed, 21 Dec 2022 14:40:52 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLp6RJWz1RvLy; Wed, 21 Dec 2022 14:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662469; x=1703198469; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uKlkFUb7mBvR+Z9R4nsVPc0uLxuES5/f7RwMG/pjwv0=; b=KQNNpCgXuYX6IBfiMEFz9NJWXICTCsP0UkbQMSgSQGt40rRj34NL/9wK 0+MpWU1Dnc/OuBuhP2BuGecG/ebd7WQzExLoVKYTOCVbSVDKiJKsic9iI PxVYj8IylRqlFYYY0VqQf0EqVC9t7FY+RGEg3+e0WpmgvDfXpjV4RMk+1 akqw0buuCZ/yL7v8JQixz38Is80dPdF+Yip0jOf81T4z97TL2UFchGqI7 dm71TdT9CZiuHBrb60NQSjkHW3G0lNpWrjTF3r3Rqlfp3HqS+vgGt0GsL ZcztmhmmphqQSjkitq3iSCxc4dmZchMXUmyq6JAXq21ruzPjkvasMiBTB g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561313" IronPort-SDR: pO5iRId8tDIOQO4XggLh70ycUtOcHUxlZ9egkymxGb26OVgQexi/DoWcVDxsDPr9T0+/tRDMmF FZC9UaV36eH1B00kw3u6LqRmCzrW7MUmLwPC6GGbUHWRC4FBziqEs2uEXj7BTWn4ql7cjiTHD1 +E2VSasbzjLa39DyPEqYTPubwz9skBw89kVEYvj1BOYo6np2tZAiUGqEk/XzEcjuPQIQSE04PR 9iASnPxeM3GZh0sg+TJzd6it6DP/jxrXdNdICEoYlT2emm4wKgvCUKeu+fjOHzrEGfuppdHYLd +sQ= IronPort-SDR: ZTbExzDjm14y+BCzs1exbfhryULxxS8MeeQZGEP2HqnUzVoCuG80oHsjlYUmcC4iTTzpeEsxdk y0KITiuW3TQGQFcBi3Oh/rNnjE3m4NdWvocdUDAs2YlxYTUPEU0OEPuvmApfnKBMTxgmKxjUbs EqPd3mV1hI4EMrDqhKx6L0qe/uNuisfLlaVX/k1QTQbL1+KxRWrmHlOqeTSO3rXzcSxoV4Lb1w lgXhPsaXKwLqFQsFxJwEydHrb2qLQRvhaDxHIzTOXl34lk0MEiltiPSz5hjdEdqN6lDf1Tvsht vMU= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662452; x=1674254453; bh=uKlkFUb7mBvR+Z9R4n sVPc0uLxuES5/f7RwMG/pjwv0=; b=BfDWOY6HKLItsbmjokvRlbrWomUnHR/dps zXCkb0I5KpXj/zP7USddYal/aC+m39FeOZ1HLcwmdNLEyGQioe2MxAXBJfFrJ7Nv DPObhcnecNd68kyXDlzyufpCpK/wx66YxW8Kjf8rWPaATyFsdEbI0CJo0aO6t/tD o0pw6SXllmvcRYEkm7BnDS79756FfbeHLpvHRJpsrZZez+OW+6RA0j2Cq7GqDzhE jcDpUD6qUGAP49IsZfPsrxuFrzpVVVwQu7iGBPKhpAANCzaUmy7uN5me25izwnM5 0brtu08D6AO8iea/7bcUmfHqNg4KS/le3NguGbF2uFgJebUWYNYg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Mayuresh Chitale , Weiwei Li , Alistair Francis Subject: [PULL v2 11/45] target/riscv: generate virtual instruction exception Date: Thu, 22 Dec 2022 08:39:48 +1000 Message-Id: <20221221224022.425831-12-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662519602100011 Content-Type: text/plain; charset="utf-8" From: Mayuresh Chitale This patch adds a mechanism to generate a virtual instruction instruction exception instead of an illegal instruction exception during instruction decode when virt is enabled. Signed-off-by: Mayuresh Chitale Reviewed-by: Weiwei Li Reviewed-by: Alistair Francis Message-Id: <20221016124726.102129-4-mchitale@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/translate.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index db123da5ec..8b0bd38bb2 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -76,6 +76,7 @@ typedef struct DisasContext { to reset this known value. */ int frm; RISCVMXL ol; + bool virt_inst_excp; bool virt_enabled; const RISCVCPUConfig *cfg_ptr; bool hlsx; @@ -243,7 +244,11 @@ static void gen_exception_illegal(DisasContext *ctx) { tcg_gen_st_i32(tcg_constant_i32(ctx->opcode), cpu_env, offsetof(CPURISCVState, bins)); - generate_exception(ctx, RISCV_EXCP_ILLEGAL_INST); + if (ctx->virt_inst_excp) { + generate_exception(ctx, RISCV_EXCP_VIRT_INSTRUCTION_FAULT); + } else { + generate_exception(ctx, RISCV_EXCP_ILLEGAL_INST); + } } =20 static void gen_exception_inst_addr_mis(DisasContext *ctx) @@ -1062,6 +1067,7 @@ static void decode_opc(CPURISCVState *env, DisasConte= xt *ctx, uint16_t opcode) { has_XVentanaCondOps_p, decode_XVentanaCodeOps }, }; =20 + ctx->virt_inst_excp =3D false; /* Check for compressed insn */ if (insn_len(opcode) =3D=3D 2) { if (!has_ext(ctx, RVC)) { --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662831700777.9318825242647; Wed, 21 Dec 2022 14:47:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87m1-0007Sw-00; Wed, 21 Dec 2022 17:41:17 -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 1p87ly-0007S6-V3 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:14 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lw-0000Xf-MU for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:14 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:54 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:23 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:55 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLt5pp4z1RvTp for ; Wed, 21 Dec 2022 14:40:54 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5BVKg2PhslAR for ; Wed, 21 Dec 2022 14:40:53 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLr5PKKz1Rwt8; Wed, 21 Dec 2022 14:40:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662472; x=1703198472; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=xFUlrf/rkP5FgRvdtWwqzmPs3jBEAWiKcaqXzib9gcg=; b=OLhrjdL8yhvQCEwk5Dw94Tmsw26klfMGJ6HP6iI0dvKlVMBtoR/M6ugM UJw+q9H9oAMFrwHH4OIcQEthQSimT1I9k9qbnY39K5tQkH2YBSrsxQk4g CQYgRwy1+pVv62klzHmoeb4lsCa9EErwkRObpHsf5ywYYJmP7Y9s0TVD8 fmWXYGaRXiCpjzvAsJ1z2+sVYRYADL8O4zrle4KEltvg4ztvhRQbzMvJY IPyypeRErhKLiGwr2Wpjq4FVMqpTh+P3msm7Y7B9jmEdAeY4wjdiPl6FU fq8/b0sQqzjKi8h1ifHulJiEO7A8N0+bvuO9vDwYkFh61iayCU64SdYTY A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561317" IronPort-SDR: DrlJaHd49/RwWqmyr3BAUqUgSP6xxHx61EM3DWq1zyIPp9I73D7bA4Mf1huTDQnhidfbDe6NQM 5WgKcY22xm48/jj5lhx+hizXHky7RM8/ylnyU/dyhlU/UjkzEFUPKwy/lXs7u8vxSiQvhSMZJh oQmfMm1NhTfPWHeiqxPgTbKHBFNwaDi/EGlVzSSwN9KQngSgwsYVj7aimj1artsw3yHqA8mvwT MvmomPP013aley4w/+BuEGyTIBX3R/4tmT3cM4TBVbfdc8Avgb73/RkV6g+V8pDNCZ4RRk77vX nxA= IronPort-SDR: XAgQA08VLgkwnxQV4myieEdCiftt1+UAkSYOzAro5T0S7MiFTz5zo/6iNiealxnw5TypYO3lLR cVfKPj1m9B6PaqAi3FZrCfw7hOhYbM+dae5ZpKndRST4z/C+kOflH9jOxjG2jYdSiz4nQ7kQuw 0XY7HSicZE3BLsE5I+JBz4r8fnfUjijD0vXUlXfG7WX8+hRMMZTJK+Covtv06zgiQad4TJem7V HUxzxaJ8xTYhhmg4PnvP8QEZ8Ey5N8MPUuIa98sR/asjgiClQ9GsstN9DRDT2iTFT7q/Z7Bj+q Bvo= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662453; x=1674254454; bh=xFUlrf/rkP5FgRvdtW wqzmPs3jBEAWiKcaqXzib9gcg=; b=GxPqG8bPTSoq3tYXVdmbENH/gkMMqxFwyy Je2aSGcPenkS77ChxJdW8vS7lQTWbuO5+vZEPhuAGQgavGsCkJei82NzIOYNx5MM XiYiHgSeXPpS6klx/wikVdMB1n7amqADbtg+YBqtLtXRaY2wheGNNeVsV3Eazj8U LYAgOtppC5bdfpkOzd3zaNqmb7XO3VVXSfUb7qTuQJiWwSPAKsp3+nl2T706iYew J9Egu6Xir+qU8cpJkKuEeDY3f0hsEumzm4kErQPcliDeYSKxCelXeXtlkMMpCmsH f3IkhYVuIwTpc2mAUVMY7RHdXbtz5JfvvD2yWtKzqDF0X2A9YRbQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, LIU Zhiwei , Alistair Francis Subject: [PULL v2 12/45] target/riscv: Add itrigger support when icount is not enabled Date: Thu, 22 Dec 2022 08:39:49 +1000 Message-Id: <20221221224022.425831-13-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662832974100003 Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei When icount is not enabled, there is no API in QEMU that can get the guest instruction number. Translate the guest code in a way that each TB only has one instruction. After executing the instruction, decrease the count by 1 until it reaches 0 where the itrigger fires. Note that only when priviledge matches the itrigger configuration, the count will decrease. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221013062946.7530-2-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 2 + target/riscv/debug.h | 12 ++++ target/riscv/helper.h | 2 + target/riscv/cpu_helper.c | 6 ++ target/riscv/debug.c | 71 +++++++++++++++++++ target/riscv/translate.c | 33 ++++++++- .../riscv/insn_trans/trans_privileged.c.inc | 4 +- target/riscv/insn_trans/trans_rvi.c.inc | 8 +-- target/riscv/insn_trans/trans_rvv.c.inc | 4 +- 9 files changed, 131 insertions(+), 11 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 5cac0c5eec..c32e484c0b 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -625,6 +625,8 @@ FIELD(TB_FLAGS, PM_MASK_ENABLED, 22, 1) FIELD(TB_FLAGS, PM_BASE_ENABLED, 23, 1) FIELD(TB_FLAGS, VTA, 24, 1) FIELD(TB_FLAGS, VMA, 25, 1) +/* Native debug itrigger */ +FIELD(TB_FLAGS, ITRIGGER, 26, 1) =20 #ifdef TARGET_RISCV32 #define riscv_cpu_mxl(env) ((void)(env), MXL_RV32) diff --git a/target/riscv/debug.h b/target/riscv/debug.h index a1226b4d29..cc3358e69b 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -118,6 +118,17 @@ enum { SIZE_NUM =3D 16 }; =20 +/* itrigger filed masks */ +#define ITRIGGER_ACTION 0x3f +#define ITRIGGER_U BIT(6) +#define ITRIGGER_S BIT(7) +#define ITRIGGER_PENDING BIT(8) +#define ITRIGGER_M BIT(9) +#define ITRIGGER_COUNT (0x3fff << 10) +#define ITRIGGER_HIT BIT(24) +#define ITRIGGER_VU BIT(25) +#define ITRIGGER_VS BIT(26) + bool tdata_available(CPURISCVState *env, int tdata_index); =20 target_ulong tselect_csr_read(CPURISCVState *env); @@ -134,4 +145,5 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPU= Watchpoint *wp); =20 void riscv_trigger_init(CPURISCVState *env); =20 +bool riscv_itrigger_enabled(CPURISCVState *env); #endif /* RISCV_DEBUG_H */ diff --git a/target/riscv/helper.h b/target/riscv/helper.h index a03014fe67..227c7122ef 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -109,6 +109,8 @@ DEF_HELPER_1(sret, tl, env) DEF_HELPER_1(mret, tl, env) DEF_HELPER_1(wfi, void, env) DEF_HELPER_1(tlb_flush, void, env) +/* Native Debug */ +DEF_HELPER_1(itrigger_match, void, env) #endif =20 /* Hypervisor functions */ diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 5d66246c2c..9d1d1bf9f1 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -27,7 +27,9 @@ #include "tcg/tcg-op.h" #include "trace.h" #include "semihosting/common-semi.h" +#include "sysemu/cpu-timers.h" #include "cpu_bits.h" +#include "debug.h" =20 int riscv_cpu_mmu_index(CPURISCVState *env, bool ifetch) { @@ -103,6 +105,10 @@ void cpu_get_tb_cpu_state(CPURISCVState *env, target_u= long *pc, flags =3D FIELD_DP32(flags, TB_FLAGS, MSTATUS_HS_VS, get_field(env->mstatus_hs, MSTATUS_VS)); } + if (riscv_feature(env, RISCV_FEATURE_DEBUG) && !icount_enabled()) { + flags =3D FIELD_DP32(flags, TB_FLAGS, ITRIGGER, + riscv_itrigger_enabled(env)); + } #endif =20 flags =3D FIELD_DP32(flags, TB_FLAGS, XL, env->xl); diff --git a/target/riscv/debug.c b/target/riscv/debug.c index e44848d0d7..036161649f 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -29,6 +29,7 @@ #include "cpu.h" #include "trace.h" #include "exec/exec-all.h" +#include "exec/helper-proto.h" =20 /* * The following M-mode trigger CSRs are implemented: @@ -496,6 +497,76 @@ static void type6_reg_write(CPURISCVState *env, target= _ulong index, return; } =20 +/* icount trigger type */ +static inline int +itrigger_get_count(CPURISCVState *env, int index) +{ + return get_field(env->tdata1[index], ITRIGGER_COUNT); +} + +static inline void +itrigger_set_count(CPURISCVState *env, int index, int value) +{ + env->tdata1[index] =3D set_field(env->tdata1[index], + ITRIGGER_COUNT, value); +} + +static bool check_itrigger_priv(CPURISCVState *env, int index) +{ + target_ulong tdata1 =3D env->tdata1[index]; + if (riscv_cpu_virt_enabled(env)) { + /* check VU/VS bit against current privilege level */ + return (get_field(tdata1, ITRIGGER_VS) =3D=3D env->priv) || + (get_field(tdata1, ITRIGGER_VU) =3D=3D env->priv); + } else { + /* check U/S/M bit against current privilege level */ + return (get_field(tdata1, ITRIGGER_M) =3D=3D env->priv) || + (get_field(tdata1, ITRIGGER_S) =3D=3D env->priv) || + (get_field(tdata1, ITRIGGER_U) =3D=3D env->priv); + } +} + +bool riscv_itrigger_enabled(CPURISCVState *env) +{ + int count; + for (int i =3D 0; i < RV_MAX_TRIGGERS; i++) { + if (get_trigger_type(env, i) !=3D TRIGGER_TYPE_INST_CNT) { + continue; + } + if (check_itrigger_priv(env, i)) { + continue; + } + count =3D itrigger_get_count(env, i); + if (!count) { + continue; + } + return true; + } + + return false; +} + +void helper_itrigger_match(CPURISCVState *env) +{ + int count; + for (int i =3D 0; i < RV_MAX_TRIGGERS; i++) { + if (get_trigger_type(env, i) !=3D TRIGGER_TYPE_INST_CNT) { + continue; + } + if (check_itrigger_priv(env, i)) { + continue; + } + count =3D itrigger_get_count(env, i); + if (!count) { + continue; + } + itrigger_set_count(env, i, count--); + if (!count) { + do_trigger_action(env, i); + } + } +} + target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { switch (tdata_index) { diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 8b0bd38bb2..cd5eb25ee8 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -112,6 +112,8 @@ typedef struct DisasContext { /* PointerMasking extension */ bool pm_mask_enabled; bool pm_base_enabled; + /* Use icount trigger for native debug */ + bool itrigger; /* TCG of the current insn_start */ TCGOp *insn_start; } DisasContext; @@ -257,15 +259,39 @@ static void gen_exception_inst_addr_mis(DisasContext = *ctx) generate_exception(ctx, RISCV_EXCP_INST_ADDR_MIS); } =20 +static void lookup_and_goto_ptr(DisasContext *ctx) +{ +#ifndef CONFIG_USER_ONLY + if (ctx->itrigger) { + gen_helper_itrigger_match(cpu_env); + } +#endif + tcg_gen_lookup_and_goto_ptr(); +} + +static void exit_tb(DisasContext *ctx) +{ +#ifndef CONFIG_USER_ONLY + if (ctx->itrigger) { + gen_helper_itrigger_match(cpu_env); + } +#endif + tcg_gen_exit_tb(NULL, 0); +} + static void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) { - if (translator_use_goto_tb(&ctx->base, dest)) { + /* + * Under itrigger, instruction executes one by one like singlestep, + * direct block chain benefits will be small. + */ + if (translator_use_goto_tb(&ctx->base, dest) && !ctx->itrigger) { tcg_gen_goto_tb(n); gen_set_pc_imm(ctx, dest); tcg_gen_exit_tb(ctx->base.tb, n); } else { gen_set_pc_imm(ctx, dest); - tcg_gen_lookup_and_goto_ptr(); + lookup_and_goto_ptr(ctx); } } =20 @@ -1142,6 +1168,7 @@ static void riscv_tr_init_disas_context(DisasContextB= ase *dcbase, CPUState *cs) memset(ctx->ftemp, 0, sizeof(ctx->ftemp)); ctx->pm_mask_enabled =3D FIELD_EX32(tb_flags, TB_FLAGS, PM_MASK_ENABLE= D); ctx->pm_base_enabled =3D FIELD_EX32(tb_flags, TB_FLAGS, PM_BASE_ENABLE= D); + ctx->itrigger =3D FIELD_EX32(tb_flags, TB_FLAGS, ITRIGGER); ctx->zero =3D tcg_constant_tl(0); } =20 @@ -1181,7 +1208,7 @@ static void riscv_tr_translate_insn(DisasContextBase = *dcbase, CPUState *cpu) =20 /* Only the first insn within a TB is allowed to cross a page boundary= . */ if (ctx->base.is_jmp =3D=3D DISAS_NEXT) { - if (!is_same_page(&ctx->base, ctx->base.pc_next)) { + if (ctx->itrigger || !is_same_page(&ctx->base, ctx->base.pc_next))= { ctx->base.is_jmp =3D DISAS_TOO_MANY; } else { unsigned page_ofs =3D ctx->base.pc_next & ~TARGET_PAGE_MASK; diff --git a/target/riscv/insn_trans/trans_privileged.c.inc b/target/riscv/= insn_trans/trans_privileged.c.inc index 3281408a87..59501b2780 100644 --- a/target/riscv/insn_trans/trans_privileged.c.inc +++ b/target/riscv/insn_trans/trans_privileged.c.inc @@ -78,7 +78,7 @@ static bool trans_sret(DisasContext *ctx, arg_sret *a) if (has_ext(ctx, RVS)) { decode_save_opc(ctx); gen_helper_sret(cpu_pc, cpu_env); - tcg_gen_exit_tb(NULL, 0); /* no chaining */ + exit_tb(ctx); /* no chaining */ ctx->base.is_jmp =3D DISAS_NORETURN; } else { return false; @@ -94,7 +94,7 @@ static bool trans_mret(DisasContext *ctx, arg_mret *a) #ifndef CONFIG_USER_ONLY decode_save_opc(ctx); gen_helper_mret(cpu_pc, cpu_env); - tcg_gen_exit_tb(NULL, 0); /* no chaining */ + exit_tb(ctx); /* no chaining */ ctx->base.is_jmp =3D DISAS_NORETURN; return true; #else diff --git a/target/riscv/insn_trans/trans_rvi.c.inc b/target/riscv/insn_tr= ans/trans_rvi.c.inc index c49dbec0eb..5c69b88d1e 100644 --- a/target/riscv/insn_trans/trans_rvi.c.inc +++ b/target/riscv/insn_trans/trans_rvi.c.inc @@ -66,7 +66,7 @@ static bool trans_jalr(DisasContext *ctx, arg_jalr *a) } =20 gen_set_gpri(ctx, a->rd, ctx->pc_succ_insn); - tcg_gen_lookup_and_goto_ptr(); + lookup_and_goto_ptr(ctx); =20 if (misaligned) { gen_set_label(misaligned); @@ -803,7 +803,7 @@ static bool trans_pause(DisasContext *ctx, arg_pause *a) * end the TB and return to main loop */ gen_set_pc_imm(ctx, ctx->pc_succ_insn); - tcg_gen_exit_tb(NULL, 0); + exit_tb(ctx); ctx->base.is_jmp =3D DISAS_NORETURN; =20 return true; @@ -827,7 +827,7 @@ static bool trans_fence_i(DisasContext *ctx, arg_fence_= i *a) * however we need to end the translation block */ gen_set_pc_imm(ctx, ctx->pc_succ_insn); - tcg_gen_exit_tb(NULL, 0); + exit_tb(ctx); ctx->base.is_jmp =3D DISAS_NORETURN; return true; } @@ -838,7 +838,7 @@ static bool do_csr_post(DisasContext *ctx) decode_save_opc(ctx); /* We may have changed important cpu state -- exit to main loop. */ gen_set_pc_imm(ctx, ctx->pc_succ_insn); - tcg_gen_exit_tb(NULL, 0); + exit_tb(ctx); ctx->base.is_jmp =3D DISAS_NORETURN; return true; } diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 4dea4413ae..d455acedbf 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -196,7 +196,7 @@ static bool do_vsetvl(DisasContext *s, int rd, int rs1,= TCGv s2) mark_vs_dirty(s); =20 gen_set_pc_imm(s, s->pc_succ_insn); - tcg_gen_lookup_and_goto_ptr(); + lookup_and_goto_ptr(s); s->base.is_jmp =3D DISAS_NORETURN; =20 if (rd =3D=3D 0 && rs1 =3D=3D 0) { @@ -222,7 +222,7 @@ static bool do_vsetivli(DisasContext *s, int rd, TCGv s= 1, TCGv s2) gen_set_gpr(s, rd, dst); mark_vs_dirty(s); gen_set_pc_imm(s, s->pc_succ_insn); - tcg_gen_lookup_and_goto_ptr(); + lookup_and_goto_ptr(s); s->base.is_jmp =3D DISAS_NORETURN; =20 return true; --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663140867653.9513230616255; Wed, 21 Dec 2022 14:52:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87m0-0007Sa-9X; Wed, 21 Dec 2022 17:41:16 -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 1p87ly-0007Ry-Ol for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:14 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87lw-0000bQ-Np for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:14 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:56 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:25 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:57 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLw4sxhz1Rwrq for ; Wed, 21 Dec 2022 14:40:56 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zFWk_9Sn75rf for ; Wed, 21 Dec 2022 14:40:56 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLt3Pc4z1RvLy; Wed, 21 Dec 2022 14:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662472; x=1703198472; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WlzJNv7zAq+erG67OroIcaBLtHaWlexwDnpa6Hg6S1U=; b=TFhx+CtVwFqnK61TXuI5J7CHKxAk5ptYMrnuY+vvBrODriQauXlSYiQC V2tcnFKS0MfeDVkSyVeJbFa1CkEZT5OlrvbgdDdkbPZRyeckllwNLe71I DmJQL01bz+kIlF3M7s1kMkOI61HRxASDFJIBEqrchGX0vFp1FYjbJIGR5 s6xqdPlOy0kZucHZ46+uvapiRWw9BQ9wGe+3BIbObhPsEnKXiRR39Y6hN Bx0/NWw0jnXTTLwJkh2vSlvE2NOt3psZj9tkmyY2bhVZ2Odc22VIZLOrA x3SsmWlIX8stILT9IO7Q8pukZojKjg25DMMI7D8b7SNVkRXub/PRReaK4 Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561321" IronPort-SDR: 0ZVtF8x2zoMj/ywG4aR1jvLm3fM7MpPzp89m/7KC6WSaqFOMFYNSZeFYpjwigIiiL1pfrvB3QG EYi8yExcCdYpZR5wjTx6abyvNHH9aMBTdplooiYSkPPxGWozEOncMRGmxGiM4ZhC5wUOUgzj6a nvFm5ZLsmmjKaIwqNP0LsSOp9ZaUbLL/nI+yXHo45jp2GZ7z4fAjMJkzvnjfC/eqY+Rk8XJyOx 5cIiJaixdFUjfNDDjChtDQ95ObZVYnAeMU7RxdkLxtqboOGm42ryCpStMZzypEXGhRSyIj3n8P YB0= IronPort-SDR: sH8Ls2l1tYqH1Rtxe2xhbmDg9e4QpXao+MYqoPy9gXo9syB4aru0jdKMdQ84TgUZHpYM5IVsFV Vnr2TsZJmKKB7/DXRi4k+wpI+4s1iNN+KC/dHnT1X1ROEN6u5K4tWbpb1+I0AnweJllpmqsQTK CYATtyD9Oc+ZGoGxit2+xTDqXbq3VTpbsbc15Jy4vtLmnE5DKT9MO73GVCF3mkEKma2S5RZWaa 8RHVqxSeQap44F7Me+KVrpG6iDBKFfV5np3mHiJ1FK99liyfZyVlnom9zMwdeLjW1ADBYHmoMZ SLA= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662456; x=1674254457; bh=WlzJNv7zAq+erG67Or oIcaBLtHaWlexwDnpa6Hg6S1U=; b=Sejh7daj0DG5qaK7j/4T2MEpqrXphjbVSZ R5hU6zch6Jy281E+IedXUc+hxFJwf8nlGQarYGvJM/1+Yh3yuzueOcgjgLU5lM8U WfjIdN0FVvfi2Kqw8EfuQtCB4xcMHfiSCcvTLEe1Os1MbUhT133as+bAd63NbQb5 hMYgQfjOFBiavkq6MeDz8GeTnEhFFoqMoDQdDsGKg3E38XbV8wla5tC7W9Iy0c0i N+lP3gDDFTU7SdrPHU8ubRN1ZuwYxKoSbc5GhbE9UlzcukikGDJ38/wS5zj2pU+9 +vFAUPYOY2lHNSqQMevGGuIyqy4P5e+dFVKcTcX1bXKtLLH8qznw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, LIU Zhiwei , Alistair Francis Subject: [PULL v2 13/45] target/riscv: Add itrigger support when icount is enabled Date: Thu, 22 Dec 2022 08:39:50 +1000 Message-Id: <20221221224022.425831-14-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663142389100003 Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei The max count in itrigger can be 0x3FFF, which will cause a no trivial translation and execution overload. When icount is enabled, QEMU provides API that can fetch guest instruction number. Thus, we can set an timer for itrigger with the count as deadline. Only when timer expires or priviledge mode changes, do lazy update to count. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221013062946.7530-3-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 2 ++ target/riscv/debug.h | 1 + target/riscv/cpu_helper.c | 3 ++ target/riscv/debug.c | 59 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index c32e484c0b..b0b4048de9 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -329,6 +329,8 @@ struct CPUArchState { target_ulong tdata3[RV_MAX_TRIGGERS]; struct CPUBreakpoint *cpu_breakpoint[RV_MAX_TRIGGERS]; struct CPUWatchpoint *cpu_watchpoint[RV_MAX_TRIGGERS]; + QEMUTimer *itrigger_timer[RV_MAX_TRIGGERS]; + int64_t last_icount; =20 /* machine specific rdtime callback */ uint64_t (*rdtime_fn)(void *); diff --git a/target/riscv/debug.h b/target/riscv/debug.h index cc3358e69b..c471748d5a 100644 --- a/target/riscv/debug.h +++ b/target/riscv/debug.h @@ -146,4 +146,5 @@ bool riscv_cpu_debug_check_watchpoint(CPUState *cs, CPU= Watchpoint *wp); void riscv_trigger_init(CPURISCVState *env); =20 bool riscv_itrigger_enabled(CPURISCVState *env); +void riscv_itrigger_update_priv(CPURISCVState *env); #endif /* RISCV_DEBUG_H */ diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 9d1d1bf9f1..6230f65f70 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -676,6 +676,9 @@ void riscv_cpu_set_mode(CPURISCVState *env, target_ulon= g newpriv) if (newpriv =3D=3D PRV_H) { newpriv =3D PRV_U; } + if (icount_enabled() && newpriv !=3D env->priv) { + riscv_itrigger_update_priv(env); + } /* tlb_flush is unnecessary as mode is contained in mmu_idx */ env->priv =3D newpriv; env->xl =3D cpu_recompute_xl(env); diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 036161649f..371862cf38 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -30,6 +30,7 @@ #include "trace.h" #include "exec/exec-all.h" #include "exec/helper-proto.h" +#include "sysemu/cpu-timers.h" =20 /* * The following M-mode trigger CSRs are implemented: @@ -567,6 +568,62 @@ void helper_itrigger_match(CPURISCVState *env) } } =20 +static void riscv_itrigger_update_count(CPURISCVState *env) +{ + int count, executed; + /* + * Record last icount, so that we can evaluate the executed instructio= ns + * since last priviledge mode change or timer expire. + */ + int64_t last_icount =3D env->last_icount, current_icount; + current_icount =3D env->last_icount =3D icount_get_raw(); + + for (int i =3D 0; i < RV_MAX_TRIGGERS; i++) { + if (get_trigger_type(env, i) !=3D TRIGGER_TYPE_INST_CNT) { + continue; + } + count =3D itrigger_get_count(env, i); + if (!count) { + continue; + } + /* + * Only when priviledge is changed or itrigger timer expires, + * the count field in itrigger tdata1 register is updated. + * And the count field in itrigger only contains remaining value. + */ + if (check_itrigger_priv(env, i)) { + /* + * If itrigger enabled in this priviledge mode, the number of + * executed instructions since last priviledge change + * should be reduced from current itrigger count. + */ + executed =3D current_icount - last_icount; + itrigger_set_count(env, i, count - executed); + if (count =3D=3D executed) { + do_trigger_action(env, i); + } + } else { + /* + * If itrigger is not enabled in this priviledge mode, + * the number of executed instructions will be discard and + * the count field in itrigger will not change. + */ + timer_mod(env->itrigger_timer[i], + current_icount + count); + } + } +} + +static void riscv_itrigger_timer_cb(void *opaque) +{ + riscv_itrigger_update_count((CPURISCVState *)opaque); +} + +void riscv_itrigger_update_priv(CPURISCVState *env) +{ + riscv_itrigger_update_count(env); +} + target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { switch (tdata_index) { @@ -796,5 +853,7 @@ void riscv_trigger_init(CPURISCVState *env) env->tdata3[i] =3D 0; env->cpu_breakpoint[i] =3D NULL; env->cpu_watchpoint[i] =3D NULL; + env->itrigger_timer[i] =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, + riscv_itrigger_timer_cb, env= ); } } --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662532824369.536238595693; Wed, 21 Dec 2022 14:42:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mB-0007fc-F6; Wed, 21 Dec 2022 17:41:27 -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 1p87m7-0007TK-OB for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:24 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87m6-0000bf-3E for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:23 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:40:58 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:27 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:40:59 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpLz06HBz1RvTp for ; Wed, 21 Dec 2022 14:40:59 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id yIJNlkqJhO9d for ; Wed, 21 Dec 2022 14:40:58 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLw4KC5z1RvTr; Wed, 21 Dec 2022 14:40:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662481; x=1703198481; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6Q1etqXq6mt77HOH608vmTWlV47LCAy3tVEsE1U6I48=; b=J7MXoU6V7V7yLE8PzMm5sda5b98gLnFqbYd1RBrCa89J3dhGuah8hgDR LQ2NB97IpkVhExW4XMahb0KwQy+0jvV+Ei2R1jAUumM2jl94lrObhm4rg qTD40AUEnFB8AJFEYR8KHNlMNDh6XAOvB5KGzLFOVtybremlqb0aQ8k69 0JVGwjYh/2CmeVrUN+RRRLb2PB/v/aZrL0F9LueViDmZrZ+uUjuoYjmp/ yZ5xdCToar5edRKrI+/dOIWdBU3h8+xpkigJ3lgFQat5LHxgGal8vpIUv XXel1d1fVPkf8zqtrBWEGeO0r61k90BsaTlCCZhjqpdeykPSc1KLVxTVl g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561327" IronPort-SDR: wlEoH78oHuxEaxTS2t6wgDREhN62/t+Mq5LGQe75nih1hhczD+7y7TCpxw5Lki4iRk7KfVNth6 1EpwvLfXiKEcGU6tyjUHXjfmEpNjuLrJtMAsZe7p5oUyEiN9wdjMQQpODllR+8PL6siBWj4LTx G4Qzyr4EM0qtpgSb0u/2TEIEx+ys4MMFS+svsegjRD06ab4SJyhihgFZ/Eej9LCJ0JkwctAC7j 2z2XW0jcEtDNdItToxn3ic+oni3vpxt6QmNXbqK55zj7HdRUgtDWk2m6U9oc2cV/ockxArD4Ik E3k= IronPort-SDR: Z38qq1SmX1SoMpWQhfh4QqkMeNBfwzgjqReFMrwb6FIgOxuQzjzB8i2yHlV/uDUZyZZdEikm8M qbNj8r4XzOzOTzdZQvkszjZowpOXOocpzdULAmeegB6P/i2AciujCykIMMQnqNNJIC0DSzIH+S FvK/kCJa42OrGv0tgmZckwPjw+J+R4VvncV6OxJgLn4rJVpvmpEB+2CUuAGK4uMtF1AOEQ+7KD 2MtdMo2KPPbrw+QOl3wIG4ZjzKRgukzWEkGFQRf8L2rCQrVf10tfvbkjCBx/bo+VGaN7Lh1mES Ilw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662458; x=1674254459; bh=6Q1etqXq6mt77HOH60 8vmTWlV47LCAy3tVEsE1U6I48=; b=C2Ukcq3lWPLR4H0MxLBRZCNIJg/eqQc9tt Ii/qxBty7T7rb1j7kXhuvKkspHHf7+SZ+ggOHk/HRgywFNPRgZkUrcfukHlsFFb3 3olwDmyx+AfWK9Uq0L7cj6qwVDggLfBHOyD9/vqTb8n1ZovpAHXW5fQOZCLnGGSj Hzy2GkysnOi2zzuY9Wsm6aeRdKLqrgPVolU2IRafw8A6BDUkuiy+GTOfVRy33vsG ThEVoLBYDYfouoRniHy5yG3hfJjSzFTAlx8uE8ryi1g/FeDEFgEj8j9meqHZK6wK ohvo97jspmAYPM8VNub6iF+3p+iqJUnZr7yUQM7C6OUmfzOzrBuA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, LIU Zhiwei , Alistair Francis Subject: [PULL v2 14/45] target/riscv: Enable native debug itrigger Date: Thu, 22 Dec 2022 08:39:51 +1000 Message-Id: <20221221224022.425831-15-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662533674100001 Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei When QEMU is not in icount mode, execute instruction one by one. The tdata1 can be read directly. When QEMU is in icount mode, use a timer to simulate the itrigger. The tdata1 may be not right because of lazy update of count in tdata1. Thus, We should pack the adjusted count into tdata1 before read it back. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221013062946.7530-4-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis --- target/riscv/debug.c | 72 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/target/riscv/debug.c b/target/riscv/debug.c index 371862cf38..b3574b250f 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -624,10 +624,80 @@ void riscv_itrigger_update_priv(CPURISCVState *env) riscv_itrigger_update_count(env); } =20 +static target_ulong itrigger_validate(CPURISCVState *env, + target_ulong ctrl) +{ + target_ulong val; + + /* validate the generic part first */ + val =3D tdata1_validate(env, ctrl, TRIGGER_TYPE_INST_CNT); + + /* validate unimplemented (always zero) bits */ + warn_always_zero_bit(ctrl, ITRIGGER_ACTION, "action"); + warn_always_zero_bit(ctrl, ITRIGGER_HIT, "hit"); + warn_always_zero_bit(ctrl, ITRIGGER_PENDING, "pending"); + + /* keep the mode and attribute bits */ + val |=3D ctrl & (ITRIGGER_VU | ITRIGGER_VS | ITRIGGER_U | ITRIGGER_S | + ITRIGGER_M | ITRIGGER_COUNT); + + return val; +} + +static void itrigger_reg_write(CPURISCVState *env, target_ulong index, + int tdata_index, target_ulong val) +{ + target_ulong new_val; + + switch (tdata_index) { + case TDATA1: + /* set timer for icount */ + new_val =3D itrigger_validate(env, val); + if (new_val !=3D env->tdata1[index]) { + env->tdata1[index] =3D new_val; + if (icount_enabled()) { + env->last_icount =3D icount_get_raw(); + /* set the count to timer */ + timer_mod(env->itrigger_timer[index], + env->last_icount + itrigger_get_count(env, index= )); + } + } + break; + case TDATA2: + qemu_log_mask(LOG_UNIMP, + "tdata2 is not supported for icount trigger\n"); + break; + case TDATA3: + qemu_log_mask(LOG_UNIMP, + "tdata3 is not supported for icount trigger\n"); + break; + default: + g_assert_not_reached(); + } + + return; +} + +static int itrigger_get_adjust_count(CPURISCVState *env) +{ + int count =3D itrigger_get_count(env, env->trigger_cur), executed; + if ((count !=3D 0) && check_itrigger_priv(env, env->trigger_cur)) { + executed =3D icount_get_raw() - env->last_icount; + count +=3D executed; + } + return count; +} + target_ulong tdata_csr_read(CPURISCVState *env, int tdata_index) { + int trigger_type; switch (tdata_index) { case TDATA1: + trigger_type =3D extract_trigger_type(env, env->tdata1[env->trigge= r_cur]); + if ((trigger_type =3D=3D TRIGGER_TYPE_INST_CNT) && icount_enabled(= )) { + return deposit64(env->tdata1[env->trigger_cur], 10, 14, + itrigger_get_adjust_count(env)); + } return env->tdata1[env->trigger_cur]; case TDATA2: return env->tdata2[env->trigger_cur]; @@ -656,6 +726,8 @@ void tdata_csr_write(CPURISCVState *env, int tdata_inde= x, target_ulong val) type6_reg_write(env, env->trigger_cur, tdata_index, val); break; case TRIGGER_TYPE_INST_CNT: + itrigger_reg_write(env, env->trigger_cur, tdata_index, val); + break; case TRIGGER_TYPE_INT: case TRIGGER_TYPE_EXCP: case TRIGGER_TYPE_EXT_SRC: --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663352275541.461554821926; Wed, 21 Dec 2022 14:55:52 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mD-0007hp-L5; Wed, 21 Dec 2022 17:41:29 -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 1p87mA-0007fF-OX for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:27 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87m8-0000bQ-SB for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:26 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:01 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:29 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:01 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpM10R75z1RvLy for ; Wed, 21 Dec 2022 14:41:01 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6GcPGyssaLxO for ; Wed, 21 Dec 2022 14:41:00 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpLz0fhQz1RvTr; Wed, 21 Dec 2022 14:40:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662484; x=1703198484; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=hA8GUt3QgaAt1ObukS0M+QptkQXfyXPsaUaQjv3/W5k=; b=es5VAXRK4TOcJtkPK4IGrYkwkf0ck2AYd6BkQ/4rBH3/t8XOccrHx82/ kzTn+yqc4q6dGR+seZlgrXgLQH8goQz/31NOdMIQ4K9DJO+QLqNZl/w/x orU9bFslzDP88Ll1xgwFKV2x/Nn350062O2vlF437FWAKyty5tGwPq1LM MloLI8qFju61LcgAfR0qDu4je6/JJq5iMNcv/vWzF0yK32we9NCVpvxOq HaOzAr9isIx8vd3RgDDfYtPd8KWnzFYYQ+qz8/MFqwbBUBWR7qIHvF7Ku chHY2bUQVJKaMpP+6odEVomDsLYb5mBtxJbf057iiI+AwCbPqOSef88tv g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561334" IronPort-SDR: FmGhVmNeB+b1LZuSWNQ6AHGIQX17FscfRtWfprSKA67V69ZXYcezQwWtGTBgzKGvopOl35CdTp eap/8yto+L+o67gp8+gLCfLsIVmE2asrlsI2T3JJBegOQVXUotwj1904ll5ZjdfEfW2JDlvdNe 6tdGqI6V+tKDpM7x1ICcuGIZuxuBVL0c7cZ8ZHG597dRaNhmmD+4Pxp/6SnNkoRxARkhwUVPOX ydm9f3Z2+cBn/l2fwIQejUrmTzX1lmTNvGOoJ2/Eg1dpga4Uqg7HFUn+SNZ7VkMeIJPPU0TXon c4M= IronPort-SDR: Jg00FOxK6ttkwppw1BTIRpnR1JXo4W2MFAicYqN9jWYupzU0fxxbHnAc5VjbSOGHvxBy7SaclN wVMZgInVcykrqogQ7zzjeggpzl9i8QfCDuf3dlf7NijgF4Z4s8yir4LGUKXg5Bxg2AYRazgtiX PRfFrIypo+gxPd3FfR3aOqwcWg8zOcf6/6UUc3U21WheObfxmnVu+BUlllSMMtnOXEP51RZmIT DSDj4UfUbkOfeqvFxJHJ5t+WkFtoIpSw1pYcNPwQebhUibMh8tTKDw6akixlfmecN11Q5w+pV6 kVU= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662460; x=1674254461; bh=hA8GUt3QgaAt1ObukS 0M+QptkQXfyXPsaUaQjv3/W5k=; b=YeAIiNSdRWQNpDuPAifQNoEJZc4bQZRZf0 1vRnbHLk6ecxjaUUlkTiAtOoeBmyGwjbtO7s1OSueD++zfRmYUzIItq6hERevxJ4 0km0gttQ6p046yyiy4jyfoGNmvIgOlp1v+bj2hAfzGOf/bz9eo3BVRUniDsP/SCn iwYX4bvaW6XUyNv79zRyqLYZImW9H6hsNHRLIIcEuCBJ9c7psELwPJg/uo4V4UFD WQUNmO5OqOdr1jfgA/WufizTbTx2rzBNavtl//Mnb0nwg079Bc0I6nU3cfpxktYo 61i12rSozK62eybftBt4bIb1FNs37/rKCOXEGlBmcABgAoKS74pA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, LIU Zhiwei , Alistair Francis Subject: [PULL v2 15/45] target/riscv: Add itrigger_enabled field to CPURISCVState Date: Thu, 22 Dec 2022 08:39:52 +1000 Message-Id: <20221221224022.425831-16-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663353166100003 Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei Avoid calling riscv_itrigger_enabled() when calculate the tbflags. As the itrigger enable status can only be changed when write tdata1, migration load or itrigger fire, update env->itrigger_enabled at these places. Signed-off-by: LIU Zhiwei Reviewed-by: Alistair Francis Message-Id: <20221013062946.7530-5-zhiwei_liu@linux.alibaba.com> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 1 + target/riscv/cpu_helper.c | 3 +-- target/riscv/debug.c | 3 +++ target/riscv/machine.c | 15 +++++++++++++++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index b0b4048de9..37f9516941 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -331,6 +331,7 @@ struct CPUArchState { struct CPUWatchpoint *cpu_watchpoint[RV_MAX_TRIGGERS]; QEMUTimer *itrigger_timer[RV_MAX_TRIGGERS]; int64_t last_icount; + bool itrigger_enabled; =20 /* machine specific rdtime callback */ uint64_t (*rdtime_fn)(void *); diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 6230f65f70..427d4d4386 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -106,8 +106,7 @@ void cpu_get_tb_cpu_state(CPURISCVState *env, target_ul= ong *pc, get_field(env->mstatus_hs, MSTATUS_VS)); } if (riscv_feature(env, RISCV_FEATURE_DEBUG) && !icount_enabled()) { - flags =3D FIELD_DP32(flags, TB_FLAGS, ITRIGGER, - riscv_itrigger_enabled(env)); + flags =3D FIELD_DP32(flags, TB_FLAGS, ITRIGGER, env->itrigger_enab= led); } #endif =20 diff --git a/target/riscv/debug.c b/target/riscv/debug.c index b3574b250f..bf4840a6a3 100644 --- a/target/riscv/debug.c +++ b/target/riscv/debug.c @@ -563,6 +563,7 @@ void helper_itrigger_match(CPURISCVState *env) } itrigger_set_count(env, i, count--); if (!count) { + env->itrigger_enabled =3D riscv_itrigger_enabled(env); do_trigger_action(env, i); } } @@ -660,6 +661,8 @@ static void itrigger_reg_write(CPURISCVState *env, targ= et_ulong index, /* set the count to timer */ timer_mod(env->itrigger_timer[index], env->last_icount + itrigger_get_count(env, index= )); + } else { + env->itrigger_enabled =3D riscv_itrigger_enabled(env); } } break; diff --git a/target/riscv/machine.c b/target/riscv/machine.c index e687f9fce0..65a8549ec2 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -21,6 +21,8 @@ #include "qemu/error-report.h" #include "sysemu/kvm.h" #include "migration/cpu.h" +#include "sysemu/cpu-timers.h" +#include "debug.h" =20 static bool pmp_needed(void *opaque) { @@ -229,11 +231,24 @@ static bool debug_needed(void *opaque) return riscv_feature(env, RISCV_FEATURE_DEBUG); } =20 +static int debug_post_load(void *opaque, int version_id) +{ + RISCVCPU *cpu =3D opaque; + CPURISCVState *env =3D &cpu->env; + + if (icount_enabled()) { + env->itrigger_enabled =3D riscv_itrigger_enabled(env); + } + + return 0; +} + static const VMStateDescription vmstate_debug =3D { .name =3D "cpu/debug", .version_id =3D 2, .minimum_version_id =3D 2, .needed =3D debug_needed, + .post_load =3D debug_post_load, .fields =3D (VMStateField[]) { VMSTATE_UINTTL(env.trigger_cur, RISCVCPU), VMSTATE_UINTTL_ARRAY(env.tdata1, RISCVCPU, RV_MAX_TRIGGERS), --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663070460269.78802817621204; Wed, 21 Dec 2022 14:51:10 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mF-0007iw-Ab; Wed, 21 Dec 2022 17:41:31 -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 1p87mB-0007fG-3w for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:27 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87m9-0000Xf-7u for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:26 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:03 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:31 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:03 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpM30kZ3z1RvLy for ; Wed, 21 Dec 2022 14:41:03 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id nPh_dqBgkZz4 for ; Wed, 21 Dec 2022 14:41:02 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpM10mqjz1RvTr; Wed, 21 Dec 2022 14:41:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662484; x=1703198484; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KOmkdsaG2L/1f6aUZirO4FA9LnT3y2PXMdUmb+q6hDk=; b=ASRsT2+buYalDiOHo6y/i2LX7j2bMRjWSlY1RCQ7ETYKUI19T0IW2zK/ L7+dgCeKAQBY00RGaYend12vhm/SXR/JyQUguA1kLnvCFyuNz+IYtnwzF hipJuA+qNLWGpyLZ4Own6pLmY6Qjf29bmGOk4GMiJSFND6WJ2Lp+2Hzrb du8QQHDgrLNOLmXFlqkw9E4rfjsrDgFkatB0CbXAD5xhX1nOIg+/DZrKj lpanpDm7o/mYu6BR/UkdLZdXP2l8drVdO3O6cOJ3QwsTdGh/h28d4LGGM KU+4s09qoV27bKVJzKTUuSBXTeB1wswl/YlJS0VgXqqu5RBA7u3ybR0o1 Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561340" IronPort-SDR: DZ8Vy+89NIaoqgAiifVmwSA3R14x2xJNQLZpmLOLkBmvhvZ6DJ5ZxjEy87REb8Uyo68Vwx2VdR rZZL+wWTrFKLCDWQSrqF11+uIke1YZDILVdrPTNc8wHZ7KdLGtj84ufeIChzYXjPfVwgOf+CfE mXPRw/1DIJ+3xrExlyZ0xGLnQzUJtHCKXfVfLazUvGswjAYuW+OZBvAs0AYDuSYC/E19cYRgH+ GF+PFgrYK8l4wA3O/T/2GxnsAbbq0UEujiK8bDtdSEPPQe6lMMu1JEz4euxnNyjvOE70op3DMt lLw= IronPort-SDR: XmHuAM+YVVMNq4V8SYgYXvv1oSASxjPqos9cNWIuagJHMAFgywHJJS3U0GyZbG71GqI7AD2oHL G0uX6stbYI1ceNgJhL5LpCOtIv3Y3pQJXU+Wvc3c18wYIirNBbbfFCbpxir2P+bHlXIJ45cyUl 6q/mZ9liKEAm4a6k7baA8EcYCP7flIoY8wOLHp6F5Qz/mx20QL/RW+btJH2powtoedP6IX1T6a BJvfrTkky5GrcavYBgjOZGklg9DbZ7h8sc0NLnydkz3nybiVR1YPaxU1AV0UXfi8lCqwhjAxVv eqg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662462; x=1674254463; bh=KOmkdsa G2L/1f6aUZirO4FA9LnT3y2PXMdUmb+q6hDk=; b=dzVDggCJp99xMF57iNPHmZ2 kFeMKGqLTWmypXoq2zMaSEvMr+3Jjrn+HLmZ6tAjBrzkfsFaKc22JvLTb/e7e9jy zwJrE+jWCrjjLCfI9iADRTz7Dp8BpUJNFiw7+dnvgl0JTA49hBBO11fhC1Gcd4z9 GvAdhsr9ZojVKZ68I84DlN/qBdRN8O5RRoZdIqSQda3lmptfRGvjixM3U4hnwAW4 VQl1lkgc9eJG5otiuhUd3QXwjW1FeRSYjx1ZLrTCFYa80rLxI1VrZpZ09AXZQecR jrn3De0PgzzmkD7vWXKJT7fJwrEgl5lpT11n+QfyGPBoGMDDkygxxqmKm5BCzqQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9trot?= , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 16/45] hw/intc: sifive_plic: Renumber the S irqs for numa support Date: Thu, 22 Dec 2022 08:39:53 +1000 Message-Id: <20221221224022.425831-17-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663072105100003 Content-Type: text/plain; charset="utf-8" From: Fr=C3=A9d=C3=A9ric P=C3=A9trot Commit 40244040a7a changed the way the S irqs are numbered. This breaks when using numa configuration, e.g.: ./qemu-system-riscv64 -nographic -machine virt,dumpdtb=3Dnuma-tree.dtb \ -m 2G -smp cpus=3D16 \ -object memory-backend-ram,id=3Dmem0,size=3D512M \ -object memory-backend-ram,id=3Dmem1,size=3D512M \ -object memory-backend-ram,id=3Dmem2,size=3D512M \ -object memory-backend-ram,id=3Dmem3,size=3D512M \ -numa node,cpus=3D0-3,memdev=3Dmem0,nodeid=3D0 \ -numa node,cpus=3D4-7,memdev=3Dmem1,nodeid=3D1 \ -numa node,cpus=3D8-11,memdev=3Dmem2,nodeid=3D2 \ -numa node,cpus=3D12-15,memdev=3Dmem3,nodeid=3D3 leads to: Unexpected error in object_property_find_err() at ../qom/object.c:1304: qemu-system-riscv64: Property 'riscv.sifive.plic.unnamed-gpio-out[8]' not found This patch makes the nubering of the S irqs identical to what it was before. Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Fr=C3=A9d=C3=A9ric P=C3=A9trot Message-Id: <20221114135122.1668703-1-frederic.petrot@univ-grenoble-alpes.f= r> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index c2dfacf028..b4949bef97 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -476,11 +476,11 @@ DeviceState *sifive_plic_create(hwaddr addr, char *ha= rt_config, CPUState *cpu =3D qemu_get_cpu(cpu_num); =20 if (plic->addr_config[i].mode =3D=3D PLICMode_M) { - qdev_connect_gpio_out(dev, num_harts - plic->hartid_base + cpu= _num, + qdev_connect_gpio_out(dev, cpu_num - hartid_base + num_harts, qdev_get_gpio_in(DEVICE(cpu), IRQ_M_EXT)= ); } if (plic->addr_config[i].mode =3D=3D PLICMode_S) { - qdev_connect_gpio_out(dev, cpu_num, + qdev_connect_gpio_out(dev, cpu_num - hartid_base, qdev_get_gpio_in(DEVICE(cpu), IRQ_S_EXT)= ); } } --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662667414105.89683894067252; Wed, 21 Dec 2022 14:44:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mN-0007xG-87; Wed, 21 Dec 2022 17:41:39 -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 1p87mJ-0007ql-Uq for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:35 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mI-0000bf-0l for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:35 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:05 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:34 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:05 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpM50lyfz1RvLy for ; Wed, 21 Dec 2022 14:41:05 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id HSkCmtEm0-Db for ; Wed, 21 Dec 2022 14:41:04 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpM319rnz1RvTr; Wed, 21 Dec 2022 14:41:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662493; x=1703198493; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=icpZO5Thn7rLQmM9zLyvo4epmOEtTo4HPzPsWRyUaiM=; b=MaIO02G8/eiyH3jbJ6DNpWsK+CvKhP2oiSVO8qGdAhb0Wa28HVpxuDHe RB+/lkqokXvkD55GrMFTr4fFG6j8Wl6ELH7zasKpCgy1Na+vuQ3QP1XnD aUNtIUkVE5VkuyUOU3m9+GThs5+xUmUQdU0ZRJNFSCb1tfWQVAH/J69yW EObkoUNEVn0Sd+g/tJZf22U60nT8tDtpOQ4+IA4PIo2PGToloRP2cW5Sw uk8wXFi9+sXhYB/kE6KsuxFAvfkZxUFtFBuiE8SqVOHUSBJr652RalonC SBP/qzLpiS9elwwp7AbJiLEGRfhN/bnzN+hlB+ocKkTD0WDCXV5gTUBqA A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561346" IronPort-SDR: nZIfk5uW0MQZH7Y/KwlPndKdJT5fWgLWtH/im5OjWXD/4PUPPwctPuc5qYZQV8X+3pqt9EjiFN 5bk48BuGcUD9V3y+as4wvj8B+7ChJcyq0bZf+8W8bHWGuUCHEjH7hYJgR0A1fz/WnNR+sAT3nS dWzVFYkX2+hPgYLnMUC/jq7/GEiReAHqYYPfVoQ/L+e9KrKFqL+VRAF/Z+e9ea65EIdT7Gp3E3 Jh5VgENTniLQ0E2l8DFasdkfZtFelsKLWMUlWtKPu+rVb86MuQgNBMqimH4tDiwTvgJ0cH2DHa lDA= IronPort-SDR: CiKQwP8OMweF7q7XhrcWhBoUzwyJIAZoXu7sDZ2WwQuWTo2DtMDfyNMPl6IPiLTuH+0YkjBaOW RBhN+RA1jSA1XXg5p3dIzXFgZtEeA5ztsJwt0/gaNbe0YT3U1ZOmlQYELdYLABX6RsINk+1MWs KUL64nkMA8PASjXGU3qmHiuQ7N/aIO8f63FbnJC0w92MYc4eylDS745BhEUR6F2ih/j2sQx/bc HcVBd+mCLS4faMmfvQ7KiGT5Kw7gBm/2RUZ1UY690jbVpHHBQiVOQ7jVQpKrga1R7kwEacZ259 mGM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662464; x=1674254465; bh=icpZO5Thn7rLQmM9zL yvo4epmOEtTo4HPzPsWRyUaiM=; b=CQOb1xPa0Iytu+YdDIBLk+2mCGljHgJe9Y KvVjcNs+egS2lX54jYT/ahPQPmKHeFDvAIzB9pycr8m/P9iR6kjLXgVG0iazDByY NfDyfczpUhz5yYMDuVDEFavvY4HDfnT1ulFnaplJXLneF80/6Not1TOUThP73q0o ruGHpBgJDvCyfHRbt372oFz1zxfm7x/YjxP5MRQIW38ehmQQC7JLSve2YMzPGHsX S/6TWInlcVY45YU7si/rr3vgkZGqJ0mpfSZHA6rwU/EOdrI01rtzFR8ZTuztaO/t +Jzd5MUL5VQIRonH0RzFUkbkLKOLFICMAmFcS5Qmie0jTGG+dhCA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Anup Patel , Alistair Francis Subject: [PULL v2 17/45] target/riscv: Typo fix in sstc() predicate Date: Thu, 22 Dec 2022 08:39:54 +1000 Message-Id: <20221221224022.425831-18-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662668242100001 Content-Type: text/plain; charset="utf-8" From: Anup Patel We should use "&&" instead of "&" when checking hcounteren.TM and henvcfg.STCE bits. Fixes: 3ec0fe18a31f ("target/riscv: Add vstimecmp suppor") Signed-off-by: Anup Patel Reviewed-by: Alistair Francis Message-Id: <20221108125703.1463577-2-apatel@ventanamicro.com> Signed-off-by: Alistair Francis --- target/riscv/csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 71236f2b5d..0db2c233e5 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -940,7 +940,7 @@ static RISCVException sstc(CPURISCVState *env, int csrn= o) } =20 if (riscv_cpu_virt_enabled(env)) { - if (!(get_field(env->hcounteren, COUNTEREN_TM) & + if (!(get_field(env->hcounteren, COUNTEREN_TM) && get_field(env->henvcfg, HENVCFG_STCE))) { return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663100265276.8467511551348; Wed, 21 Dec 2022 14:51:40 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mP-00081x-OB; Wed, 21 Dec 2022 17:41:41 -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 1p87mN-0007x4-2s for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:39 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mL-0000bQ-1P for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:38 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:07 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:36 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:08 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpM75dW6z1Rwrq for ; Wed, 21 Dec 2022 14:41:07 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id UncBDIP13Pso for ; Wed, 21 Dec 2022 14:41:07 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpM53Zj3z1RvLy; Wed, 21 Dec 2022 14:41:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662496; x=1703198496; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+M7+37H0131qu5DnZvJJSIbui8Sp1KNr5DG3bv1IxMw=; b=UZNI9yXdy0SpXYs6FPNVlEPdaxz8leyXz7k+rF/H+wEuJ4tyw2iwoTwg DD3hz3jR43Sa/U/C9DEKxkjehknCuTuwpzgx6ia7nMBtna5uMy9LL/dd+ CliVqqa5LlF8IPW3iUztZiHAEOsa/uLrZhQ8U2KmO2a/EG7qyuTc1zOSA f/qwF36cFZcgDvzcokMW9+PyLlhnad0tB8+M6d2hp9+lhe/n8YXiaZ8X8 V8qpzaiAbO6HxBj7ReTZaub63rzZ+LzspJ5j7ibkzZIqopEbVw8jNAZUI bqFIWrZdAAPvtvJfrsL1kAZrOO2cVWr7W0ofdUebS/ttDpXPlvFyK8x5z g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561351" IronPort-SDR: C5jSEV5YQeF8K7uoC14wgqKdOhnjD929j6xVojkzpV9mj7WsV2Fu2jrUa8pilzq/riaptwq9BW rPmIaU/IGRlVm9L0BP6wRrEtTm3ugJA28wajJWww6QvPd/IuiZgwEHeI2pM/Bonli0IWTaEZ3/ 9KFxo26yc7BURTvQ66c9LJswuyx3DHMPUdcVRIr1foCJak0rhWXriDD8D64xPSkrG5C4PXu9wm RttGclUUbpqLl3d1D+hV9u7tJ9JDcHHlQctRN1N9dvnkqrYO6sx8W2xYvo0RkX8PAWM2NXhNH8 ZdM= IronPort-SDR: BEL5qVSv1Li3yVqNJvd9Dgs8RPZQUODtGvVMXUrJinBnaP5bl9C9kZak7eSQZ3wWCYC2NkbH+s qakUwb10H0mzzmqqIaWrd6R5uYfIusLZYNgLTvghwj/izJ5B+Qv77gcX8ETcbMxhYRSf+M92Ae 6iMPyYzE5Dgw7X+hVmxwsJolEYdolmss6MjTf/c6/GSstxGL3u8D9MzI0gid26QC8f/YecraiD G+4ZRdiBoB/N/3TpYBoMbWykkAohV2Vbo6jFn5L7mnmTisJlYLD1gq5EBpEoh8cyUBwtyr6gXZ kwI= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662467; x=1674254468; bh=+M7+37H0131qu5DnZv JJSIbui8Sp1KNr5DG3bv1IxMw=; b=qsXCftEGEUWkJ1JaNS+pyPlQh/ptdDCJq0 wL12o0QVEMORL/vC6qfJXmgc42IMTV4DSK8Vk8Qq3WPzWPvBNOuLlLjHK+kAe8Id DcdGHbg3e/aO4oXD5iDtCPeNLQssEuKErjwi4jqghXArqpav0STGMr7HsJ78Auas 46TWR0g4sDFOySBqeojRjjcqScGMG/1sWadl9QYFwcosat0uOxqLEo5Z4HuwNDxC 1jpKyWod5osbJTeK3GUkRCGS1ggfEKQVszPgoH10Q46wDRTRcx9blPXvw/tPS3CF rCZ3oNrJ1MitdSqcqDo+222LapYP0MU7VdeNAyZaN/AbR2ELDwyg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Atish Patra , Alistair Francis Subject: [PULL v2 18/45] hw/riscv: virt: Remove the redundant ipi-id property Date: Thu, 22 Dec 2022 08:39:55 +1000 Message-Id: <20221221224022.425831-19-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663102103100003 Content-Type: text/plain; charset="utf-8" From: Atish Patra The imsic DT binding[1] has changed and no longer require an ipi-id. The latest IMSIC driver dynamically allocates ipi id if slow-ipi is not defined. Get rid of the unused dt property which may lead to confusion. [1] https://lore.kernel.org/lkml/20221111044207.1478350-5-apatel@ventanamic= ro.com/ Signed-off-by: Atish Patra Reviewed-by: Alistair Francis Message-Id: <20221122080529.1692533-1-atishp@rivosinc.com> Signed-off-by: Alistair Francis --- include/hw/riscv/virt.h | 1 - hw/riscv/virt.c | 4 ---- 2 files changed, 5 deletions(-) diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index be4ab8fe7f..62513e075c 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -93,7 +93,6 @@ enum { =20 #define VIRT_PLATFORM_BUS_NUM_IRQS 32 =20 -#define VIRT_IRQCHIP_IPI_MSI 1 #define VIRT_IRQCHIP_NUM_MSIS 255 #define VIRT_IRQCHIP_NUM_SOURCES VIRTIO_NDEV #define VIRT_IRQCHIP_NUM_PRIO_BITS 3 diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index a5bc7353b4..6cf9355b99 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -546,8 +546,6 @@ static void create_fdt_imsic(RISCVVirtState *s, const M= emMapEntry *memmap, riscv_socket_count(mc) * sizeof(uint32_t) * 4); qemu_fdt_setprop_cell(mc->fdt, imsic_name, "riscv,num-ids", VIRT_IRQCHIP_NUM_MSIS); - qemu_fdt_setprop_cells(mc->fdt, imsic_name, "riscv,ipi-id", - VIRT_IRQCHIP_IPI_MSI); if (riscv_socket_count(mc) > 1) { qemu_fdt_setprop_cell(mc->fdt, imsic_name, "riscv,hart-index-bits", imsic_num_bits(imsic_max_hart_per_socket)); @@ -597,8 +595,6 @@ static void create_fdt_imsic(RISCVVirtState *s, const M= emMapEntry *memmap, riscv_socket_count(mc) * sizeof(uint32_t) * 4); qemu_fdt_setprop_cell(mc->fdt, imsic_name, "riscv,num-ids", VIRT_IRQCHIP_NUM_MSIS); - qemu_fdt_setprop_cells(mc->fdt, imsic_name, "riscv,ipi-id", - VIRT_IRQCHIP_IPI_MSI); if (imsic_guest_bits) { qemu_fdt_setprop_cell(mc->fdt, imsic_name, "riscv,guest-index-bits= ", imsic_guest_bits); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663409997829.2145273032169; Wed, 21 Dec 2022 14:56:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mR-000868-JF; Wed, 21 Dec 2022 17:41:43 -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 1p87mN-0007xd-DU for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:39 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mL-0000Xf-G0 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:39 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:09 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:38 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:10 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpM91zfZz1RvLy for ; Wed, 21 Dec 2022 14:41:09 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id NrevDY_dKFCQ for ; Wed, 21 Dec 2022 14:41:08 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpM741FLz1RvTp; Wed, 21 Dec 2022 14:41:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662497; x=1703198497; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=X5pPuQ/7QbzlG3f/0UBJxpkHOFrd2/Xcw9qJolUpEC0=; b=YH5cKhMEUzCXC4nN1cePZ+WaFjsZiG2zTV9dZy+K42hD3FT3pJR9Z4B9 QNQOeQSQCHSnfO8tEUZBqlSRF9vUoJVBvyI2HhbqyQq9zt4mlPnX6qsnh fmik3iRde+CM7hjmvX+2+ipvq+NVf98Yp13yRFOii0ipWwpfjKEmkKMA6 KxpoEGjhSGmwRl0rrtBe6VjXAAOZ+1m5GPTNhDwrYtD3VCZCK+nKRl4OE c5dXX68iSH7ThvhhfW2E3w7DCOghxDNDDl2IXhZNyGRLdLkQ9wgxCgjPR 7RT3XM0W7p0xfTecIPIG7gKZzTb5lZd1+Jq+DZAdP9LcKdCZ7K6dUm5RF Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561355" IronPort-SDR: Qh1NanBN/idTI5plb8HkED4UGryZdRij+IpFdp6gnoyfVnNIoRRIovLljn7DKsRknhtvbeoVOn x33M+yfYySukxTNaNnHVc/hsWWNIZg+LF0/hV+xoGxgW25UoouU9YG45j21OVAevvqVO7pdZ+a rhP/FZ9Sb2ARZ/W4LLuqy5a84cg6LHV+WKlr/o5vQwafR4mdaRjmEGIgThKr7xOd1T/lYsD97U gYP7/2yJHO2808Ruh5MJoYRTRKS/miYrqjAK/Idis01l60Dd5Dhh4YN9mQmdn99hdyuJFCkWux SRA= IronPort-SDR: DYC5e/1fBfeZ/V+TQ1TSYiTbovnQxjB4TyxiVsXqJ4I347CZ60ZOsHs9rrId93xtQoCVLsVDP3 mI6Nb3win/eBHdmPscCWryPipZEIp0inTjNKdUYxj16jSO4Xpq7ludSRUakWHr9iuIHJZ7OWDR 65i9v/inhTAjmSdcwTpF06yzPnFrWN6SH4M5fSPQf3nUoUqR20sPXoUBeEroXvHD30DiXW7efa 3MfLg6c9ZiV2ehb9QxMldxddPuzDluVLeLY58Q5dybXkUBjnRTxfpAC+Hxv6114qi0He29Z6wP 8vA= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662468; x=1674254469; bh=X5pPuQ/7QbzlG3f/0U BJxpkHOFrd2/Xcw9qJolUpEC0=; b=Cip+ZIhDRtSNzcA15XGsuaOPq9YG1Bx+J+ arfOscxmnZT3kZemtWnFr2u1ooIkzsAOAAxdOgX4bVE6cGj6JhriUkwmdWnmkCXC hSdbvPDbZ5EjvEa/BBdL3MH4yHSktAeaDW2RwK11sjtybDYNJc/+j7gIJuG8pMcN 4IkD3Kt8S9FDm09RWBlVxkVTmzdcEzddY8vOrpNHSC5wT4+WyKLmo0noomlDZphP t0oiDDneBge0d6M+ToaWDtnoNkzUlYFQT3bckMG79Ea/a2j4otA0RqMcNb0ujG+8 URlFA0G6f9A1LP1JjjdBXiWTrF6XsVCbn1I6JkRwAulLiAxZhO3w== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Alistair Francis Subject: [PULL v2 19/45] target/riscv: support cache-related PMU events in virtual mode Date: Thu, 22 Dec 2022 08:39:56 +1000 Message-Id: <20221221224022.425831-20-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663411711100005 Content-Type: text/plain; charset="utf-8" From: Jim Shu let tlb_fill() function also increments PMU counter when it is from two-stage translation, so QEMU could also monitor these PMU events when CPU runs in VS/VU mode (like running guest OS). Signed-off-by: Jim Shu Reviewed-by: Alistair Francis Message-Id: <20221123090635.6574-1-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 427d4d4386..1ff6ab5746 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -1258,6 +1258,7 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, = int size, } } =20 + pmu_tlb_fill_incr_ctr(cpu, access_type); if (riscv_cpu_virt_enabled(env) || ((riscv_cpu_two_stage_lookup(mmu_idx) || two_stage_lookup) && access_type !=3D MMU_INST_FETCH)) { @@ -1321,7 +1322,6 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, = int size, } } } else { - pmu_tlb_fill_incr_ctr(cpu, access_type); /* Single stage lookup */ ret =3D get_physical_address(env, &pa, &prot, address, NULL, access_type, mmu_idx, true, false, fals= e); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662744384423.576960593064; Wed, 21 Dec 2022 14:45:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mY-0008NC-5D; Wed, 21 Dec 2022 17:41:50 -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 1p87mW-0008I6-0K for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:48 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mU-0000bf-8N for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:47 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:10 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:39 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:11 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMB62Pnz1RvLy for ; Wed, 21 Dec 2022 14:41:10 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id cMZ3jEi052Mb for ; Wed, 21 Dec 2022 14:41:10 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpM92Bk3z1Rwrq; Wed, 21 Dec 2022 14:41:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662505; x=1703198505; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=o8dl9X7n0QpbDK6OlU8v1kgM0gsCxofq6AuWFPs0GJo=; b=SeeMuvry/YMtARIT5j5eLMYzKBWaeSkwtUCpxDGql9V8Lvtd80h0CQgC pCjxx9ivh38dKbLFsL0dhe4jiC7l/S2ZNAEHOYeDIeReB/J+eIOZtVpJV gt7e+5/+5C6kax+oxcSoJbWclL9mwWagz+UP8dAgoSkupzxfkXVx58M0y hQt9mnCZ0NdR+woUS0GtMMr3bdlU5y2Q4Oy5cgYzwcqAunc1me4vEB/c3 Gwj0oh3VI/EJNlb82+i5nyUpSzjFkPxA2B5HE0idhZj+8lEZ8PbUxBv4V f8YYqfUavbqOBg4ir7+LvgupH9eK3vKJdq0E3fZvYJkQEvv9DWKloeNAk A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561359" IronPort-SDR: xBZV9oLqiiOkT8+4WksH4ywyM4DxsWIV/5KtP0PDDU2AkpodgdJ3BmVpXs/FZI52HCYYBiknex px3DTs84+dKrytkQTfMqkzWXE6TWkiywA9OYEXInsl9gr1nH+8e2E97knxRfhiJuSd97ZKu5OA hRk1fjeIvWIlEiWugJpeTsuUCX8/Ni3XArAdz84A3ywwlA/Pj2pJXEF9zcfFUVVxZm1zBiVVV/ amB7uorouMljGG6XVr2auZbG5eDe6MJQP9rlHIZ56nk1nVSMfcxcEuE1NIHbfOeayIxNojJBDM Dhc= IronPort-SDR: w41Dg3wU/z6FasqicUy8JZPnIqgodtFDB8fEhMGhaR+6pi9OiiZurmnDgo6GXsDDorkElCs2LS QQES1I02EaMclqgkw/6voUCug6lqBYU6EEb9jlacO997Otm5Ei03HOIuIkp1lW0bSJy53YsP/U 5xE5oEIB6wjElhiez3sjN6OCChntzEdVd02jEZjQeKM79hTBuchTEXfSMIge3+hfsA+in4HjGE DsH1BKWIRKxZ3xOx/5Ga611Veld2G4zFhmr166ImJyGf4aH7zLkAk8GtmB/ewFaaD0xWWNZQTp u04= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662470; x=1674254471; bh=o8dl9X7n0QpbDK6OlU 8v1kgM0gsCxofq6AuWFPs0GJo=; b=Uqe726wgOJP2rEp1lo3zqhGEoaU7ot5KFp NkncKSWFY8rz+h9A6miou/VULtWsJb0gxjYGdSRHgvhOylTOkSSZwycf+XnsgkQ4 YLvq//TrmuZHyD3VaZ0LREl+ZPVGK6ifwkEzAIx5IKaiyPVNw3bA1Pc/o5X1npJb 2HXTmKYEIsnzBktwONscZh0QRhgUzlsPUxR1tBtgmeqD5ewPIzPZZVVayC4W+Q8t wtiSFbjcKYaaXQ6dRhZXTgTcj4lxBysd8bm4mggv0DPu+PRHlDZuBobL+rbW/YiU USMTItvGXyhi21BG6/0/VOhZJJpQh2syj/kKhKdRPJC6Lm6+H+og== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 20/45] target/riscv: Add some comments for sstatus CSR in riscv_cpu_dump_state() Date: Thu, 22 Dec 2022 08:39:57 +1000 Message-Id: <20221221224022.425831-21-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662746536100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng sstatus register dump is currently missing in riscv_cpu_dump_state(). As sstatus is a copy of mstatus, which is described in the priv spec, it seems redundant to print the same information twice. Add some comments for this to let people know this is intentional. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221125050354.3166023-1-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 6fe176e483..b2c132e269 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -382,6 +382,10 @@ static void riscv_cpu_dump_state(CPUState *cs, FILE *f= , int flags) CSR_MHARTID, CSR_MSTATUS, CSR_MSTATUSH, + /* + * CSR_SSTATUS is intentionally omitted here as its value + * can be figured out by looking at CSR_MSTATUS + */ CSR_HSTATUS, CSR_VSSTATUS, CSR_MIP, --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663210369373.0939020970526; Wed, 21 Dec 2022 14:53:30 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mc-0000Au-UY; Wed, 21 Dec 2022 17:41:55 -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 1p87mZ-0008PJ-4j for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:51 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mX-0000bQ-Av for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:50 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:12 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:41 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:13 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMD4Z02z1RvTr for ; Wed, 21 Dec 2022 14:41:12 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id a4_tZulatHo3 for ; Wed, 21 Dec 2022 14:41:12 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMB6Zrfz1Rwt8; Wed, 21 Dec 2022 14:41:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662509; x=1703198509; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FIMAReO8fXe+YRY+QgOavq1HmVvfN04k2FyBaT0sflE=; b=OPIkz+am5ri61gG/ssVDyFw93d2587379vxR3x+5eFMFT5bNY2+2/iL7 QVerYTKB+XXsmqyeOvslccDR7CCGYubXMAedq15DDMiLTYI7Rm0XBn1et sPv3SsoD/8TgMDvxcEJxHy1IaJlgNlqHEAKcJ4j0ffJQbhKYNb3NgN+9H kcYlFpupmr/XdXegValH6OJAkwbmStqtGkJSoqFSOPVs3cjOPnELk5Uf8 l9AE8w7I/1UbTvqlYsmz7joKwRtCZbeGCRK1ousNuqbZ503xuhLhPAv16 RC+7OC2mOifbhyVxxh3o6f8nrKk/hns2UDFziF4+d/C45bsn1wR+Wgpn/ Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561364" IronPort-SDR: eeYZYTvJ+aOwNr60hoyza43Vox2VbHn6/fYpZjPBLRu9p+Wx3OQJyiK2Vz6jlrYqrrPDFDIrPd o3IZrsW0kWKWzZMJdEv5x0BUsBkiASffdnqbtkaml/YDUn7jWELCVEuYItXu0c62fQ95i3hbAd rnDvbMt4XNB5BE5aC1E5MXjkJOFHYecIKV4Ul1ZK+Vqlts9ENtLn4Y13j3LOIt4J+rx4JzSBB/ vU8LnYtTYArhxPLduPIxwRYLd6A8+nXfAxM9vqAzkpsbjfVUtQXarEytWt1Q7Xdr8OZEQW2tH4 shw= IronPort-SDR: 2hW8stgPIqcPMrACihyR1T+saxg3UPT6U+hoY+R1yzmJ3h7RQUf2iKphow/htiGTQDSsGEtq6g 0d0eBZYcF+KIJWUXqxKMXhyMmW0ze6FOmnTBiCzq7kJ1ZiKOVn7QUu+fU7L9xK+cL455YTpgyH w9FWX0tEA7LfAHpgHLTlFZhxK20evJ2+TUuho7dEHvRgzAz2EcoOQ4Nm0W9MfVtpvc4H38BqOg lyYLEBMakq4BzHarpKvONYMWLs07auzI9yz5hkZItOhbw07mCymmuWNFop++DZ4U53ApSaJQE3 7fI= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662472; x=1674254473; bh=FIMAReO8fXe+YRY+Qg Oavq1HmVvfN04k2FyBaT0sflE=; b=padYCk69N9rbo8sDmHkqqom0peDq9MtmHE iKdz+X93pCHBJzIc0phy8iz/VU8HEH996wWZpmN1lZgGG0CrT5Sbk4WfKD2Kc5vg nOIS+W8QIGnXb3q8HClvuvjkcVs9BG4if/8nqjQQ6Qrxjk7IMraIthlVTYmOLkid qvwaPAWtZMax4qmPFaS8+Mz8ewEHk1XGfntaZ7jRSeHniNDrjc5IL+SycuQdmHw6 w7nnxEG8VprGhEqRkCIWxu2xtdmubYiX6Dw8ampRiUnJFWET/YZKGwrN9vIWeU0v BEZB0XplcEVDeL/Nc0zpFFyXjALA3cadW5x374ra+WXhlTJU+mrQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Conor Dooley , Alistair Francis Subject: [PULL v2 21/45] hw/misc: pfsoc: add fabric clocks to ioscb Date: Thu, 22 Dec 2022 08:39:58 +1000 Message-Id: <20221221224022.425831-22-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663212575100003 Content-Type: text/plain; charset="utf-8" From: Conor Dooley On PolarFire SoC, some peripherals (eg the PCI root port) are clocked by "Clock Conditioning Circuitry" in the FPGA. The specific clock depends on the FPGA bitstream & can be locked to one particular {D,P}LL - in the Icicle Kit Reference Design v2022.09 or later this is/will be the case. Linux v6.1+ will have a driver for this peripheral and devicetrees that previously relied on "fixed-frequency" clock nodes have been switched over to clock-controller nodes. The IOSCB region is represented in QEMU, but the specific region of it that the CCCs occupy has not so v6.1-rcN kernels fail to boot in QEMU. Add the regions as unimplemented so that the status-quo in terms of boot is maintained. Acked-by: Alistair Francis Signed-off-by: Conor Dooley Message-Id: <20221117225518.4102575-2-conor@kernel.org> Signed-off-by: Alistair Francis --- include/hw/misc/mchp_pfsoc_ioscb.h | 1 + hw/misc/mchp_pfsoc_ioscb.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/include/hw/misc/mchp_pfsoc_ioscb.h b/include/hw/misc/mchp_pfso= c_ioscb.h index 9235523e33..687b213742 100644 --- a/include/hw/misc/mchp_pfsoc_ioscb.h +++ b/include/hw/misc/mchp_pfsoc_ioscb.h @@ -30,6 +30,7 @@ typedef struct MchpPfSoCIoscbState { MemoryRegion lane23; MemoryRegion ctrl; MemoryRegion cfg; + MemoryRegion ccc; MemoryRegion pll_mss; MemoryRegion cfm_mss; MemoryRegion pll_ddr; diff --git a/hw/misc/mchp_pfsoc_ioscb.c b/hw/misc/mchp_pfsoc_ioscb.c index f4fd55a0e5..f976e42f72 100644 --- a/hw/misc/mchp_pfsoc_ioscb.c +++ b/hw/misc/mchp_pfsoc_ioscb.c @@ -33,6 +33,7 @@ */ #define IOSCB_WHOLE_REG_SIZE 0x10000000 #define IOSCB_SUBMOD_REG_SIZE 0x1000 +#define IOSCB_CCC_REG_SIZE 0x2000000 =20 /* * There are many sub-modules in the IOSCB module. @@ -45,6 +46,7 @@ #define IOSCB_LANE23_BASE 0x06510000 #define IOSCB_CTRL_BASE 0x07020000 #define IOSCB_CFG_BASE 0x07080000 +#define IOSCB_CCC_BASE 0x08000000 #define IOSCB_PLL_MSS_BASE 0x0E001000 #define IOSCB_CFM_MSS_BASE 0x0E002000 #define IOSCB_PLL_DDR_BASE 0x0E010000 @@ -168,6 +170,10 @@ static void mchp_pfsoc_ioscb_realize(DeviceState *dev,= Error **errp) "mchp.pfsoc.ioscb.cfg", IOSCB_SUBMOD_REG_SIZE); memory_region_add_subregion(&s->container, IOSCB_CFG_BASE, &s->cfg); =20 + memory_region_init_io(&s->ccc, OBJECT(s), &mchp_pfsoc_dummy_ops, s, + "mchp.pfsoc.ioscb.ccc", IOSCB_CCC_REG_SIZE); + memory_region_add_subregion(&s->container, IOSCB_CCC_BASE, &s->ccc); + memory_region_init_io(&s->pll_mss, OBJECT(s), &mchp_pfsoc_pll_ops, s, "mchp.pfsoc.ioscb.pll_mss", IOSCB_SUBMOD_REG_SIZ= E); memory_region_add_subregion(&s->container, IOSCB_PLL_MSS_BASE, &s->pll= _mss); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663427875195.3432080072115; Wed, 21 Dec 2022 14:57:07 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87ma-0008Ti-R9; Wed, 21 Dec 2022 17:41:52 -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 1p87mZ-0008Qk-O7 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:51 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mX-0000Xf-N7 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:41:51 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:14 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:43 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:15 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMG5Jy1z1RvTp for ; Wed, 21 Dec 2022 14:41:14 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id iZ9ixqAC5JvD for ; Wed, 21 Dec 2022 14:41:13 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMD54Yjz1Rwrq; Wed, 21 Dec 2022 14:41:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662509; x=1703198509; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RobOMoHC8AMiNjPZ0P2MpRetfpGMHTgISeyeurg1D18=; b=ciEVtmW9ezP6wwP/QK0SdsuWtXjJMQCobo/pNY9L+PszsClI61rcYCjm dHjbukmTfXZLtV9uJcOlAxyHWWvnsejXu5RbRqMfU0eOR01jpOjLQd02I 1RZVPrY3imswnEmR12S7j7xPsbATn8rtHZa/UmKT4EEm0uEQS8goRTBMg 2gbFopEIJg2z9XqfNYGkWblVkifA4ij4upLDTHht8geXwi0mLwI9GwCZS eV6Jf6mYTNOlRv2SQ1NugDgIt/N8PytVX34UBeDsbW7LldVbjtu1dXXv7 F3iU4ej4X2vZJuo/zVQ+JBNY9KRlDreGkFSLtIh2C3ZNFHjH7cJ+oxAy8 Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561367" IronPort-SDR: jXPC2XJyuVpiTrgEasp1WfeRVCqt4YCESw0qV0pO7WbHju4VKJ3r6SkAdFJuLmMHWjY5+NHM86 lZkZp9xEtTae83/nKyCcfpLxamPbWx4kGDS8hApqkZQfz5jTlLMqnH2SSi7irAYkg6pHjuj+Sa rM1ai5v/B3jNDz4sSCJwP+x+Dr7suQ8uMsUd/o4vC/QA1uGopl4+G93beV22m1Jdf58/xP9SVI SCifeIJOc/30qhrHdtPurqPYXyJQavMuqnBR9HXYGObcY79MyrcAqOeSrvmHz6lf0RZAXWRv9a Rkc= IronPort-SDR: 7ajwp+p/01fun+5KZbmOnk1/LwTFx8P1Mt+h0JAuazSYRnPtlLmww4avwGGYcQGq0PnwrtJRSk D0FU57/jfywn/XP3+N1Yjud2TwhYKg/vFI7rw3fW66KsTV3JYL19M3Y4zD/zy03cIpsrtpvyxD KnVzD4He6u4U0Vfd9IbwTPKIezGLU9QRB5Nv1VdKSj540RGx4smotehVpBOpHYQMQmoHRRIsaW kIltpb2gDgmW0fT0uFVXX0vuunP6h3nOAVsFk9XTdIA1uwZkTqk0nuW8uL+F01d+tX5WmFSkgL 4pQ= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662473; x=1674254474; bh=RobOMoHC8AMiNjPZ0P 2MpRetfpGMHTgISeyeurg1D18=; b=G3TFUki67RcOkpsJPsWEC7Dzn4ZZ8MecHQ vIF7poJpb/cA7lkgS5qrqiPDKpUdUx5Py89Krr4b/QGB2VSzSJQQHNR9PnuATwnR IiVowkDtvyUh2/5iz2C7ll+oGC331HCX/jwymgWO0enXqdUigJgHBofBiSRP18RZ c1waG2Dww0g8XqiUBoGweyiBtJ61An/AsWzBwlRc0rilepxOImVfdZPdfdHd9zph v5qs5cOvm0V5LRTXDXlfRWhwvY+gnR4HOQFNekOTGXPucN5QH23Ix0ECo6JWfuHf S1kV7D3lulK8ruyesxxqZmIaVzdxd/q0BUHAHA2XR1/9y4XfAtCA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Conor Dooley , Alistair Francis Subject: [PULL v2 22/45] hw/riscv: pfsoc: add missing FICs as unimplemented Date: Thu, 22 Dec 2022 08:39:59 +1000 Message-Id: <20221221224022.425831-23-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663429851100003 Content-Type: text/plain; charset="utf-8" From: Conor Dooley The Fabric Interconnect Controllers provide interfaces between the FPGA fabric and the core complex. There are 5 FICs on PolarFire SoC, numbered 0 through 4. FIC2 is an AXI4 slave interface from the FPGA fabric and does not show up on the MSS memory map. FIC4 is dedicated to the User Crypto Processor and does not show up on the MSS memory map either. FIC 0, 1 & 3 do show up in the MSS memory map and neither FICs 0 or 1 are represented in QEMU, leading to load access violations while booting Linux for Icicle if PCIe is enabled as the root port is connected via either FIC 0 or 1. Acked-by: Alistair Francis Signed-off-by: Conor Dooley Message-Id: <20221117225518.4102575-3-conor@kernel.org> Signed-off-by: Alistair Francis --- include/hw/riscv/microchip_pfsoc.h | 2 + hw/riscv/microchip_pfsoc.c | 115 ++++++++++++++++------------- 2 files changed, 65 insertions(+), 52 deletions(-) diff --git a/include/hw/riscv/microchip_pfsoc.h b/include/hw/riscv/microchi= p_pfsoc.h index a757b240e0..7e7950dd36 100644 --- a/include/hw/riscv/microchip_pfsoc.h +++ b/include/hw/riscv/microchip_pfsoc.h @@ -121,6 +121,8 @@ enum { MICROCHIP_PFSOC_USB, MICROCHIP_PFSOC_QSPI_XIP, MICROCHIP_PFSOC_IOSCB, + MICROCHIP_PFSOC_FABRIC_FIC0, + MICROCHIP_PFSOC_FABRIC_FIC1, MICROCHIP_PFSOC_FABRIC_FIC3, MICROCHIP_PFSOC_DRAM_LO, MICROCHIP_PFSOC_DRAM_LO_ALIAS, diff --git a/hw/riscv/microchip_pfsoc.c b/hw/riscv/microchip_pfsoc.c index a821263d4f..2a24e3437a 100644 --- a/hw/riscv/microchip_pfsoc.c +++ b/hw/riscv/microchip_pfsoc.c @@ -86,58 +86,61 @@ * describes the complete IOSCB modules memory maps */ static const MemMapEntry microchip_pfsoc_memmap[] =3D { - [MICROCHIP_PFSOC_RSVD0] =3D { 0x0, 0x100 }, - [MICROCHIP_PFSOC_DEBUG] =3D { 0x100, 0xf00 }, - [MICROCHIP_PFSOC_E51_DTIM] =3D { 0x1000000, 0x2000 }, - [MICROCHIP_PFSOC_BUSERR_UNIT0] =3D { 0x1700000, 0x1000 }, - [MICROCHIP_PFSOC_BUSERR_UNIT1] =3D { 0x1701000, 0x1000 }, - [MICROCHIP_PFSOC_BUSERR_UNIT2] =3D { 0x1702000, 0x1000 }, - [MICROCHIP_PFSOC_BUSERR_UNIT3] =3D { 0x1703000, 0x1000 }, - [MICROCHIP_PFSOC_BUSERR_UNIT4] =3D { 0x1704000, 0x1000 }, - [MICROCHIP_PFSOC_CLINT] =3D { 0x2000000, 0x10000 }, - [MICROCHIP_PFSOC_L2CC] =3D { 0x2010000, 0x1000 }, - [MICROCHIP_PFSOC_DMA] =3D { 0x3000000, 0x100000 }, - [MICROCHIP_PFSOC_L2LIM] =3D { 0x8000000, 0x2000000 }, - [MICROCHIP_PFSOC_PLIC] =3D { 0xc000000, 0x4000000 }, - [MICROCHIP_PFSOC_MMUART0] =3D { 0x20000000, 0x1000 }, - [MICROCHIP_PFSOC_WDOG0] =3D { 0x20001000, 0x1000 }, - [MICROCHIP_PFSOC_SYSREG] =3D { 0x20002000, 0x2000 }, - [MICROCHIP_PFSOC_AXISW] =3D { 0x20004000, 0x1000 }, - [MICROCHIP_PFSOC_MPUCFG] =3D { 0x20005000, 0x1000 }, - [MICROCHIP_PFSOC_FMETER] =3D { 0x20006000, 0x1000 }, - [MICROCHIP_PFSOC_DDR_SGMII_PHY] =3D { 0x20007000, 0x1000 }, - [MICROCHIP_PFSOC_EMMC_SD] =3D { 0x20008000, 0x1000 }, - [MICROCHIP_PFSOC_DDR_CFG] =3D { 0x20080000, 0x40000 }, - [MICROCHIP_PFSOC_MMUART1] =3D { 0x20100000, 0x1000 }, - [MICROCHIP_PFSOC_MMUART2] =3D { 0x20102000, 0x1000 }, - [MICROCHIP_PFSOC_MMUART3] =3D { 0x20104000, 0x1000 }, - [MICROCHIP_PFSOC_MMUART4] =3D { 0x20106000, 0x1000 }, - [MICROCHIP_PFSOC_WDOG1] =3D { 0x20101000, 0x1000 }, - [MICROCHIP_PFSOC_WDOG2] =3D { 0x20103000, 0x1000 }, - [MICROCHIP_PFSOC_WDOG3] =3D { 0x20105000, 0x1000 }, - [MICROCHIP_PFSOC_WDOG4] =3D { 0x20106000, 0x1000 }, - [MICROCHIP_PFSOC_SPI0] =3D { 0x20108000, 0x1000 }, - [MICROCHIP_PFSOC_SPI1] =3D { 0x20109000, 0x1000 }, - [MICROCHIP_PFSOC_I2C0] =3D { 0x2010a000, 0x1000 }, - [MICROCHIP_PFSOC_I2C1] =3D { 0x2010b000, 0x1000 }, - [MICROCHIP_PFSOC_CAN0] =3D { 0x2010c000, 0x1000 }, - [MICROCHIP_PFSOC_CAN1] =3D { 0x2010d000, 0x1000 }, - [MICROCHIP_PFSOC_GEM0] =3D { 0x20110000, 0x2000 }, - [MICROCHIP_PFSOC_GEM1] =3D { 0x20112000, 0x2000 }, - [MICROCHIP_PFSOC_GPIO0] =3D { 0x20120000, 0x1000 }, - [MICROCHIP_PFSOC_GPIO1] =3D { 0x20121000, 0x1000 }, - [MICROCHIP_PFSOC_GPIO2] =3D { 0x20122000, 0x1000 }, - [MICROCHIP_PFSOC_RTC] =3D { 0x20124000, 0x1000 }, - [MICROCHIP_PFSOC_ENVM_CFG] =3D { 0x20200000, 0x1000 }, - [MICROCHIP_PFSOC_ENVM_DATA] =3D { 0x20220000, 0x20000 }, - [MICROCHIP_PFSOC_USB] =3D { 0x20201000, 0x1000 }, - [MICROCHIP_PFSOC_QSPI_XIP] =3D { 0x21000000, 0x1000000 }, - [MICROCHIP_PFSOC_IOSCB] =3D { 0x30000000, 0x10000000 }, - [MICROCHIP_PFSOC_FABRIC_FIC3] =3D { 0x40000000, 0x20000000 }, - [MICROCHIP_PFSOC_DRAM_LO] =3D { 0x80000000, 0x40000000 }, - [MICROCHIP_PFSOC_DRAM_LO_ALIAS] =3D { 0xc0000000, 0x40000000 }, - [MICROCHIP_PFSOC_DRAM_HI] =3D { 0x1000000000, 0x0 }, - [MICROCHIP_PFSOC_DRAM_HI_ALIAS] =3D { 0x1400000000, 0x0 }, + [MICROCHIP_PFSOC_RSVD0] =3D { 0x0, 0x100 }, + [MICROCHIP_PFSOC_DEBUG] =3D { 0x100, 0xf00 }, + [MICROCHIP_PFSOC_E51_DTIM] =3D { 0x1000000, 0x2000 }, + [MICROCHIP_PFSOC_BUSERR_UNIT0] =3D { 0x1700000, 0x1000 }, + [MICROCHIP_PFSOC_BUSERR_UNIT1] =3D { 0x1701000, 0x1000 }, + [MICROCHIP_PFSOC_BUSERR_UNIT2] =3D { 0x1702000, 0x1000 }, + [MICROCHIP_PFSOC_BUSERR_UNIT3] =3D { 0x1703000, 0x1000 }, + [MICROCHIP_PFSOC_BUSERR_UNIT4] =3D { 0x1704000, 0x1000 }, + [MICROCHIP_PFSOC_CLINT] =3D { 0x2000000, 0x10000 }, + [MICROCHIP_PFSOC_L2CC] =3D { 0x2010000, 0x1000 }, + [MICROCHIP_PFSOC_DMA] =3D { 0x3000000, 0x100000 }, + [MICROCHIP_PFSOC_L2LIM] =3D { 0x8000000, 0x2000000 }, + [MICROCHIP_PFSOC_PLIC] =3D { 0xc000000, 0x4000000 }, + [MICROCHIP_PFSOC_MMUART0] =3D { 0x20000000, 0x1000 }, + [MICROCHIP_PFSOC_WDOG0] =3D { 0x20001000, 0x1000 }, + [MICROCHIP_PFSOC_SYSREG] =3D { 0x20002000, 0x2000 }, + [MICROCHIP_PFSOC_AXISW] =3D { 0x20004000, 0x1000 }, + [MICROCHIP_PFSOC_MPUCFG] =3D { 0x20005000, 0x1000 }, + [MICROCHIP_PFSOC_FMETER] =3D { 0x20006000, 0x1000 }, + [MICROCHIP_PFSOC_DDR_SGMII_PHY] =3D { 0x20007000, 0x1000 }, + [MICROCHIP_PFSOC_EMMC_SD] =3D { 0x20008000, 0x1000 }, + [MICROCHIP_PFSOC_DDR_CFG] =3D { 0x20080000, 0x40000 }, + [MICROCHIP_PFSOC_MMUART1] =3D { 0x20100000, 0x1000 }, + [MICROCHIP_PFSOC_MMUART2] =3D { 0x20102000, 0x1000 }, + [MICROCHIP_PFSOC_MMUART3] =3D { 0x20104000, 0x1000 }, + [MICROCHIP_PFSOC_MMUART4] =3D { 0x20106000, 0x1000 }, + [MICROCHIP_PFSOC_WDOG1] =3D { 0x20101000, 0x1000 }, + [MICROCHIP_PFSOC_WDOG2] =3D { 0x20103000, 0x1000 }, + [MICROCHIP_PFSOC_WDOG3] =3D { 0x20105000, 0x1000 }, + [MICROCHIP_PFSOC_WDOG4] =3D { 0x20106000, 0x1000 }, + [MICROCHIP_PFSOC_SPI0] =3D { 0x20108000, 0x1000 }, + [MICROCHIP_PFSOC_SPI1] =3D { 0x20109000, 0x1000 }, + [MICROCHIP_PFSOC_I2C0] =3D { 0x2010a000, 0x1000 }, + [MICROCHIP_PFSOC_I2C1] =3D { 0x2010b000, 0x1000 }, + [MICROCHIP_PFSOC_CAN0] =3D { 0x2010c000, 0x1000 }, + [MICROCHIP_PFSOC_CAN1] =3D { 0x2010d000, 0x1000 }, + [MICROCHIP_PFSOC_GEM0] =3D { 0x20110000, 0x2000 }, + [MICROCHIP_PFSOC_GEM1] =3D { 0x20112000, 0x2000 }, + [MICROCHIP_PFSOC_GPIO0] =3D { 0x20120000, 0x1000 }, + [MICROCHIP_PFSOC_GPIO1] =3D { 0x20121000, 0x1000 }, + [MICROCHIP_PFSOC_GPIO2] =3D { 0x20122000, 0x1000 }, + [MICROCHIP_PFSOC_RTC] =3D { 0x20124000, 0x1000 }, + [MICROCHIP_PFSOC_ENVM_CFG] =3D { 0x20200000, 0x1000 }, + [MICROCHIP_PFSOC_ENVM_DATA] =3D { 0x20220000, 0x20000 }, + [MICROCHIP_PFSOC_USB] =3D { 0x20201000, 0x1000 }, + [MICROCHIP_PFSOC_QSPI_XIP] =3D { 0x21000000, 0x1000000 }, + [MICROCHIP_PFSOC_IOSCB] =3D { 0x30000000, 0x10000000 }, + [MICROCHIP_PFSOC_FABRIC_FIC0] =3D { 0x2000000000, 0x1000000000 }, + [MICROCHIP_PFSOC_FABRIC_FIC1] =3D { 0x3000000000, 0x1000000000 }, + [MICROCHIP_PFSOC_FABRIC_FIC3] =3D { 0x40000000, 0x20000000 }, + [MICROCHIP_PFSOC_DRAM_LO] =3D { 0x80000000, 0x40000000 }, + [MICROCHIP_PFSOC_DRAM_LO_ALIAS] =3D { 0xc0000000, 0x40000000 }, + [MICROCHIP_PFSOC_DRAM_HI] =3D { 0x1000000000, 0x0 }, + [MICROCHIP_PFSOC_DRAM_HI_ALIAS] =3D { 0x1400000000, 0x0 }, + }; =20 static void microchip_pfsoc_soc_instance_init(Object *obj) @@ -461,6 +464,14 @@ static void microchip_pfsoc_soc_realize(DeviceState *d= ev, Error **errp) create_unimplemented_device("microchip.pfsoc.fabricfic3", memmap[MICROCHIP_PFSOC_FABRIC_FIC3].base, memmap[MICROCHIP_PFSOC_FABRIC_FIC3].size); + /* FPGA Fabric */ + create_unimplemented_device("microchip.pfsoc.fabricfic0", + memmap[MICROCHIP_PFSOC_FABRIC_FIC0].base, + memmap[MICROCHIP_PFSOC_FABRIC_FIC0].size); + /* FPGA Fabric */ + create_unimplemented_device("microchip.pfsoc.fabricfic1", + memmap[MICROCHIP_PFSOC_FABRIC_FIC1].base, + memmap[MICROCHIP_PFSOC_FABRIC_FIC1].size); =20 /* QSPI Flash */ memory_region_init_rom(qspi_xip_mem, OBJECT(dev), --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662748072842.4301455851073; Wed, 21 Dec 2022 14:45:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mk-0000a2-K8; Wed, 21 Dec 2022 17:42:02 -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 1p87mi-0000Ua-Ne for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:00 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mg-0000bf-Dk for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:00 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:16 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:45 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:17 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMJ4SvLz1RvTr for ; Wed, 21 Dec 2022 14:41:16 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id eMzTujcPxxK8 for ; Wed, 21 Dec 2022 14:41:15 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMG3zzkz1RvLy; Wed, 21 Dec 2022 14:41:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662518; x=1703198518; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QjIke9qrZ9cvn5GeMe573On+qIo4TLWOFmWcJlPWex8=; b=ZrVoK1uat8ENXRdi+7yA3T1ZHqeas/gZALPokT3hWtGJ3NrMToQfWBUS Ie9l1e0oPYhbHif31P23vFqTEJSaImoFV6MO440qkOTTBDYXxof6hyNab jdr1Vu4UHbHNtOTeqMxEniDxmgI9m3xc0hXf9+Cs14Pr13+2AX6GbK2Bz yCZ6Oe14a24JsTJFCKAzUpHBts+Kzv8JCSBFbl/iAkossLe1Ez+7WaOPG MqHpTtJvcQOonblwMyFC2J5Avhj7wQ3PgYqeTnJywxX4+83I8LmWg+2eg V2TLcfUrceP7Py1bD8JEjg1W9dPFVdeGsBuGWfiCn7JOOjGLMel1xNme0 g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561371" IronPort-SDR: pu8v/MdF8SVYcg1ELaqNycz1oSYUfKSq65ZUJy60XRHhOGaK9csLv0ShT61Nfst4A/o15W1Btq rqrhcC1R3Bdw8fZnqDpBJeLCp/WXAVXbmyM5I7FGlkDwm7YP4uJXDl4OprcX5cN/v1APfRmzo6 xBsYctd7BT6twWNwNUME2I2RsuIpT32y3VagvJiERg0rBpjDG6Za32QcWwjdbceOYpDiP6FbAe TgLpzPT/WKpeK86XSW1JjQUZWlvw3b3cPuSkYzOTT8b//bmNob19EAip7wSdlJQk3oZXvVyso6 Y8E= IronPort-SDR: 8uKrtH4K0Gs7cdl6jAeZqri6XBRLeW/hrW6vA4m/Ha5n6ECpukfPncegJJa7mABd0QQFa6iaqw tnu7hJRW6ZwXZdLl2wdtlKZBctRm+al6QYVumm1zUfM3vXG/Jf56iVpCgmFAWWMsC0XkYwa8TS thTInSzjpwTqrS4ObQzeOR4OMe+qOZaxZuqMqPg8ZEzoqqObH3WvcBs9I66XclUnJd3rwnf0Yu cRuU6YznIRbX52oNJSHbTFebZSzZT9ywAlKsuM88M1C4znaaA+IJS0FhRY22DRtI7vLuivoFPB 8uM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662475; x=1674254476; bh=QjIke9q rZ9cvn5GeMe573On+qIo4TLWOFmWcJlPWex8=; b=f+VBMFauvhKjHnVn4FIZvbP fttb2Zkw1HHSEydQx5ahQtHJs5gNqyJQ23b+Qz30jZNZ0UuuM605FcGh4IoBCY6q 598MXMyAeFhdBuOadWmr82/3CTSoGegcShu6lzh7sn7tWhZSsFhQuJ+Pk8x1IWDW 54O5aWXnk1lf07KnGv2zVmEZa/4qLOXWaKEHPH/TjNL5n1tMDTZlHdn3f0Fbe/ti uUdk/2FO8znjle/yzyBOz3AWe9LFBqiX8VA08sSjX1U9tXZGsRKJm0KwImYDWFuy aw1doABFkvnluWzKUgnAmoDy/iVo91VTij4kUY6Nohe9yuf8Jul2WkJs5JH77Eg= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Conor Dooley , Alistair Francis Subject: [PULL v2 23/45] hw/{misc, riscv}: pfsoc: add system controller as unimplemented Date: Thu, 22 Dec 2022 08:40:00 +1000 Message-Id: <20221221224022.425831-24-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662748600100001 Content-Type: text/plain; charset="utf-8" From: Conor Dooley The system controller on PolarFire SoC is access via a mailbox. The control registers for this mailbox lie in the "IOSCB" region & the interrupt is cleared via write to the "SYSREG" region. It also has a QSPI controller, usually connected to a flash chip, that is used for storing FPGA bitstreams and used for In-Application Programming (IAP). Linux has an implementation of the system controller, through which the hwrng is accessed, leading to load/store access faults. Add the QSPI as unimplemented and a very basic (effectively unimplemented) version of the system controller's mailbox. Rather than purely marking the regions as unimplemented, service the mailbox requests by reporting failures and raising the interrupt so a guest can better handle the lack of support. Signed-off-by: Conor Dooley Acked-by: Alistair Francis Message-Id: <20221117225518.4102575-4-conor@kernel.org> Signed-off-by: Alistair Francis --- include/hw/misc/mchp_pfsoc_ioscb.h | 3 ++ include/hw/misc/mchp_pfsoc_sysreg.h | 1 + include/hw/riscv/microchip_pfsoc.h | 1 + hw/misc/mchp_pfsoc_ioscb.c | 72 ++++++++++++++++++++++++++++- hw/misc/mchp_pfsoc_sysreg.c | 18 ++++++-- hw/riscv/microchip_pfsoc.c | 6 +++ 6 files changed, 95 insertions(+), 6 deletions(-) diff --git a/include/hw/misc/mchp_pfsoc_ioscb.h b/include/hw/misc/mchp_pfso= c_ioscb.h index 687b213742..a1104862c8 100644 --- a/include/hw/misc/mchp_pfsoc_ioscb.h +++ b/include/hw/misc/mchp_pfsoc_ioscb.h @@ -29,6 +29,8 @@ typedef struct MchpPfSoCIoscbState { MemoryRegion lane01; MemoryRegion lane23; MemoryRegion ctrl; + MemoryRegion qspixip; + MemoryRegion mailbox; MemoryRegion cfg; MemoryRegion ccc; MemoryRegion pll_mss; @@ -41,6 +43,7 @@ typedef struct MchpPfSoCIoscbState { MemoryRegion cfm_sgmii; MemoryRegion bc_sgmii; MemoryRegion io_calib_sgmii; + qemu_irq irq; } MchpPfSoCIoscbState; =20 #define TYPE_MCHP_PFSOC_IOSCB "mchp.pfsoc.ioscb" diff --git a/include/hw/misc/mchp_pfsoc_sysreg.h b/include/hw/misc/mchp_pfs= oc_sysreg.h index 546ba68f6a..3cebe40ea9 100644 --- a/include/hw/misc/mchp_pfsoc_sysreg.h +++ b/include/hw/misc/mchp_pfsoc_sysreg.h @@ -28,6 +28,7 @@ typedef struct MchpPfSoCSysregState { SysBusDevice parent; MemoryRegion sysreg; + qemu_irq irq; } MchpPfSoCSysregState; =20 #define TYPE_MCHP_PFSOC_SYSREG "mchp.pfsoc.sysreg" diff --git a/include/hw/riscv/microchip_pfsoc.h b/include/hw/riscv/microchi= p_pfsoc.h index 7e7950dd36..69a686b54a 100644 --- a/include/hw/riscv/microchip_pfsoc.h +++ b/include/hw/riscv/microchip_pfsoc.h @@ -147,6 +147,7 @@ enum { MICROCHIP_PFSOC_MMUART2_IRQ =3D 92, MICROCHIP_PFSOC_MMUART3_IRQ =3D 93, MICROCHIP_PFSOC_MMUART4_IRQ =3D 94, + MICROCHIP_PFSOC_MAILBOX_IRQ =3D 96, }; =20 #define MICROCHIP_PFSOC_MANAGEMENT_CPU_COUNT 1 diff --git a/hw/misc/mchp_pfsoc_ioscb.c b/hw/misc/mchp_pfsoc_ioscb.c index f976e42f72..a71d134295 100644 --- a/hw/misc/mchp_pfsoc_ioscb.c +++ b/hw/misc/mchp_pfsoc_ioscb.c @@ -24,6 +24,7 @@ #include "qemu/bitops.h" #include "qemu/log.h" #include "qapi/error.h" +#include "hw/irq.h" #include "hw/sysbus.h" #include "hw/misc/mchp_pfsoc_ioscb.h" =20 @@ -34,6 +35,9 @@ #define IOSCB_WHOLE_REG_SIZE 0x10000000 #define IOSCB_SUBMOD_REG_SIZE 0x1000 #define IOSCB_CCC_REG_SIZE 0x2000000 +#define IOSCB_CTRL_REG_SIZE 0x800 +#define IOSCB_QSPIXIP_REG_SIZE 0x200 + =20 /* * There are many sub-modules in the IOSCB module. @@ -45,6 +49,8 @@ #define IOSCB_LANE01_BASE 0x06500000 #define IOSCB_LANE23_BASE 0x06510000 #define IOSCB_CTRL_BASE 0x07020000 +#define IOSCB_QSPIXIP_BASE 0x07020100 +#define IOSCB_MAILBOX_BASE 0x07020800 #define IOSCB_CFG_BASE 0x07080000 #define IOSCB_CCC_BASE 0x08000000 #define IOSCB_PLL_MSS_BASE 0x0E001000 @@ -143,6 +149,58 @@ static const MemoryRegionOps mchp_pfsoc_io_calib_ddr_o= ps =3D { .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 +#define SERVICES_CR 0x50 +#define SERVICES_SR 0x54 +#define SERVICES_STATUS_SHIFT 16 + +static uint64_t mchp_pfsoc_ctrl_read(void *opaque, hwaddr offset, + unsigned size) +{ + uint32_t val =3D 0; + + switch (offset) { + case SERVICES_SR: + /* + * Although some services have no error codes, most do. All servic= es + * that do implement errors, begin their error codes at 1. Treat a= ll + * service requests as failures & return 1. + * See the "PolarFire=C2=AE FPGA and PolarFire SoC FPGA System Ser= vices" + * user guide for more information on service error codes. + */ + val =3D 1u << SERVICES_STATUS_SHIFT; + break; + default: + qemu_log_mask(LOG_UNIMP, "%s: unimplemented device read " + "(size %d, offset 0x%" HWADDR_PRIx ")\n", + __func__, size, offset); + } + + return val; +} + +static void mchp_pfsoc_ctrl_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ + MchpPfSoCIoscbState *s =3D opaque; + + switch (offset) { + case SERVICES_CR: + qemu_irq_raise(s->irq); + break; + default: + qemu_log_mask(LOG_UNIMP, "%s: unimplemented device write " + "(size %d, value 0x%" PRIx64 + ", offset 0x%" HWADDR_PRIx ")\n", + __func__, size, value, offset); + } +} + +static const MemoryRegionOps mchp_pfsoc_ctrl_ops =3D { + .read =3D mchp_pfsoc_ctrl_read, + .write =3D mchp_pfsoc_ctrl_write, + .endianness =3D DEVICE_LITTLE_ENDIAN, +}; + static void mchp_pfsoc_ioscb_realize(DeviceState *dev, Error **errp) { MchpPfSoCIoscbState *s =3D MCHP_PFSOC_IOSCB(dev); @@ -162,10 +220,18 @@ static void mchp_pfsoc_ioscb_realize(DeviceState *dev= , Error **errp) "mchp.pfsoc.ioscb.lane23", IOSCB_SUBMOD_REG_SIZE= ); memory_region_add_subregion(&s->container, IOSCB_LANE23_BASE, &s->lane= 23); =20 - memory_region_init_io(&s->ctrl, OBJECT(s), &mchp_pfsoc_dummy_ops, s, - "mchp.pfsoc.ioscb.ctrl", IOSCB_SUBMOD_REG_SIZE); + memory_region_init_io(&s->ctrl, OBJECT(s), &mchp_pfsoc_ctrl_ops, s, + "mchp.pfsoc.ioscb.ctrl", IOSCB_CTRL_REG_SIZE); memory_region_add_subregion(&s->container, IOSCB_CTRL_BASE, &s->ctrl); =20 + memory_region_init_io(&s->qspixip, OBJECT(s), &mchp_pfsoc_dummy_ops, s, + "mchp.pfsoc.ioscb.qspixip", IOSCB_QSPIXIP_REG_SI= ZE); + memory_region_add_subregion(&s->container, IOSCB_QSPIXIP_BASE, &s->qsp= ixip); + + memory_region_init_io(&s->mailbox, OBJECT(s), &mchp_pfsoc_dummy_ops, s, + "mchp.pfsoc.ioscb.mailbox", IOSCB_SUBMOD_REG_SIZ= E); + memory_region_add_subregion(&s->container, IOSCB_MAILBOX_BASE, &s->mai= lbox); + memory_region_init_io(&s->cfg, OBJECT(s), &mchp_pfsoc_dummy_ops, s, "mchp.pfsoc.ioscb.cfg", IOSCB_SUBMOD_REG_SIZE); memory_region_add_subregion(&s->container, IOSCB_CFG_BASE, &s->cfg); @@ -222,6 +288,8 @@ static void mchp_pfsoc_ioscb_realize(DeviceState *dev, = Error **errp) IOSCB_SUBMOD_REG_SIZE); memory_region_add_subregion(&s->container, IOSCB_IO_CALIB_SGMII_BASE, &s->io_calib_sgmii); + + sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq); } =20 static void mchp_pfsoc_ioscb_class_init(ObjectClass *klass, void *data) diff --git a/hw/misc/mchp_pfsoc_sysreg.c b/hw/misc/mchp_pfsoc_sysreg.c index 89571eded5..7876fe0c5b 100644 --- a/hw/misc/mchp_pfsoc_sysreg.c +++ b/hw/misc/mchp_pfsoc_sysreg.c @@ -24,10 +24,12 @@ #include "qemu/bitops.h" #include "qemu/log.h" #include "qapi/error.h" +#include "hw/irq.h" #include "hw/sysbus.h" #include "hw/misc/mchp_pfsoc_sysreg.h" =20 #define ENVM_CR 0xb8 +#define MESSAGE_INT 0x118c =20 static uint64_t mchp_pfsoc_sysreg_read(void *opaque, hwaddr offset, unsigned size) @@ -52,10 +54,17 @@ static uint64_t mchp_pfsoc_sysreg_read(void *opaque, hw= addr offset, static void mchp_pfsoc_sysreg_write(void *opaque, hwaddr offset, uint64_t value, unsigned size) { - qemu_log_mask(LOG_UNIMP, "%s: unimplemented device write " - "(size %d, value 0x%" PRIx64 - ", offset 0x%" HWADDR_PRIx ")\n", - __func__, size, value, offset); + MchpPfSoCSysregState *s =3D opaque; + switch (offset) { + case MESSAGE_INT: + qemu_irq_lower(s->irq); + break; + default: + qemu_log_mask(LOG_UNIMP, "%s: unimplemented device write " + "(size %d, value 0x%" PRIx64 + ", offset 0x%" HWADDR_PRIx ")\n", + __func__, size, value, offset); + } } =20 static const MemoryRegionOps mchp_pfsoc_sysreg_ops =3D { @@ -73,6 +82,7 @@ static void mchp_pfsoc_sysreg_realize(DeviceState *dev, E= rror **errp) "mchp.pfsoc.sysreg", MCHP_PFSOC_SYSREG_REG_SIZE); sysbus_init_mmio(SYS_BUS_DEVICE(dev), &s->sysreg); + sysbus_init_irq(SYS_BUS_DEVICE(dev), &s->irq); } =20 static void mchp_pfsoc_sysreg_class_init(ObjectClass *klass, void *data) diff --git a/hw/riscv/microchip_pfsoc.c b/hw/riscv/microchip_pfsoc.c index 2a24e3437a..b10321b564 100644 --- a/hw/riscv/microchip_pfsoc.c +++ b/hw/riscv/microchip_pfsoc.c @@ -306,6 +306,9 @@ static void microchip_pfsoc_soc_realize(DeviceState *de= v, Error **errp) sysbus_realize(SYS_BUS_DEVICE(&s->sysreg), errp); sysbus_mmio_map(SYS_BUS_DEVICE(&s->sysreg), 0, memmap[MICROCHIP_PFSOC_SYSREG].base); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->sysreg), 0, + qdev_get_gpio_in(DEVICE(s->plic), + MICROCHIP_PFSOC_MAILBOX_IRQ)); =20 /* AXISW */ create_unimplemented_device("microchip.pfsoc.axisw", @@ -459,6 +462,9 @@ static void microchip_pfsoc_soc_realize(DeviceState *de= v, Error **errp) sysbus_realize(SYS_BUS_DEVICE(&s->ioscb), errp); sysbus_mmio_map(SYS_BUS_DEVICE(&s->ioscb), 0, memmap[MICROCHIP_PFSOC_IOSCB].base); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->ioscb), 0, + qdev_get_gpio_in(DEVICE(s->plic), + MICROCHIP_PFSOC_MAILBOX_IRQ)); =20 /* FPGA Fabric */ create_unimplemented_device("microchip.pfsoc.fabricfic3", --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662628970437.8245299891506; Wed, 21 Dec 2022 14:43:48 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mm-0000gz-PE; Wed, 21 Dec 2022 17:42:04 -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 1p87ml-0000bR-4I for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:03 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mj-0000bQ-Fu for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:02 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:18 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:47 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:18 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpML2XFGz1Rwrq for ; Wed, 21 Dec 2022 14:41:18 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4kCwpIL25Lnx for ; Wed, 21 Dec 2022 14:41:17 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMJ31z1z1RvTp; Wed, 21 Dec 2022 14:41:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662521; x=1703198521; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=lkr40dqOmoRlHb4uKWd/0UnkaNvhnwtWV+0/s7TpnTE=; b=C8RPgGv2lp27L02z1k+8rAc3f3DLARpjLUz7GmMgSTMQb+RrhPoZGv7p v+sOHg6hWHy6NsuSG17wGkvBpwOibdpKyjEImL45sC3sckw8t12+/yuKY 5+N2yWIe2mdEvryVyREE3AbbA0BBG8rspGbjPfrGJJTiI38TFPokMKqS1 uQWv+NtK6LyDr1+SkiUetibI/LhUiNvAsFHVe9ljmhHYHsK3kl6VeH08g yUmPWVf9zNqbNAnsW+zFLOqZiDFmuHMLKgIMd7CuW3DuG5p6RWyo9X4/N NVaj2Nnv6UxkWxQXU7MJ921OyR3DTyo94T04r1Bsvwh55zA6wJ7jAsqhZ Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561375" IronPort-SDR: 9IprI3Y1JIUjA8+/yFv/klfMystyEUNeVyPLjpJNA4MzRbkz6boiduB08advrtYBo7b9myW42b MQh0mVoMJu45l8Ev5pe3r/XLblREHTVRAzfp6eYdr6muj6HU2QX38jZR+mOH8L6RmxkvB15rq1 ZAzW92UgFkM0RpJVBEbONqVxMNd4tyIgpE6Egy5trej6GMTlkVUiljgJBPv80oqaBScBBZWzCr FQVT8x5SRUTov6k7SIB/y5tfqMxicG14C2wpJ7h/3+WBfFFrIbek6iXr/Anu3znRE3DdEnaNBz Xhw= IronPort-SDR: 7y+uvs4N4RlFMnovzkYHKJLfFo45bluAa9Owr2LguG0AHdtoJwli0dzk+IvFqUVAOqoFF0aXZ8 22Ivg0XE4NfkpEszlM8Zv1rEOzruMa4g0Vf8xmXm+cLEnPNlXPjHuJvkzjZ/y3Ekra9rvfvKEK Ufkal7n2+e0DEzYw8/iPYTjuXgevgS7JRV+TMJp8HwSF5zkHyNBMNp6X8NUnWEOvdqWatzEWk8 wZqSwFMolKdgeqzavYJ+Y7eWAwIk44MmokzGAw8eRfHqSVGOVs862MJrHZU/T9n/PquN3N5zK3 7I4= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662477; x=1674254478; bh=lkr40dqOmoRlHb4uKW d/0UnkaNvhnwtWV+0/s7TpnTE=; b=lsxG9xXV9PTwHsAEyZUHh7blMa+aPZXDkM I4KtZmzKKXHtNVEJ/cOY4bDeQsO2G6GjES7X4K4BF9Ag4EUW14D9smnVx4Mvp94f i21tg1TOIsYf9uw2m6Ljqomy7x+Ug/nmRwje8qXjppRz7OpVfjFGPC5G3uyvFXdb 7ePAvt6y4u/uq+QxpJ550GUOuvp+LET63VD3yA45yu6ag9qVjr91l/AjdhYiKs3B +AnE02YO/ZldIgJaYnwkbd3HOjNE6n80yQQ6HokD2jr/2H1jxPg/sbN1IahQik5g jcZrl1gq5IbD3DyJtT4qDldd15gy8kwwvQvZupBlHFurZ5xmeFxA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Jim Shu , Bin Meng , Alistair Francis Subject: [PULL v2 24/45] hw/intc: sifive_plic: fix out-of-bound access of source_priority array Date: Thu, 22 Dec 2022 08:40:01 +1000 Message-Id: <20221221224022.425831-25-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662630059100001 Content-Type: text/plain; charset="utf-8" From: Jim Shu If the number of interrupt is not multiple of 32, PLIC will have out-of-bound access to source_priority array. Compute the number of interrupt in the last word to avoid this out-of-bound access of array. Signed-off-by: Jim Shu Reviewed-by: Bin Meng Message-Id: <20221127165753.30533-1-jim.shu@sifive.com> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index b4949bef97..0c7696520d 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -78,6 +78,7 @@ static uint32_t sifive_plic_claimed(SiFivePLICState *plic= , uint32_t addrid) uint32_t max_irq =3D 0; uint32_t max_prio =3D plic->target_priority[addrid]; int i, j; + int num_irq_in_word =3D 32; =20 for (i =3D 0; i < plic->bitfield_words; i++) { uint32_t pending_enabled_not_claimed =3D @@ -88,7 +89,16 @@ static uint32_t sifive_plic_claimed(SiFivePLICState *pli= c, uint32_t addrid) continue; } =20 - for (j =3D 0; j < 32; j++) { + if (i =3D=3D (plic->bitfield_words - 1)) { + /* + * If plic->num_sources is not multiple of 32, num-of-irq in l= ast + * word is not 32. Compute the num-of-irq of last word to avoid + * out-of-bound access of source_priority array. + */ + num_irq_in_word =3D plic->num_sources - ((plic->bitfield_words= - 1) << 5); + } + + for (j =3D 0; j < num_irq_in_word; j++) { int irq =3D (i << 5) + j; uint32_t prio =3D plic->source_priority[irq]; int enabled =3D pending_enabled_not_claimed & (1 << j); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16716633654584.763296988518732; Wed, 21 Dec 2022 14:56:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87mo-0000j5-Eb; Wed, 21 Dec 2022 17:42:06 -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 1p87mm-0000gc-Dx for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:04 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mk-0000Xf-1a for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:04 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:21 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:50 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:21 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMP1w9Wz1RvTp for ; Wed, 21 Dec 2022 14:41:21 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2rBFbCqcJm5C for ; Wed, 21 Dec 2022 14:41:20 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpML5t2qz1RvLy; Wed, 21 Dec 2022 14:41:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662521; x=1703198521; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CAdCSxJeKKq8tYmIBqs3LqQExUqaPNsJrRGHQLOgr7o=; b=fANgUzOGw/oJm+gPx/y5MhqgsXFy08HFl76Af+ef6t8y9uafeuRYK9Af cIMk9PKEgu/JOy9xQhmuQ/XiNAO51+7Y9ptd5w9hZ6z6vHdCjWMR3YN6t 2YLWDbbZGCfQvNl0Tz+cqYmbxj0kNY1fZRfHXTE47UfZDrgHKbl/zvTLL yA60nCnyw23giXt77qNClkazzDrpnh9FrzPrBuDPT48b0b8baq1cyV0Ae czlR6eeYH37QS5VVnt1ORjjPuvlitpL4TvueFppwWZ5/S6gDqn4R/1kjo KAl+xKOh4o7Kw4LZGexsqMhz5E3U0YGawuJBWZE+xA0EU8zF2+njlAW+P w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561381" IronPort-SDR: lDAIjVTCULF00aUWE7eQopV2DmSqpvFml6knrYYIuG0HiV7zBIxOBytzwuzB+rBZxgxQEimtsz 5qraN9hOAi9wh1kRMHcnGfnFWfhmdLWhlW7GA5UKKmJ1c2djM6id3yhl0D809BzIuMZhivASuT F/be9kxxQpDMOvs9Bi/M7yIS8tLId31RHqFCfaQrYgusQNTyH4dHosgCKMhPAa4hybwh7qqgEt R48x/GQUMtrmJIlK+Q8f/lRXygM7cHIvv4JZWjHul3EImGkJucHZkkfzAoNaBQ1xqb7Y/4H57k 5P4= IronPort-SDR: t0HO1NjFXcnc2UazOqYLpYy4ZZMWuN3wPsUXnplDU1WTYNMgt762Ui4rvwE4kO7fLs103Bhiiz iBlEp4jcC0oonMP8iu4H/LcDzakCpssZlonQGekDSlxa0BB7WtAOYM+lDH0IOOkavqVRE0jh5I oPHPsx14hXFyGF32vs9xW1G24+g8Ax2iNOg2dDkM9DHfDpAO9eizAZmeeeqjaFqhT2NBUlGkuY zpo7cPZ2rv5J9j2zt/NBA/mKdBjDJHAte+SBTbiniXnRlD69Xa4dZILYaKRhQlNKWUeSvWrk1N chE= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662480; x=1674254481; bh=CAdCSxJeKKq8tYmIBq s3LqQExUqaPNsJrRGHQLOgr7o=; b=NQtsQxIItQ4r2o9k8ZGqdjg+YnoFoIf+qu 2CDm2Q9+EVAYAHY7y0nriII6U5KXFPB2jnJjBt0G15k9hxvuXcAZUqWUV39BeGmf 1Rp8Adcj5lcC8F2zwzBaQp5li3noL/2YStyUN6eYEbGO85PwiS57sv2luB6FwHBi lRMpvPVK6R4cw6qLqHRrmT8x9TYj+NE9VolqieHGQKl/Kdbx0+YGYYH6veS6hv3q 97RjfaGaBDyy7wwATnv0bcY1x2LT7NGb3WQ/9Q0GoL0IoIsa4nkM0K6R2IyppCz7 Ic+PtdHfW7eV04UP2Ck3mR4Q8LFy3xm8NyWrTij9bNNymeuC2j+A== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 25/45] target/riscv: Fix mret exception cause when no pmp rule is configured Date: Thu, 22 Dec 2022 08:40:02 +1000 Message-Id: <20221221224022.425831-26-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663367269100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng The priv spec v1.12 says: If no PMP entry matches an M-mode access, the access succeeds. If no PMP entry matches an S-mode or U-mode access, but at least one PMP entry is implemented, the access fails. Failed accesses generate an instruction, load, or store access-fault exception. At present the exception cause is set to 'illegal instruction' but should have been 'instruction access fault'. Fixes: d102f19a2085 ("target/riscv/pmp: Raise exception if no PMP entry is = configured") Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221205065303.204095-1-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- target/riscv/op_helper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 09f1f5185d..d7af7f056b 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -202,7 +202,7 @@ target_ulong helper_mret(CPURISCVState *env) =20 if (riscv_feature(env, RISCV_FEATURE_PMP) && !pmp_get_num_rules(env) && (prev_priv !=3D PRV_M)) { - riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, GETPC()); + riscv_raise_exception(env, RISCV_EXCP_INST_ACCESS_FAULT, GETPC()); } =20 target_ulong prev_virt =3D get_field(env->mstatus, MSTATUS_MPV); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663464904324.4996437663618; Wed, 21 Dec 2022 14:57:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87my-00017P-3S; Wed, 21 Dec 2022 17:42:16 -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 1p87mv-00010S-Sr for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:13 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mt-0000bf-0t for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:13 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:24 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:53 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:25 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMS2RNkz1Rwt8 for ; Wed, 21 Dec 2022 14:41:24 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Ej8TFlE1sSe2 for ; Wed, 21 Dec 2022 14:41:23 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMP2vCRz1RvLy; Wed, 21 Dec 2022 14:41:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662530; x=1703198530; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=vGws/My0D8GntyXliouHfD7qOmROlWfOigfQcR/d9kU=; b=cWRgrhM+CxdkSsYGGNhHaVEE2NMJ5OQzu+JtJeWiClEhAaNSvLIHfJTf fPabsCJy12ys3w6a48ViUtzahfDSivYDzfWmc7999Ycps14uFR/9ErGzX 7NY0Xo62Z2YQZ5/I7jTk2a6YzQxYp/fhCZx4Wu9tgeKjO+47tr460Kvze f6ZQPDfO5xyivAG8G4/eZlcmDeaW1dM6pkrQ1DITMrclCnZi2ZRwsTCTP WE78Dw8pXoeeHFRzcGrQ40U8woGSWMk7+iNS3EQH01hwkskZKjNsNtgh/ m59dbq338wamiixRwxaYLHQO4mVGcZoOf+vPFrZGevICRr7s7TPqQfMuR w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561387" IronPort-SDR: pjRjW7x6Es2e3JjvmTcVomknIV6ZzTbhZo6E8pfd15e/iumYKmOXkJMLAoA/nn0YYQOTsYaVA7 rXUAV9cqwPf/IGaIVXWyODcHT92Bi2xbHij/qbSK94dPMC2V2zGkDVwiYTG9FfFJgeDbMie6Cm awBnS6vCn/tYyHnn6BrSH8mXSQNtth+oiY++jgYz/Cz2gBiBnOxA8Ud8lTejlXaPrNr4srMCe4 8/J3I1+ZLuBUjXbXq5ruUuiYerx+ozg5X/zYbXEeCLTzc4yG25OeEFgdzT6TnyVhhpVB03AzS/ gBg= IronPort-SDR: 0xOH7uWCRLhdIy5xmVLljjmx4kiN13/IkVzvnZrSmChnohM6EaTLxeZEtuqzngUaAuPMkYnyhF DjaoXyRHFXJ5g59hWdUAO3ySjhL3QdBfHNWZb5CHUa6CzeqY7PAYzJWcw+Wn7l+XfXEVAihBr6 TvsevJFhicQ5YiCNUYY/rh+hpEUCekEJKlCW5q3Ym2V2R1rvMaEp461SjBk4vBUHHUTL0O98rR hyEk6x/+Ea8xMthpp81LY8Affj8q2jRu5j0RlAiz7lQZqMz5ZEeTOf7Oy/DqcvelzkzODI4/4s tJ8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662483; x=1674254484; bh=vGws/My 0D8GntyXliouHfD7qOmROlWfOigfQcR/d9kU=; b=YxrwVgXC0VQTIJcP475T1xz 3WNl1dsotKZu5sB9kpKACIm95abhjdqXYCaFfniLPK4E+jJVLRjZcCYdJHhf8Uml C7QTBfS7iNhiWeXHmRuiyxZHFz0bmK2dmTiS/RbNvf84VMQq4SOe72CcVVy5ZwO1 qkOq19oxPbUi3KWnImKt02oLvgP374LPDIRZOau5B9emR9wIW/vOBchfPxMQYgrl 7s4Rx2NZC0IzcUslYZHR5dIEoCCS1s5V26eGGlqMxPHaw3BSkDs2CB5O7JVFkbaN v5tQP2YYv02FVo8SHpO2rDIqwdILCHU9yqmZb4At+iEmiUUvBVQ9POtNnYQJ8AQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Richard Henderson , qemu-stable@nongnu.org, Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 26/45] target/riscv: Set pc_succ_insn for !rvc illegal insn Date: Thu, 22 Dec 2022 08:40:03 +1000 Message-Id: <20221221224022.425831-27-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663466160100003 Content-Type: text/plain; charset="utf-8" From: Richard Henderson Failure to set pc_succ_insn may result in a TB covering zero bytes, which triggers an assert within the code generator. Cc: qemu-stable@nongnu.org Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1224 Signed-off-by: Richard Henderson Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221203175744.151365-1-richard.henderson@linaro.org> [ Changes by AF: - Add missing run-plugin-test-noc-% line ] Signed-off-by: Alistair Francis --- target/riscv/translate.c | 12 ++++-------- tests/tcg/Makefile.target | 2 ++ tests/tcg/riscv64/Makefile.target | 6 ++++++ tests/tcg/riscv64/test-noc.S | 32 +++++++++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 tests/tcg/riscv64/test-noc.S diff --git a/target/riscv/translate.c b/target/riscv/translate.c index cd5eb25ee8..160aefc3df 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1096,14 +1096,10 @@ static void decode_opc(CPURISCVState *env, DisasCon= text *ctx, uint16_t opcode) ctx->virt_inst_excp =3D false; /* Check for compressed insn */ if (insn_len(opcode) =3D=3D 2) { - if (!has_ext(ctx, RVC)) { - gen_exception_illegal(ctx); - } else { - ctx->opcode =3D opcode; - ctx->pc_succ_insn =3D ctx->base.pc_next + 2; - if (decode_insn16(ctx, opcode)) { - return; - } + ctx->opcode =3D opcode; + ctx->pc_succ_insn =3D ctx->base.pc_next + 2; + if (has_ext(ctx, RVC) && decode_insn16(ctx, opcode)) { + return; } } else { uint32_t opcode32 =3D opcode; diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target index 75257f2b29..14bc013181 100644 --- a/tests/tcg/Makefile.target +++ b/tests/tcg/Makefile.target @@ -117,6 +117,8 @@ endif =20 %: %.c $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) +%: %.S + $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS) else # For softmmu targets we include a different Makefile fragement as the # build options for bare programs are usually pretty different. They diff --git a/tests/tcg/riscv64/Makefile.target b/tests/tcg/riscv64/Makefile= .target index b5b89dfb0e..cc3ed65ffd 100644 --- a/tests/tcg/riscv64/Makefile.target +++ b/tests/tcg/riscv64/Makefile.target @@ -4,3 +4,9 @@ VPATH +=3D $(SRC_PATH)/tests/tcg/riscv64 TESTS +=3D test-div TESTS +=3D noexec + +# Disable compressed instructions for test-noc +TESTS +=3D test-noc +test-noc: LDFLAGS =3D -nostdlib -static +run-test-noc: QEMU_OPTS +=3D -cpu rv64,c=3Dfalse +run-plugin-test-noc-%: QEMU_OPTS +=3D -cpu rv64,c=3Dfalse diff --git a/tests/tcg/riscv64/test-noc.S b/tests/tcg/riscv64/test-noc.S new file mode 100644 index 0000000000..e29d60c8b3 --- /dev/null +++ b/tests/tcg/riscv64/test-noc.S @@ -0,0 +1,32 @@ +#include + + .text + .globl _start +_start: + .option norvc + li a0, 4 /* SIGILL */ + la a1, sa + li a2, 0 + li a3, 8 + li a7, __NR_rt_sigaction + scall + + .option rvc + li a0, 1 + j exit + .option norvc + +pass: + li a0, 0 +exit: + li a7, __NR_exit + scall + + .data + /* struct kernel_sigaction sa =3D { .sa_handler =3D pass }; */ + .type sa, @object + .size sa, 32 +sa: + .dword pass + .zero 24 + --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663081858649.1190709067763; Wed, 21 Dec 2022 14:51:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87n0-0001Fd-Rf; Wed, 21 Dec 2022 17:42:18 -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 1p87mz-000194-1x for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:17 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87mw-0000Xf-Nc for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:16 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:26 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:55 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:26 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMV24Mzz1RwqL for ; Wed, 21 Dec 2022 14:41:26 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id jDNwxKvblefE for ; Wed, 21 Dec 2022 14:41:25 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMS0LbBz1RvTp; Wed, 21 Dec 2022 14:41:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662534; x=1703198534; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=SvE69aK7bAVRqVg7LOCIAVD1/g2aMYl/gyVgZLYkuxo=; b=pjg2mE288ogJf/w+aXXTHhnqCECNfCUZ+DiqVrDkCZYD2kaVIOhjw6zV lCfrq/0KmLgQd6Xu9nWYgvqpm2DTUkvTEivlnawg4t3QLrU9lG7plbxiP mC0s93jVeAF7cgUJNPaviCnAsQRwmhJvJ7N+yJ664QXoWivcB/yWSnwkV kVppCnwm3RG0/CC+wmdJyXWJepjPRtHWg5k6knGn6ihAQ1Q6C/ax8jCCR MDfFloadvZyZfszEZ3JfLMnz8hZScB+321Jy0TsDt+ZCCc5D0IU6MkXdL C6Jy9tGucyan5OeYRn+EEdjQQne2UXtLzPv0qnTstRxLBDZcRBZA2dbda A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561393" IronPort-SDR: 3GDgH5wlkeju7PaaM4TKVHA9z9Uxhzi/CDCTTaZ2tVNGhJPZgTmmhsUoyKyFaFwfT8Nw9K2cN0 LVmUL9FpOG+fwyolQTE0VGZ47LVWtZDTzcie+Zqt4zFo0H5vKB12DRTZMog6DsAHC+QtoeSaDY Uws1vQ2CUrVq2gxst0NwPGnTcmT2BJvDDEdNp93kw1dXJAO0Cv8jD9vKQzMMdr+NK6IErV8Pma P2uUv0fwwYMlivbC9PRxBooKbDDNxsoMGRq8XQWR+CyvwWPIc9l+VLTGjCQl85I7s5YgjZobkj GaU= IronPort-SDR: SS+vw8hef6yWCAj/qdSpCUvh85sDN5RXZb20EQBpSRIuw4+ZTDXgDtjLUV0bNjJKd/shP0nik1 uk7SZEEaJJgMFF4ih0KjTrgf4v4rX61kmfZbkuD3TVKLTdWqMoIc76qHDCJTkEBE8/oLCAPV86 hRNwbmaK6fNao0VfK8uldOdmypaXl5Ii+Nu/l4QOU8bW/xCzmgoxQ4tnYSM2r2MoUYdeGxFU8B XOSfSWER+bjAWxB0y14xGQ7+jxwRn4WYvafrc9mYMGbnH/au8tu8CCA48YBn1UV0LVk9zW4zQp 2jQ= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662485; x=1674254486; bh=SvE69aK7bAVRqVg7LO CIAVD1/g2aMYl/gyVgZLYkuxo=; b=egchbAuXZFKQfix1V/T9EbMtz2YtZle1uv 5j7IFd4kR8Qr18bRMiqdi5MiNMqR1dcSmrXIPXFVrcNt2e4CwOGcQ4CvY1k+skBK fO1DDWRAiq5eaJm5+UQsyX6jwxcEtZRqFTcj6fb6B60tumP8jBQ7cCkP56h60zh3 7nZECBa8ANpG4PrCvyJ5c0MlfA9MwZlvzd6S1MLtqt2MJoGBDAgTKf/09eKvp+lr JTkwTcQITfPBU2oykgltFrTl1VGob8kmvM5ZVldWWzLgIfobw6ZbLPfV78iUfV1h xkF29VBSYih/K+viWTYZzlgcTATze7rS8tgFykqkscYSPp6THGnQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 27/45] target/riscv: Simplify helper_sret() a little bit Date: Thu, 22 Dec 2022 08:40:04 +1000 Message-Id: <20221221224022.425831-28-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663083959100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng There are 2 paths in helper_sret() and the same mstatus update codes are replicated. Extract the common parts to simplify it a little bit. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221207090037.281452-1-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- target/riscv/op_helper.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index d7af7f056b..a047d38152 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -149,21 +149,21 @@ target_ulong helper_sret(CPURISCVState *env) } =20 mstatus =3D env->mstatus; + prev_priv =3D get_field(mstatus, MSTATUS_SPP); + mstatus =3D set_field(mstatus, MSTATUS_SIE, + get_field(mstatus, MSTATUS_SPIE)); + mstatus =3D set_field(mstatus, MSTATUS_SPIE, 1); + mstatus =3D set_field(mstatus, MSTATUS_SPP, PRV_U); + env->mstatus =3D mstatus; =20 if (riscv_has_ext(env, RVH) && !riscv_cpu_virt_enabled(env)) { /* We support Hypervisor extensions and virtulisation is disabled = */ target_ulong hstatus =3D env->hstatus; =20 - prev_priv =3D get_field(mstatus, MSTATUS_SPP); prev_virt =3D get_field(hstatus, HSTATUS_SPV); =20 hstatus =3D set_field(hstatus, HSTATUS_SPV, 0); - mstatus =3D set_field(mstatus, MSTATUS_SPP, 0); - mstatus =3D set_field(mstatus, SSTATUS_SIE, - get_field(mstatus, SSTATUS_SPIE)); - mstatus =3D set_field(mstatus, SSTATUS_SPIE, 1); =20 - env->mstatus =3D mstatus; env->hstatus =3D hstatus; =20 if (prev_virt) { @@ -171,14 +171,6 @@ target_ulong helper_sret(CPURISCVState *env) } =20 riscv_cpu_set_virt_enabled(env, prev_virt); - } else { - prev_priv =3D get_field(mstatus, MSTATUS_SPP); - - mstatus =3D set_field(mstatus, MSTATUS_SIE, - get_field(mstatus, MSTATUS_SPIE)); - mstatus =3D set_field(mstatus, MSTATUS_SPIE, 1); - mstatus =3D set_field(mstatus, MSTATUS_SPP, PRV_U); - env->mstatus =3D mstatus; } =20 riscv_cpu_set_mode(env, prev_priv); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662562491965.5706933829883; Wed, 21 Dec 2022 14:42:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87n9-0001jG-Qb; Wed, 21 Dec 2022 17:42:27 -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 1p87n7-0001cP-Ss for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:25 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87n6-0000bf-4w for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:25 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:28 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:57 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:29 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMX2tVbz1RvTr for ; Wed, 21 Dec 2022 14:41:28 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id c1HJ7AJwVDjs for ; Wed, 21 Dec 2022 14:41:28 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMV2wxLz1RvTp; Wed, 21 Dec 2022 14:41:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662543; x=1703198543; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DKKYFsAWy3mQQVNV1VM5SmTNOYbIwJL0N/VaovONcxU=; b=cfzdIdJJSQRfmQRqUc3YWPiq5bWq7m7TMdp/JROML59c1w2IZGpvQwql O0Gx6xVzZifdtFKkmLhc/jxI4LwhXUvn4epm+jZ6vIRDZ27djXT1HdjjJ MqnRM27jvhty5hc9Kp69Ag5n80kGHfRzffTeP6uUZw2RnAbF+Htf5P7RE pegm7sC0VL0RJy5HiP4OpBpRkLv8ir1mBOQLg2FGaoQjYv5UQsrVno/NY 0mxk6sig/awKVjveytIGq6DZSQaDsespsPqY1y2vcpN1ttLbs7aYjn2so cDUlGqKkC3ycv9WY+ZXMnPJswN1MPwHsxBooxUGCjSU+JayzfMEgM6x1z w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561398" IronPort-SDR: DLPCd8fdgI2oqlnnys/DsHY8AtG9xe2cJ6ReaV2hD3wafcIm84zG7PdX4rhIVYffhVHglH7Dl3 1MrbuaWl2JGW8Px5009kN9RfJu86o+pLnZy3uG8feUk4BMEiSLsd/FyYF34tojdPMhkdcpZqOX eyKXXEeX6oKSuJ2n2UiUGe5S6j4KFhhknrm43j7fILAOr9dUvD74UycUo+jg4R1GalZPLqtMGn bIg1FL4YfH+ZSwCqu3EYZxpxbG4C/UlVJrGHdaapT/n2Z71zjaS3S078rAIgy+dS2f+LuxIr7w FT4= IronPort-SDR: RnkR/ckR3Elfedf5r20uQTtcWTbTZwzpp35ZrY/vXdm0j+1VaigogssemZvseR3Sjw1H2HpAuZ R+v3izPNZR4Lx9UKAS+pM4dLVm3uRdK3EtLoit5xXY0bDn8CCYCZgbgSIzF6OXt1f3zf2SN1zr IrPJEafO5ra7ywojld5aRtC81RfilFEF7t2A8jEnZX2bK1tNQGAPdAyEn71ZKvkBWFs7OaT0Tf GynGDLza6heccDFdpnCYa/W3L2UqXXLSb+WRxI/rpMH7fAbtwod1+AdB6NE18hjKJU/NtGURfW Hns= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662488; x=1674254489; bh=DKKYFsAWy3mQQVNV1V M5SmTNOYbIwJL0N/VaovONcxU=; b=b/Tf/g3Lqn3xWlHq+fmASOxbZeNuRLzZCl MJR6IZLDCnLNkPgbPCMmqNnO1L7478yWm+/f7NX4u8sR7NIRv7wcQ9W2FzrtBlO/ evTmrXNQ8khB+0C3JzBsmq8UrAupoQzLsafQvCQI4KffaXOktcQiW7N+pO8fffbM YgeLsu+txzQD/eXnAGjHXtz0UT9RlEAoi+Xfi9PTx5A8WYh1pRd+Da9bJiESIfz5 qsB3ESuRwIUcCIMGa+PsqRgEPWWHZydxy5yqsTdgI7tmkWla1+WSQ1RnhV0iAmnW rHbFf++e1ldAAHkA0Syr0YzJ3WkhEEpUeke1/HDbw2ZM38vVtGGA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 28/45] target/riscv: Clear mstatus.MPRV when leaving M-mode for priv spec 1.12+ Date: Thu, 22 Dec 2022 08:40:05 +1000 Message-Id: <20221221224022.425831-29-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662564027100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng Since priv spec v1.12, MRET and SRET now clear mstatus.MPRV when leaving M-mode. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221207090037.281452-2-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- target/riscv/op_helper.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index a047d38152..878bcb03b8 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -154,6 +154,9 @@ target_ulong helper_sret(CPURISCVState *env) get_field(mstatus, MSTATUS_SPIE)); mstatus =3D set_field(mstatus, MSTATUS_SPIE, 1); mstatus =3D set_field(mstatus, MSTATUS_SPP, PRV_U); + if (env->priv_ver >=3D PRIV_VERSION_1_12_0) { + mstatus =3D set_field(mstatus, MSTATUS_MPRV, 0); + } env->mstatus =3D mstatus; =20 if (riscv_has_ext(env, RVH) && !riscv_cpu_virt_enabled(env)) { @@ -203,6 +206,9 @@ target_ulong helper_mret(CPURISCVState *env) mstatus =3D set_field(mstatus, MSTATUS_MPIE, 1); mstatus =3D set_field(mstatus, MSTATUS_MPP, PRV_U); mstatus =3D set_field(mstatus, MSTATUS_MPV, 0); + if ((env->priv_ver >=3D PRIV_VERSION_1_12_0) && (prev_priv !=3D PRV_M)= ) { + mstatus =3D set_field(mstatus, MSTATUS_MPRV, 0); + } env->mstatus =3D mstatus; riscv_cpu_set_mode(env, prev_priv); =20 --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662597956633.5386098138076; Wed, 21 Dec 2022 14:43:17 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nB-0001ne-LP; Wed, 21 Dec 2022 17:42:29 -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 1p87n9-0001jX-Sc for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:27 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87n7-0000bQ-N1 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:27 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:30 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:53:59 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:31 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMZ5R29z1Rwrq for ; Wed, 21 Dec 2022 14:41:30 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Zle_GB1fR8ub for ; Wed, 21 Dec 2022 14:41:29 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMX3Jmrz1Rwt8; Wed, 21 Dec 2022 14:41:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662545; x=1703198545; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=TZ8ZSQ/6EJPt3aV5ej9Xbmbe3XTCl5tkWbAwM/q28aQ=; b=eph9djThsViXUitWzgADbtMH4QleKckpVjkx4NVNKGJ2X9zERfTj4OcF 7AxR9iNX9ocA9biEbZ6nC1sv9jRW6OXWeCLvEs0CNvhR2od9MRyVn5wV+ LCtz0NIOxXR24smHSTtdg8WbXRp+iW2224X6auNncud1qDavNqLrkjHQA 5nCm49XVzQR2PPHoUv1TLo/Yl1MRUM1yOkGAb3X3EznGUhTThM0KjbhHL aHCUoa5CDWd3/ysgPw0rHAJ0hVnpt0b9AK9RKcV0jjl/6fQPw64SW1qUW QWJLLH3b6m6+T6E2CRDVm3u7F5EEU/EpAXdJawZSOpI6fV7/+BFTcdH3B g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561405" IronPort-SDR: /UwXE6013IZqa93sAo+Kan6YXKpq0BB/tZg6My6+oEbzle3qmr3zIWKiscg2+1bMEdijNw4YPq gEbouc0bhHqjaRNz+zhhttdRotDsagDshf43Vz2OrNG6ZyAdV0KX95teW4XEflly6ACMwvC/Be i6yFcsq/ZPeNVSbwsINDtXGDy9ACxqD3JaZsQTI/apq0+jL7Xu6xUFzPVGMJzy8SPvGtLG7PDF 61lVK5tnjLjC+6eUBWuPXlv54on1VwjE5Vk19FhbHp0/QADM9avf6hItQFtQPzVL/abBHQgrcx t6Q= IronPort-SDR: h3kM96KZkPLOreR6G+RgvmGWEM4PZRFYx6gb+xb7ihXwOeYekoizDOVg3Dd2FFbV8wjuN5d/XA 4fYlBGlO/3qphmpOA8U+6JdKQhvL7bL1HGmrEX+Y2k4h/TLKKxESnCf1NXIaCcqZ6rkDrPid0a iCmnnX1D5l3IU63HS2WNPk9iraQTjY67c8Zeb5++zQr3/P6ehev3PyMEzsqLHlwj+nYW3/iJPm 3jV7Uh8GXjKKOe7bIUxt1MJ+OmgBpDnWlEVDurAU6r7uAX2QiXSEQtwmKRu5m7Fyq+/Awhe9X5 tPI= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662489; x=1674254490; bh=TZ8ZSQ/ 6EJPt3aV5ej9Xbmbe3XTCl5tkWbAwM/q28aQ=; b=e8iFTQbNdamG1x888mNqMhk +nGjxhAzF6r+l7ZRSqAwHJ8DhXLA63Fcr45oFNMpzVTy+MiYsTRb2UpUVnkVDG21 rGY3PTKZGvxbK0BUyuCsR4/CRcjU4jAOOQDUYqmkjKT/bp60hu0xTdUAjyaD//6R H6rkLeRSoPc2aPat6FPx7e5Zd9ze0h3pgQeZQTVcs1OZQGx7oVYLZkEgS3ycLmSY i+/XAD/kh6lI8Wikg+fWpTHGgV4+OVTl3n/zwDT/Jyv4yckklcKH2itfwwH3prgK By6Vlz9tRDiedU2DujZ35rdQwOIWOvme6dkT2iuFGSMTTTQjUrUEN4ND2MmN5Ow= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Christoph Muellner , Alistair Francis Subject: [PULL v2 29/45] RISC-V: Add Zawrs ISA extension support Date: Thu, 22 Dec 2022 08:40:06 +1000 Message-Id: <20221221224022.425831-30-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662599923100001 Content-Type: text/plain; charset="utf-8" From: Christoph Muellner This patch adds support for the Zawrs ISA extension. Given the current (incomplete) implementation of reservation sets there seems to be no way to provide a full emulation of the WRS instruction (wake on reservation set invalidation or timeout or interrupt). Therefore, we just exit the TB and return to the main loop. The specification can be found here: https://github.com/riscv/riscv-zawrs/blob/main/zawrs.adoc Note, that the Zawrs extension is frozen, but not ratified yet. Changes since v3: * Remove "RFC" since the extension is frozen * Rebase on master and fix integration issues * Fix entry ordering in extension list Changes since v2: * Rebase on master and resolve conflicts * Adjustments according to a specification change * Inline REQUIRE_ZAWRS() since it has only one user Changes since v1: * Adding zawrs to the ISA string that is passed to the kernel Signed-off-by: Christoph M=C3=BCllner Reviewed-by: Alistair Francis Message-Id: <20221005144948.3421504-1-christoph.muellner@vrull.eu> Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 1 + target/riscv/insn32.decode | 4 ++ target/riscv/cpu.c | 7 +++ target/riscv/translate.c | 1 + target/riscv/insn_trans/trans_rvzawrs.c.inc | 51 +++++++++++++++++++++ 5 files changed, 64 insertions(+) create mode 100644 target/riscv/insn_trans/trans_rvzawrs.c.inc diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 37f9516941..f5609b62a2 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -453,6 +453,7 @@ struct RISCVCPUConfig { bool ext_svnapot; bool ext_svpbmt; bool ext_zdinx; + bool ext_zawrs; bool ext_zfh; bool ext_zfhmin; bool ext_zfinx; diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index d0253b8104..b7e7613ea2 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -718,6 +718,10 @@ vsetvli 0 ........... ..... 111 ..... 1010111 = @r2_zimm11 vsetivli 11 .......... ..... 111 ..... 1010111 @r2_zimm10 vsetvl 1000000 ..... ..... 111 ..... 1010111 @r =20 +# *** Zawrs Standard Extension *** +wrs_nto 000000001101 00000 000 00000 1110011 +wrs_sto 000000011101 00000 000 00000 1110011 + # *** RV32 Zba Standard Extension *** sh1add 0010000 .......... 010 ..... 0110011 @r sh2add 0010000 .......... 100 ..... 0110011 @r diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index b2c132e269..cc75ca7667 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -76,6 +76,7 @@ static const struct isa_ext_data isa_edata_arr[] =3D { ISA_EXT_DATA_ENTRY(zicsr, true, PRIV_VERSION_1_10_0, ext_icsr), ISA_EXT_DATA_ENTRY(zifencei, true, PRIV_VERSION_1_10_0, ext_ifencei), ISA_EXT_DATA_ENTRY(zihintpause, true, PRIV_VERSION_1_10_0, ext_zihintp= ause), + ISA_EXT_DATA_ENTRY(zawrs, true, PRIV_VERSION_1_12_0, ext_zawrs), ISA_EXT_DATA_ENTRY(zfh, true, PRIV_VERSION_1_12_0, ext_zfh), ISA_EXT_DATA_ENTRY(zfhmin, true, PRIV_VERSION_1_12_0, ext_zfhmin), ISA_EXT_DATA_ENTRY(zfinx, true, PRIV_VERSION_1_12_0, ext_zfinx), @@ -766,6 +767,11 @@ static void riscv_cpu_realize(DeviceState *dev, Error = **errp) return; } =20 + if ((cpu->cfg.ext_zawrs) && !cpu->cfg.ext_a) { + error_setg(errp, "Zawrs extension requires A extension"); + return; + } + if ((cpu->cfg.ext_zfh || cpu->cfg.ext_zfhmin) && !cpu->cfg.ext_f) { error_setg(errp, "Zfh/Zfhmin extensions require F extension"); return; @@ -1021,6 +1027,7 @@ static Property riscv_cpu_extensions[] =3D { DEFINE_PROP_BOOL("Zifencei", RISCVCPU, cfg.ext_ifencei, true), DEFINE_PROP_BOOL("Zicsr", RISCVCPU, cfg.ext_icsr, true), DEFINE_PROP_BOOL("Zihintpause", RISCVCPU, cfg.ext_zihintpause, true), + DEFINE_PROP_BOOL("Zawrs", RISCVCPU, cfg.ext_zawrs, true), DEFINE_PROP_BOOL("Zfh", RISCVCPU, cfg.ext_zfh, false), DEFINE_PROP_BOOL("Zfhmin", RISCVCPU, cfg.ext_zfhmin, false), DEFINE_PROP_BOOL("Zve32f", RISCVCPU, cfg.ext_zve32f, false), diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 160aefc3df..df38db7553 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -1060,6 +1060,7 @@ static uint32_t opcode_at(DisasContextBase *dcbase, t= arget_ulong pc) #include "insn_trans/trans_rvh.c.inc" #include "insn_trans/trans_rvv.c.inc" #include "insn_trans/trans_rvb.c.inc" +#include "insn_trans/trans_rvzawrs.c.inc" #include "insn_trans/trans_rvzfh.c.inc" #include "insn_trans/trans_rvk.c.inc" #include "insn_trans/trans_privileged.c.inc" diff --git a/target/riscv/insn_trans/trans_rvzawrs.c.inc b/target/riscv/ins= n_trans/trans_rvzawrs.c.inc new file mode 100644 index 0000000000..8254e7dfe2 --- /dev/null +++ b/target/riscv/insn_trans/trans_rvzawrs.c.inc @@ -0,0 +1,51 @@ +/* + * RISC-V translation routines for the RISC-V Zawrs Extension. + * + * Copyright (c) 2022 Christoph Muellner, christoph.muellner@vrull.io + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2 or later, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License f= or + * more details. + * + * You should have received a copy of the GNU General Public License along= with + * this program. If not, see . + */ + +static bool trans_wrs(DisasContext *ctx) +{ + if (!ctx->cfg_ptr->ext_zawrs) { + return false; + } + + /* + * The specification says: + * While stalled, an implementation is permitted to occasionally + * terminate the stall and complete execution for any reason. + * + * So let's just exit TB and return to the main loop. + */ + + /* Clear the load reservation (if any). */ + tcg_gen_movi_tl(load_res, -1); + + gen_set_pc_imm(ctx, ctx->pc_succ_insn); + tcg_gen_exit_tb(NULL, 0); + ctx->base.is_jmp =3D DISAS_NORETURN; + + return true; +} + +#define GEN_TRANS_WRS(insn) \ +static bool trans_ ## insn(DisasContext *ctx, arg_ ## insn *a) \ +{ \ + (void)a; \ + return trans_wrs(ctx); \ +} + +GEN_TRANS_WRS(wrs_nto) +GEN_TRANS_WRS(wrs_sto) --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663163574850.7793242166141; Wed, 21 Dec 2022 14:52:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nC-0001u7-Hr; Wed, 21 Dec 2022 17:42:30 -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 1p87nA-0001lU-O5 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:28 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87n8-0000Xf-VY for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:28 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:33 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:02 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:33 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMd0wHWz1RvTr for ; Wed, 21 Dec 2022 14:41:33 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Jt1M5hR6Rltv for ; Wed, 21 Dec 2022 14:41:32 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMZ3b06z1RvTp; Wed, 21 Dec 2022 14:41:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662546; x=1703198546; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=ZCE7CztmzSZYcLhiaCvb74bOC6OBI6o+zLLsd/7OGTk=; b=ngyNpIaDuJdhg8I30OoG+HBB4zd+S1oouz5clDx8q9MA50DD9bXZ3Pd8 gz0TbiDP25SeqHjInF8lEN+7VEn/j4KMssi0y4l6AceRx9KT431mBOP01 raN8bB4vNdtfP7WoM+HECh3VnbtEqC+LFX/ouCpJznJPm6DwZhZ6tCINW ao9QwAIaa3JQaXgQ71Y+jd8bOutoBP/Z18N/a9G58YW0Q9Kyr05/W56vc 75Z00qjItS7vopk3dJOnq1OW3kMm3vPU1Y7lon+B7C/t9wF6SADWayknX KfiM9gJPjSKC5HCC0qTYP6HTzyDeRgM3u+3stDxNI97Fi3WGgBHqNTcjz g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561409" IronPort-SDR: 9vvCJ5mlH3sqLoWyiizoqZVoYi14EElhVBGAi2IFoJ5VwDsHfCvo0fWUZYHukzdL8tAgXciuJM FHHIN0CGVVXwGR32vILRXSrN9x1l9wlbrFYsR8o6q6WViqqbO1DSdB7uqzjY8lxyDdIZu6JzOj nMPDv0NjjcJE9Ra2YZLRlhD1az+/ubv61kWrGrW9LD0ge30AJzLZqyKVtY1H/xs7L1HYOUTFv1 DvSsfxwvlRJn54F0ZmNt1mhn3+JQFutpQEU9o6PIwBTpMTBwZaRFq8v35HZ1ePKjzNjprjmtfg 25g= IronPort-SDR: MquCuRuJkCS2pUCtmUgUF67/fIJiVCkl51ZI6ZUegIInMPu41DY4ffh66ooIDKoR9oxjRRq5Wo Izp/Q2gAET/Qp649bCUBEAKxso384LLJeV16oTmG6Y3Zy0fB5N85YyXVlw/cXdSrG7ViyLcyZ+ 5cPlUNgfXq64GIadaOdZIRdD2R+5jimoqWBAbApn6DjTWMGynUDv5Z27Ng3M5XkwwdEzHg17hd +CIyCmdICSVTkj7TIH7aLbFJsa2ejq6RWG10kwTA1gdEFKFLvHANbUUkjbkErXhyPrLBet52A9 G6s= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662492; x=1674254493; bh=ZCE7Czt mzSZYcLhiaCvb74bOC6OBI6o+zLLsd/7OGTk=; b=KLoD3/hghA5SXf81wLri6Un E89CvNFGjY9IeG5WAjYLGOm4elRiktxaAhBAmh7Vvm3oSm6mrRufP7QYKlrcQRNl e9QfQDbDcKu81oWNnwAioEM2uKifkt12XC9zd7Ktmlg0ihb+71ETMglw7KLouJiD GziHHyUyZ5k/9lxIb+tDjKPMt2yN4UW1JApcSTmUdj41ZR69otl/dneznbHd2r4+ JgCrJ0k+iV0xfOiHL91ZdI3ZWT000cAVSU/221MwkbmlqWs+3anFj9lMyNDx50dG /+Q5f7DG9Hc1GkoE1mJXNfYch0UhmpMCFFogaleq/cqLR7Sp1M7zYfuYBaN4Kjg= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wilfred Mallawa Subject: [PULL v2 30/45] hw/riscv: Select MSI_NONBROKEN in SIFIVE_PLIC Date: Thu, 22 Dec 2022 08:40:07 +1000 Message-Id: <20221221224022.425831-31-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663164325100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng hw/pci/Kconfig says MSI_NONBROKEN should be selected by interrupt controllers regardless of how MSI is implemented. msi_nonbroken is initialized to true in sifive_plic_realize(). Let SIFIVE_PLIC select MSI_NONBROKEN and drop the selection from RISC-V machines. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wilfred Mallawa Message-Id: <20221211030829.802437-1-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/Kconfig | 1 + hw/riscv/Kconfig | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index ecd2883ceb..1d4573e803 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -78,6 +78,7 @@ config RISCV_IMSIC =20 config SIFIVE_PLIC bool + select MSI_NONBROKEN =20 config GOLDFISH_PIC bool diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index 79ff61c464..167dc4cca6 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -11,7 +11,6 @@ config MICROCHIP_PFSOC select MCHP_PFSOC_IOSCB select MCHP_PFSOC_MMUART select MCHP_PFSOC_SYSREG - select MSI_NONBROKEN select RISCV_ACLINT select SIFIVE_PDMA select SIFIVE_PLIC @@ -37,7 +36,6 @@ config RISCV_VIRT imply TPM_TIS_SYSBUS select RISCV_NUMA select GOLDFISH_RTC - select MSI_NONBROKEN select PCI select PCI_EXPRESS_GENERIC_BRIDGE select PFLASH_CFI01 @@ -53,7 +51,6 @@ config RISCV_VIRT =20 config SIFIVE_E bool - select MSI_NONBROKEN select RISCV_ACLINT select SIFIVE_GPIO select SIFIVE_PLIC @@ -64,7 +61,6 @@ config SIFIVE_E config SIFIVE_U bool select CADENCE - select MSI_NONBROKEN select RISCV_ACLINT select SIFIVE_GPIO select SIFIVE_PDMA @@ -82,6 +78,5 @@ config SPIKE bool select RISCV_NUMA select HTIF - select MSI_NONBROKEN select RISCV_ACLINT select SIFIVE_PLIC --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663281167439.56057388670195; Wed, 21 Dec 2022 14:54:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nL-0002Ek-Pb; Wed, 21 Dec 2022 17:42:39 -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 1p87nJ-0002Bf-Px for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:37 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nI-0000bf-6K for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:37 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:35 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:04 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:35 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMg1WL2z1RvTr for ; Wed, 21 Dec 2022 14:41:35 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id cNLwqIapRciT for ; Wed, 21 Dec 2022 14:41:34 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMd1Lxwz1Rwtl; Wed, 21 Dec 2022 14:41:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662555; x=1703198555; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=wy8uMlexCTLFy7zcIJSicrjiNVPO7dvX3ZUqTF3gE+Y=; b=nFRRoTZh4yiOmHDpHP2ndtZXTbQGdCwLp+qFQo1bdh9ubgDktd/z5HXe bBLJsFWExvJqFLCa4aA/F1IyMGDfmBJ57b0cL6BU7+itReDuLawziLzf3 RMlBbXglERbyzcyouq0X3Dy8hiE0UmmnGvsS598OWo6+VQwFiaPoauS7F zzOc6M2QyMdaZzxzbwxVVLm7crSCgAN7RJNch931xSFba6Vy94s8Y79Jg wpunJzsLiGl62isi6khdEwdZ7E8wqEp3f98MvpsNfclM9EGSQNwIgqc92 uVJ7eu+c7MmoTrq1dmuCH8Vek+/RrQXJsS8JaG1sAFuRSIoU7Kpn85kl8 A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561414" IronPort-SDR: Memce6k+tlyS/EwWKx0EWjFlb071jYdiwx/ZsO1s44y/lx1KzjfkSim7NI+7MBmGwrMBcvTS4E 87PwEsDRdLq3zv1oP8F3/iAjll/m6SMjWKwhjbJHge6pWKYPLud7wcFlIRxEFYzxyuFf0jtQzD W+47H3Pns2s8Y2EiexXWpEMoQQi4AwY4sjYhR5LjrfiNhhPhamKkX0TlkV3sXxwf0E8zxzN/FH zoL7Rifam8ywQ7D0QspqSH0dVrlqLiMIckmkRfKJwkJjOIoayEzt4EUZR/bkvs5LIfOZMvwB9X 5Lk= IronPort-SDR: 8XPOYyyKwSCDzE0dWn3+QxB5K0/VEH0xKsGtYNZnXZYGlKC6pKCZhFLu90IRESbky5QRRLwpXv cRTPYT3WJi4ISuh4zpyhiGgEjsjWlgbk75LsI1Iyvni1iIcBGtIV95sGEPwNtZD0jH8HxVsPS/ 81KZOqoEVjx5sstAwSHvwhNZq9DUQITZB2k84FgWrdYDynNOpIA+Cff5n21H5lWiWJfahZGToP efKz/0pmlPm0PU7m16spoxfQCeHKLboWqSt5oljOzRR/XOYHD44LGWPxoaBQ+mUUM8DEwHG/B9 1uo= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662494; x=1674254495; bh=wy8uMle xCTLFy7zcIJSicrjiNVPO7dvX3ZUqTF3gE+Y=; b=DmHzQXvQex8SJvaqgiyHpu/ UgeHYFDvNK9Jb5F7s8Zz1QIB6lj+a6410Z18+MbsiC84QuGCg0THRCXEVRWuqHdb 0uppMkzPJsdbXptRwmwA3NuOr4mKBafQERO0V5/moW0Eb6+ahVQspC8AkfA7pNOk Gc+2O92rvn6+QaTGol7NqZ/g77WwWrKspxUvP6NKstqKBbV51K5C+toXEJoHtMHI fDaKokcROO7F4IG5TAdbPn27w7jPKnyb62fsWj8sn8uAgH0BegjeOHwMVrADgNwp YRTXXexZn/Q3Jfm6u/VmB+xeQrM4wqkIVqsZLOqjbf4xsWT50UDmM5GY/l4YPmQ= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 31/45] hw/intc: Select MSI_NONBROKEN in RISC-V AIA interrupt controllers Date: Thu, 22 Dec 2022 08:40:08 +1000 Message-Id: <20221221224022.425831-32-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663282827100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng hw/pci/Kconfig says MSI_NONBROKEN should be selected by interrupt controllers regardless of how MSI is implemented. msi_nonbroken is initialized to true in both riscv_aplic_realize() and riscv_imsic_realize(). Select MSI_NONBROKEN in RISCV_APLIC and RISCV_IMSIC. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221211030829.802437-2-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/Kconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index 1d4573e803..21441d0a0c 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -72,9 +72,11 @@ config RISCV_ACLINT =20 config RISCV_APLIC bool + select MSI_NONBROKEN =20 config RISCV_IMSIC bool + select MSI_NONBROKEN =20 config SIFIVE_PLIC bool --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663522185161.59206836487454; Wed, 21 Dec 2022 14:58:42 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nO-0002MX-7N; Wed, 21 Dec 2022 17:42:42 -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 1p87nL-0002F3-Tt for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:39 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nK-0000bQ-5o for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:39 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:37 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:06 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:37 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMj1rgcz1RwtC for ; Wed, 21 Dec 2022 14:41:37 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id IarlFg4J0a2p for ; Wed, 21 Dec 2022 14:41:36 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMg2Lbrz1Rwt8; Wed, 21 Dec 2022 14:41:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662557; x=1703198557; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=QikRAc9jhPx+8qjwv2aF1TI8bV2sm7YwxCfz1ApfiCc=; b=im8bAhOu6dI2LBMP2SvIO+Najm1yxpSspaK/N72WHG7ocjMPKVc3NIfI 8lqrwpEQ1hYJqvLHJB2XG5LKUpOgok07fYHNBGCp7ZpGEWng3gcTDSk4d Mnse6uteXIkkOufNieDw1R9cxK8HX8xV3sHF+wSCL4G2gpxcK/QAHWnql jBgRViUAkFkDtIX3GW2bHGV4Q3Y7aA/P/RQYnqtWRPyn9HxjbINKsHfCX AHdk04IQTeoNgsjBLfpkdL5cNUlgTmbiWaJNdytJcyj8G+jp6cgCKDOU+ tHqE+5nswX3Cz8ZNCN/QdNq2EtbUHfInqHxUVHHH9GqnLpYDvvZom1FPh g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561420" IronPort-SDR: N8iU1YrajXH3y7VG2+Ym3Edrg2ZGUYi2MjObVmYzhwSAXwYFCM+AedimvXrqvr7dxeLyVzrl7a Z0E9PXWda7FBtfbYsyTMQobvrDztgfiukQBJ8tpKspjVcTMhNhJYUPORmIEr8FxARqvKTRcsh+ VLcNG3JYqmTTfFld7mlwKZlrjXfEO9qKjWWAUJxUC5oJwDK8dRjieXBATuDpmUjtIRjUfGAACe 0XN75aurn7Xm4AHX2qf7TQvfeaQTX5Yp8NJEeZafRfCjzAJCEyz5NV0oD3jqb9GcE24FDT0ZU/ UGQ= IronPort-SDR: Ar7EvfYlP8k9K7vz3iq3BKYAbz04liOH9mdKAHJYDLedQBBeKX7ZEXqgjm+QEw8gi7mVmcgZZk erW3DRn7LS/p1vSooCCnvNG6M81waYTxVlOzoDTFfltHAN1LNyl+lLUoMnwhL263nrN4LexMgS MsbFcCaR9Ao5rcXhcwyLPdwiJgzPVzZMZ9KgTcJK2uFFqvyZEkrTwPN4ra4eORf8QupEh2LlKd aQ75Er3T6KVkfosvJu9XZdG9wDgKc2jEoR5HSGlBAjs05BhPJ+0lcG1OVE38ccLsmxx5O6p/36 MqY= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662496; x=1674254497; bh=QikRAc9jhPx+8qjwv2 aF1TI8bV2sm7YwxCfz1ApfiCc=; b=TBY2ug0cEFg9DuK76oobOOcTSvzknBB5XT mwyeCzi7R5zRXoJ5ZWln5ZPOJc+ftaLU7GVEM9nnF1wHyJuGyMaryCsx8FCQ3hTi Msa1zo6yNd8fbLue2T1N3z1c5TM4lNOV7hqLZNH/0UPcP+f9KTLB7ItJgP21D8eR Hh5b/BiOY8Tci63duK6VEc//ENnw6VBBO5/bjnS2kG2MITWnwpChzI+9iHoCeHY3 gs1lkYVxD/eUMQagaIX5wuN99NyVgCJVEbZcVbIenVGzMzN5keJevWsdFrkn4qg5 Hmc/6/7JFHplMxPgPB8bhvRibRTosHpJsTNQONytAVbJbCLNKdyg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 32/45] hw/riscv: Fix opentitan dependency to SIFIVE_PLIC Date: Thu, 22 Dec 2022 08:40:09 +1000 Message-Id: <20221221224022.425831-33-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663524203100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng Since commit ef6310064820 ("hw/riscv: opentitan: Update to the latest build= ") the IBEX PLIC model was replaced with the SiFive PLIC model in the 'opentitan' machine but we forgot the add the dependency there. Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-3-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index 167dc4cca6..1e4b58024f 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -19,6 +19,7 @@ config MICROCHIP_PFSOC config OPENTITAN bool select IBEX + select SIFIVE_PLIC select UNIMP =20 config SHAKTI_C --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663359934857.1803437655685; Wed, 21 Dec 2022 14:55:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nO-0002Nr-Qn; Wed, 21 Dec 2022 17:42:42 -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 1p87nN-0002Gr-3A for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:41 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nL-0000Xf-7j for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:40 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:39 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:08 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:40 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMl62ncz1RwtC for ; Wed, 21 Dec 2022 14:41:39 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id UHmOqbHjF9A7 for ; Wed, 21 Dec 2022 14:41:39 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMj23VVz1Rwt8; Wed, 21 Dec 2022 14:41:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662558; x=1703198558; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Xc5MYHOMGVFtrxdnb2BOI0WjdZAtZsCNEVi1/TetPEQ=; b=A0wiU/8KytY9b6UUq3QdQgtP72Eu+oW4FFQ2GcLsPMvUFi5HgWhpEhx+ HLfJq87JTz3aLVpRTyEOi4G5dmiRjR3lvLEv2EIqJcfM1bTm0iYL7Wv7n LGulR/86ij3oBZhDtVko5WyYZOhVU37apibFM0/z9Tpm4tlTzr9h85XCT LGVQ0p7/DZ/hOMPdnVVuqzuu1eGvH/OuhE1ITcKN35rOXfzrlHj12WvOo 7UEmQ3bA3DHZtwYaXn7M03Qp1gIw8zKnk3xg/U/g3py5cGgP3F4LImRKo q1V8XqV/WOZ7C4/M418V9fzjos2NRAik8VtdoOlS06STyBDvY4RCIfvT+ w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561427" IronPort-SDR: VSaETegnRLbzvkh3o5tnS78+/q7cT9zUKR2MObWT875j+iPApnJvvVh6ac2vyhEgOpyDbw5FmK E1/XMpxsGo2Hls8O12aPABuYW6pdUg/gm+SAYG9QHLdNIIRYah22dfSArJVU7uAtCJ6VTRiR4u MW+Vi52K1V/VZ4gvm3lakiSbXMKEsmD+ThEj3m3xBOFLvH3Nt7H4LmGhRIEkKdFbnNf1BEej2r DW3sqcx3uZU4ifRFL1fEInh7hyZ2gT+mEUXfwP3icjIEansXgz4HdNJn1dDHDMeTt+8AYWGJqV myE= IronPort-SDR: oL8mJ7zzdqP5H19N6MA5kRMlcPZUOsN/ThEnyCMXOOzkvUF1Zop57ODTDH0LBFhSyQheTOdVdm EqXzX84hWdsW5PFWT20KX4BNd8ElIcRxjedEsA/1o5cRCNQnR4DGO5zz1mtnoHfsnz0BAUNhHm P7Ad1J2Qx5H0sG4uOAFevZCY/6S2fQpsd/1mrj5pDQswlzfMCR7ObW0BaMxWwQ2aOTCbDbFdwz /Uft0suUhzMVQbCRQe6cNS7iv7VNgz9lyIK4c3O6Evyn5yUlY6YZ1HfLN884tOIu7+EwSOl97t ViA= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662499; x=1674254500; bh=Xc5MYHO MGVFtrxdnb2BOI0WjdZAtZsCNEVi1/TetPEQ=; b=QiHm8R+i47cbyPTABVzeYSo Us4o0bQ3SA3tldKLQni8zq2ryuXz1BsgqiydORWO96es4tzACJr0/csQ4ea3naQ+ XE8R8pHFW0g8lp9KvG8K5FcFDbbeecTUzKxihmQGk1G3Iep81fYwabMsuO2pN4FF zQvtWq2gcKZ5TUWdVUfluwc9I2zhorRfjgxUJnCj7zucsdVtLKywofOg48fjkSxk VjHiJ9JXK1jPiSTKGvFrDplGLYeDH3jvOV2EYQ4h2c0nmhsv4FpCELqLkdEiuvn1 d1la0AOWgErI16ErM3hBTJ1qZ1IBhoma26wMTQ0ZusujIkrB8KPBtg61u60eN8g= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wilfred Mallawa Subject: [PULL v2 33/45] hw/riscv: Sort machines Kconfig options in alphabetical order Date: Thu, 22 Dec 2022 08:40:10 +1000 Message-Id: <20221221224022.425831-34-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663361230100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng SHAKTI_C machine Kconfig option was inserted in disorder. Fix it. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wilfred Mallawa Message-Id: <20221211030829.802437-4-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/riscv/Kconfig | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index 1e4b58024f..4550b3b938 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -4,6 +4,8 @@ config RISCV_NUMA config IBEX bool =20 +# RISC-V machines in alphabetical order + config MICROCHIP_PFSOC bool select CADENCE_SDHCI @@ -22,13 +24,6 @@ config OPENTITAN select SIFIVE_PLIC select UNIMP =20 -config SHAKTI_C - bool - select UNIMP - select SHAKTI_UART - select RISCV_ACLINT - select SIFIVE_PLIC - config RISCV_VIRT bool imply PCI_DEVICES @@ -50,6 +45,13 @@ config RISCV_VIRT select FW_CFG_DMA select PLATFORM_BUS =20 +config SHAKTI_C + bool + select RISCV_ACLINT + select SHAKTI_UART + select SIFIVE_PLIC + select UNIMP + config SIFIVE_E bool select RISCV_ACLINT --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663531444614.9961767479778; Wed, 21 Dec 2022 14:58:51 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87ns-00032e-2z; Wed, 21 Dec 2022 17:43:13 -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 1p87ng-0002mx-Fz for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:02 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nU-0000bf-S4 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:42:50 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:41 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:10 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:42 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMp0H5Qz1RvTr for ; Wed, 21 Dec 2022 14:41:42 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Q5iJ5yd_lmEM for ; Wed, 21 Dec 2022 14:41:41 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMl60qvz1Rwrq; Wed, 21 Dec 2022 14:41:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662568; x=1703198568; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WRx6Vvid93Q1T1mtyE/QThVhuj/pNvv5e8rHnvs+X88=; b=PGOR3o5eSyv7oncX2VfeE4y5xdQE8pER+2Iu4BwnXAp4KZqP6h8JpO2I 1wLEK+4esnP3Vr6Q6GDMZrVrDT1ZoxrKbwcKHcOAVEzRr4OKG7m+Xk+3I 7rWLHXfjTS/1QpMVWIQRr4fhOkXEAxxou0kqqknvpLr0Z9zqDP4njLrZ8 BMK0ijy34M6knIeWfgOlerpcjNy820DkwFO6XO8QE8MPLxQyg3cNkUlBf aWjmPmh23riyI9Wu1S5Aa31/N6tfjAZS2sufxtj68ilmoQ7TzVAPrmp+T C2T3KPwnIUXLZpsvcqi+BkKKoDPIaCLLAqX4fLDygW1ojJKBpGxQWso59 Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561432" IronPort-SDR: w+b+SMuGHpB67mvhoomvxuqZ/UJ0QDfTTXLnuI6P3fRROA7sP2TzQuoa1ym3yQN+hv/Rxj2h3w NCFsroOVKrnlgyPmP+6tVZa9aL6MXUybD/BrGHr6M+eiIJcLL1JCmyYV8dEnIx4sT3bjCvIFlR YSzqlf4rj6UBCvd/Fz3M3sJ0sl7S73mlgARcdZwAr1wDkPuqBGOR3v/NReEQp/m9xJjsFdQgVV 3iXK01SMT6nqqLdN4Qd77K6InNnmfxJui32IVpoKQVhcSqggktB7eNEISJcUkkvtuxEkFTEwTN lzQ= IronPort-SDR: 4FnK90paQittOio5B1GbHk9ZOd71eiAOXqN7S7IBqi1rY/F/qP/VDGNEoACrhkfL+sDPpCfdMS zLVTPCRYmQV6HZiKJtcLSeQ4nzs09WkANn9IbtB42zPyRE0WBmK5iTWRJGwLCmV8uvRzsrlELk RQe6iw7c41PZK5ZYsXEnwKnS4zQ6kj8/U5ywHED1JVEgIzLN9IsoBigqo5XCikJ+RnM7SOCPdY 7kxEM69oV1akYy0x/5R5rBsoTZJud3eD5/qzv1Ct0bLG9Rw48xmgp76B5HS/vzcB2uGA/nzdoi YP0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662501; x=1674254502; bh=WRx6Vvid93Q1T1mtyE /QThVhuj/pNvv5e8rHnvs+X88=; b=oLNrxfJwajpa2b5RCg6/jdHpfiVVCGuJGO XlLut9g6JrsKI60vvMHg8bFTH6ZgoAIQX0ozBpFXTVFrDaAeaBow6wuJCh1S0/d4 vChA8slQdN8V8EV3UjIFib3yivvziqDWHHw+CWCzyt9dtv5mKorw0nbqXLIO0fR/ Vb8L31S140tBI6DcvvL2YKVKfLoqrzTrXDhImUnBTSxxi8YKKQ5rJt8+tlpxlpK5 To14KKLT/qqk9O31LGt6tH7CGdqBAXsSr/vc0J4QA+E7I1Q9ER664081RS7e1sKg USKI+21bZ3rLVjNN2Gh+YmZvg5tQcYhZDDeTTgovA2HophYWurpw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 34/45] hw/riscv: spike: Remove misleading comments Date: Thu, 22 Dec 2022 08:40:11 +1000 Message-Id: <20221221224022.425831-35-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663532205100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng PLIC is not included in the 'spike' machine. Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-5-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/riscv/spike.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index 1e1d752c00..13946acf0d 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -8,7 +8,6 @@ * * 0) HTIF Console and Poweroff * 1) CLINT (Timer and IPI) - * 2) PLIC (Platform Level Interrupt Controller) * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16716633204290.9593286725818189; Wed, 21 Dec 2022 14:55:20 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nl-0002pb-GD; Wed, 21 Dec 2022 17:43:05 -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 1p87ni-0002nh-H4 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:02 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nW-0000bQ-Ru for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:01 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:44 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:13 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:44 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMr12krz1RvTp for ; Wed, 21 Dec 2022 14:41:44 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id YjKGtGLERa_I for ; Wed, 21 Dec 2022 14:41:43 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMp0crfz1Rwrq; Wed, 21 Dec 2022 14:41:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662570; x=1703198570; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=390eeG4V0e1ilBaF3agJQhKFOgqHLzF2xG/939DvkZw=; b=mXe2MTTxX36TkcuYR7ku7bttjWMycqV/6J0+I8QVD81+wErBeUOIB0aj K/3uHQrKiCBYsvuIjWS7o3MsNsVE2IasGj2ZZRTB0Ym9OXq04+pjVPJnp eLxnauotZIBLmlHoR5H5tqIezg93tUql3w2aZpJfU7VKwd/goZGWALqmo rwkEIGt1jjtQroGV6ka64dy/uFz22gFCaZhKDdq4NUCTSKgDzPU3FA3dL TYy5FEdHZDB1OR4ivV05DxHerl5KYMjX3jNgVlS3r51qyofCFFf1f094Y Ro2xu8VFJneeUSiLv/hkEQ7b6Z3xMVWqUPCHba3qACcm1Q35e0KMOuk/4 g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561436" IronPort-SDR: IPlRRm/8qvOCJy5LSpK8L0A8pQLhkpGzOVyDuV1jaPcfnoFZd/JJtyAFw16F7xcM1pA5vUWZVA 742ZuMm9Zp+OCU3S2mtRBPR5U6hl5EB0hDrmvs4szEl33VeoTrKgBWerW45x/uy1WyZnKG4LSu 0k6pIHi2hagbduaRjlpE/5rrEwKmWHlluNT3kOZ3iywJ0byx4T/kxKRpqw4e4ggaYTbDcEJdWd jEEPzZ+drWu9qXdTiSTsMDnw8/w9jUpWwb/oMljQW6iVJr72NxXD9rRAa7qLTz4UunDw35V+A5 W14= IronPort-SDR: QaQkEObCQOrl4AuwRdaGzFT08PNwzVorCQJeGpfxiKvHYG+6Fvz5Xa3nREgkBlKR2P4YHi1L49 ibagSj1sc3IG4xAoGQPaYwJiHhbDgGcHW147Li5zqghT2BJvsKKN13qG/Dijh0Twawxj9YvY99 IXCVmvlSQiPTCuzDoscGUsBdjtuNSHkMlnQlNLHhbML9kkyg+bwsaogICaHsjEectTMJCKJ7ik zD5SE3VGcKQ9ida13mEsKFhRaAT0eYzVU1wpb1kmw85qo0Mnk+Skpd0XzMwMjsgPYCaM//oXUv ugA= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662503; x=1674254504; bh=390eeG4V0e1ilBaF3a gJQhKFOgqHLzF2xG/939DvkZw=; b=WtiDRZr4Up1ZdEnUYOQk4XtpznEqJfTsb3 ChvWoj1EzQZ/knKAbQxd6nqV4mPCir0UGva7BY0Vv8DHlG9uglIVJVAKtAa00PaA 0Xw1MxgzXYQrrtksuOuU/kHajYGrzviTxInGQpUYmjFwWZ8Cb8LrwHOxCHtOzDSK DsgkIHX8zPSR/dm27LuUh/i99kA5vEHJDh59w/+BReXGSYx1Hvk0JjjxYo/DpN0z 4/fr9LBg0dNR0XVIR+Dw7I4wj3GAstl3jynBu55WXlhtKsCv9LM3Puh6BfgVS9t1 SO1GKOUowo99nrjfmI9KguoXtBD+jHHQx1VUEABucH0VwwRHq/oA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 35/45] hw/intc: sifive_plic: Drop PLICMode_H Date: Thu, 22 Dec 2022 08:40:12 +1000 Message-Id: <20221221224022.425831-36-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663320994100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng H-mode has been removed since priv spec 1.10. Drop it. Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-6-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- include/hw/intc/sifive_plic.h | 1 - hw/intc/sifive_plic.c | 1 - 2 files changed, 2 deletions(-) diff --git a/include/hw/intc/sifive_plic.h b/include/hw/intc/sifive_plic.h index 134cf39a96..d3f45ec248 100644 --- a/include/hw/intc/sifive_plic.h +++ b/include/hw/intc/sifive_plic.h @@ -33,7 +33,6 @@ DECLARE_INSTANCE_CHECKER(SiFivePLICState, SIFIVE_PLIC, typedef enum PLICMode { PLICMode_U, PLICMode_S, - PLICMode_H, PLICMode_M } PLICMode; =20 diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 0c7696520d..936dcf74bc 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -42,7 +42,6 @@ static PLICMode char_to_mode(char c) switch (c) { case 'U': return PLICMode_U; case 'S': return PLICMode_S; - case 'H': return PLICMode_H; case 'M': return PLICMode_M; default: error_report("plic: invalid mode '%c'", c); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663457850558.8154730024829; Wed, 21 Dec 2022 14:57:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nu-00036f-11; Wed, 21 Dec 2022 17:43:14 -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 1p87ni-0002ni-Fs for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:02 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nX-0000Xf-CJ for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:01 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:45 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:14 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:46 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMs691bz1RvTr for ; Wed, 21 Dec 2022 14:41:45 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5KkKAlqKMP67 for ; Wed, 21 Dec 2022 14:41:45 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMr1gJqz1RwtC; Wed, 21 Dec 2022 14:41:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662571; x=1703198571; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FTpM9wSisWlcMO9trrZZ4PMyQatiOo+GCvuYX47JsM8=; b=GPSF/ZbI5gaJ3b8ofjNaMXZYU1cV9ZbaTUFVdssOZOB9ajJCTyPVX10X Y7YsXh5EfYcYTegb56nGEnz6iPYHtCaaMvSoxJxiq50dHvlpocoWp8nRb C+XLXEisSJijvE/T+OVHE0ieB62/dwSUoUPHBlKiie8wsjvCDA7c5O6gU Z2x3LR45zzrtXiFbr2F9Uu7gGUli7pb06sBX7rLZ74iePa7gwHgiD4mVi wR+QQdzm2rCZuygoqXDGc2+DvAatezDsGGRwV+div2A7K4onCnxLFzokJ RdDh1rXaVyxi2unZtm3szor/VZrlMq917rPnHu5nmE1AalkeVy+abQ9e+ g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561440" IronPort-SDR: Sn9qk+fPAvUq1LaonfJQBYZ9bWM+wW0aOEiZ3GgGH5J/7CLoZP3zCJWpUQ5vj4ok4pwVgZdWRa cDV4/yXOfglXLnTWSiTZun58pAw1jGF1E7XwEJ54Pse0q2vgeI3+ZUEM7gdDngnGOoasN10Mq7 yE0x2wNqy7f/u36Z1GQPRxyRVSf0XzvCS5C/bCV87MP4OZgRSpaEtFofJJxIUzHLsWXKl8cWsa rd/phG2Ahs7b3N05E9+bvjNjYSpuMaZgk3tbmzkS6ClNZZksTk//mhFIX0EoId+tS2XYmKL00e J2Y= IronPort-SDR: 8rA94bQ3qvXg04GEuqKB75iUP1tpV6i65XKYNxv7C5E0bvHNk2iAEJjbpVHplXXQ+ogkiPLCGa RG+UDSllPZU6DhYKpWK6WPe61/hFVMctSHe5TGad400XO3ZM6M4tV+sU0OvB2+ol1RPXkD4uwz HoblGWSU2gWsR8syHes4xlaUzHZDTd0j6lPw1KfE8RtSKka+XfwKTFbcRevbm60slpORf7vgOz rl7fmZNeraBqDAOwr8hmh9+zFUNSuitJA4zYDadMAEKW6SfN7J1nYmGXxNyzypUUPCra18fN2m guw= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662505; x=1674254506; bh=FTpM9wSisWlcMO9trr ZZ4PMyQatiOo+GCvuYX47JsM8=; b=kYtGfFBYvzqidI5zbu/WCczRObfCrL3IkS PlLok71VcQD2LeuLcbonBWA4ezi+TBKAHyEYHmxIIJj5CsSoFfTpUpBesWRD1tjY 3DwdyZvg0NBAFJvRWZlETxY0pUvtH9WmbkDa80yQCxVniaVZvRv2Ku8Xya+TyCOd VwswABz5St9fZ4kir9PaxVZ9FBbE5gmdJFQZdEhguxOlFhCAhv3aTDkqIsQo6W3P sklHnrTWW8x7MNHqEnUZm9Bjc6ExoJQSahe7RwoeoGbgxcYtLZs4Mypgw9480ns0 dwpjvis0ShKssaLUVqClG41XkwAGQ9lJ8ukFvWH67LFY2vl+PNUg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 36/45] hw/intc: sifive_plic: Improve robustness of the PLIC config parser Date: Thu, 22 Dec 2022 08:40:13 +1000 Message-Id: <20221221224022.425831-37-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663459936100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng At present the PLIC config parser can only handle legal config string like "MS,MS". However if a config string like ",MS,MS,,MS,MS,," is given the parser won't get the correct configuration. This commit improves the config parser to make it more robust. Signed-off-by: Bin Meng Acked-by: Alistair Francis Message-Id: <20221211030829.802437-7-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 936dcf74bc..c9af94a888 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -290,7 +290,7 @@ static void sifive_plic_reset(DeviceState *dev) */ static void parse_hart_config(SiFivePLICState *plic) { - int addrid, hartid, modes; + int addrid, hartid, modes, m; const char *p; char c; =20 @@ -299,11 +299,13 @@ static void parse_hart_config(SiFivePLICState *plic) p =3D plic->hart_config; while ((c =3D *p++)) { if (c =3D=3D ',') { - addrid +=3D ctpop8(modes); - modes =3D 0; - hartid++; + if (modes) { + addrid +=3D ctpop8(modes); + hartid++; + modes =3D 0; + } } else { - int m =3D 1 << char_to_mode(c); + m =3D 1 << char_to_mode(c); if (modes =3D=3D (modes | m)) { error_report("plic: duplicate mode '%c' in config: %s", c, plic->hart_config); @@ -314,8 +316,9 @@ static void parse_hart_config(SiFivePLICState *plic) } if (modes) { addrid +=3D ctpop8(modes); + hartid++; + modes =3D 0; } - hartid++; =20 plic->num_addrs =3D addrid; plic->num_harts =3D hartid; @@ -326,11 +329,16 @@ static void parse_hart_config(SiFivePLICState *plic) p =3D plic->hart_config; while ((c =3D *p++)) { if (c =3D=3D ',') { - hartid++; + if (modes) { + hartid++; + modes =3D 0; + } } else { + m =3D char_to_mode(c); plic->addr_config[addrid].addrid =3D addrid; plic->addr_config[addrid].hartid =3D hartid; - plic->addr_config[addrid].mode =3D char_to_mode(c); + plic->addr_config[addrid].mode =3D m; + modes |=3D (1 << m); addrid++; } } --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167166333752294.03400817366787; Wed, 21 Dec 2022 14:55:37 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87nv-00037M-81; Wed, 21 Dec 2022 17:43:15 -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 1p87nt-00035s-8F for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:13 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nq-0000bf-EG for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:12 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:47 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:16 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:48 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMw0DXgz1RwqL for ; Wed, 21 Dec 2022 14:41:48 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id XY4C-0-NKSF4 for ; Wed, 21 Dec 2022 14:41:47 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMs6GcZz1Rwrq; Wed, 21 Dec 2022 14:41:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662590; x=1703198590; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nlKcnGFnnezn/uyVuR1UsLHc6jl6EbJxpvVfxGJcUTE=; b=ruXEuZD6E6/9rj+wJu+cWxbLdVYxh5epyIvX0dXdWDbnFI4V98iHG+EK aZEhQ5o5SQ5Ig77C0RmQNQZlCbwc4njFPH9W210Og3Adn8xSavjsF45FG H22KZrwUIMP7lgMDzt5rKv2eo0giIlDwC9Q2XrnHy5CzKRn8JH2VcF+DH 5jNKMjdwhnM5tC04nzCq4L/P59OqOoooedk0YAEAiEjB+ZH9fiIBd4WlG rSPZMudfOhOTl5Ps7R5uKZIG4/OgAZF/pbn67+SIIJYM0JR+8K6Y4KFKi gLa5LH+8RjPZx1hLHu6DFUE0ga30XE/k9C0G6uCGH1gpwjLec5Kj83GhK g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561444" IronPort-SDR: +K21h8SAwPYFHxD0tCQYkoBpoVXKLSsK07pLWiWuEsTm3b6wu0fnDvNNCNLX7q+ag0UDlk7Azm mw5cY6i9CCkeK7wahUdkaFw+Qne2l+nDBcEACoxxEpIvJmmGo1aG6Ep8dc4V/mS3QfcZrsXqyC ++6CeboFCt7Lgg2qp5k9uFXClvHA/q5iv5Xul17fpp9jCCCKP5Dnjk1gq83Ehq824Kb6x76CqR 5cvEjtm1OaP6ruDEk7/G1x1q99f2PFdamvGnvgo03+otJyuv0nFgH4QUZoiCBbUt01k+PKLgSi 9Ho= IronPort-SDR: IqohX79GpIJiNCom6ULZGx+XewGd/XBcGZpcHXjacZsWTFbqxOTLoZWLrCBUbtKTxtWjaV3tCd wlSrSM9TkZVGYrB77MEkCrzmG70WdrxsJh/KPa+Z8CYspDPwAUIozmFyXiKgsyIMkUbqa1Jq+q trCF8Hgq6VvXrkojB9CZjG2Kl7/HyT5gvtayYFlFCqU0kwTzlIWhtbWA19K8vyadatIyTYakLv UOYNAtrb3/nLcJq6LLkTT1HlWaq8qc0IFWHbP1zUa+CDseslYmAktTkYGX50IB9QQPfPGQO/FY lCg= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:content-type :mime-version:references:in-reply-to:x-mailer:message-id:date :subject:to:from; s=dkim; t=1671662507; x=1674254508; bh=nlKcnGF nnezn/uyVuR1UsLHc6jl6EbJxpvVfxGJcUTE=; b=ZwaibLiwJjqLT++aaacvqhX SsQl6DIjTtMqECqRY+b+ei+AV1uNhIcGJUbaeiyU8nfTzAcvowMz7Vi/k0R6XgJS eitg3EK52rY+OtnALPgygIYAqlk43XM9a8z9XE8Hj401TBGHpY/Bbv9hvW8bu08d 6sW2Nb2ZgEb78GpocyRFIxeUl1Prb7HymqqdsnltHlyAA4HAt7vvig1npDsus6np 7Q2GY1DAGD0yEqkQgRwoaOOJ6cRH12+BzUndTZwg7wvySUKJjP74LGYby7+Iz/b6 9xLvTHRCqtkcW5BCfSZxCIqtOQLKtA3Sf547NOSizaFxfLxyxLdEkwlG7n5qR2Q= = X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL v2 37/45] hw/intc: sifive_plic: Use error_setg() to propagate the error up via errp in sifive_plic_realize() Date: Thu, 22 Dec 2022 08:40:14 +1000 Message-Id: <20221221224022.425831-38-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663339112100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng The realize() callback has an errp for us to propagate the error up. While we are here, correct the wrong multi-line comment format. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20221211030829.802437-8-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index c9af94a888..9cb4c6d6d4 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -379,7 +379,8 @@ static void sifive_plic_realize(DeviceState *dev, Error= **errp) s->m_external_irqs =3D g_malloc(sizeof(qemu_irq) * s->num_harts); qdev_init_gpio_out(dev, s->m_external_irqs, s->num_harts); =20 - /* We can't allow the supervisor to control SEIP as this would allow t= he + /* + * We can't allow the supervisor to control SEIP as this would allow t= he * supervisor to clear a pending external interrupt which will result = in * lost a interrupt in the case a PLIC is attached. The SEIP bit must = be * hardware controlled when a PLIC is attached. @@ -387,8 +388,8 @@ static void sifive_plic_realize(DeviceState *dev, Error= **errp) for (i =3D 0; i < s->num_harts; i++) { RISCVCPU *cpu =3D RISCV_CPU(qemu_get_cpu(s->hartid_base + i)); if (riscv_cpu_claim_interrupts(cpu, MIP_SEIP) < 0) { - error_report("SEIP already claimed"); - exit(1); + error_setg(errp, "SEIP already claimed"); + return; } } =20 --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663383709897.6998646584896; Wed, 21 Dec 2022 14:56:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87ny-0003Ba-J1; Wed, 21 Dec 2022 17:43:22 -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 1p87nv-00039u-7x for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:15 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nt-0000bQ-EK for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:14 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:49 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:18 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:50 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMx43qMz1RvLy for ; Wed, 21 Dec 2022 14:41:49 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id iJ88hD72zIAK for ; Wed, 21 Dec 2022 14:41:49 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMw0PpRz1RwtC; Wed, 21 Dec 2022 14:41:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662593; x=1703198593; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=sj/y8vrFJBlbuclXKhQf/IHAdoHqQPxC6w+uEVXB90w=; b=GJ8PDHVcyktsEAX7V/vJb9bXMWRMUxLrpE9XnbXNzLNfTGJjIy8QjWLu MMEZMYiWB47/2IXgAuYfazeXxg0FXG+2D7bKRqn0uH1jrfbk6CDq5qeK9 7ezRU+jj/xZe+O5is97AVSizl/hMzXeKPKmyEz92Hy+dIoTR8Qf97I9ol /RQxHtcYU4UuGJwcKkwt2IvrAbD7iRA5Gi9ElpKIV+h+VxOU7dcQN59AV YGMYk8Jj3c+0PjY9uY4gX3ufXCQQwCSBdtHDGAJfoM0dFVkeGD6ui+x1l 1i6wMvnLjHY1YJGOkWCxf/wqN8wlbtmNTUAsk8J+Qr8OtZvXLIYJWybV/ A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561447" IronPort-SDR: HtPITfXbIM14kBeK4+egcymg4u+m1x2Ahqj9/jMrridTrcFFOkoqgl6cl4h/xQHCGytZ97ntV8 PCOJ4SFjlFmu7WsaabZ2xQZVrRT9DUWCejd4CEfZJKwbRuyxSBGmKGDoC90wsyCaPNtaRpJ3uH Ft8SHEf0iGfp+zBHSNd1l/rvHr2YQ4hEOkne85IpHlY/iVqGVWkRFPDp02Y+GgKsmH4QF9o+lm UZjyiQxnWR23ZWnYkJARwrX8QEzKRwiAxdpVbNyqCtEmbqrVA3HbrVkK58RDnPXHBdPkSGoaaK gCo= IronPort-SDR: inNsba2KS46sKXSq/z6wiRsxjshQrzmkYjWMqn6JSI85a+tqqWZsummXTAhdAJvkoAgZBboAXi YR5Hu6h2uoF9u2dPZebDx7ayySeBTHtTFGs46VHH3X7hNpYezepHs1xMEtyVUabTo0WdWvmwOZ kutUPGsLqXusYRN+rQ6rq1Xs9YdlIk33ph5l9ZEX4+asKBMTlI9nXD5iptXJiAm2UqCdeTez29 /CMkXtK7whLgmfLUyyiDjYiQafJqJD2RiJ7p3YZksufwdxAHBhwNrmYDFRIIA7sCAYkSjUi7Xp OuY= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662509; x=1674254510; bh=sj/y8vrFJBlbuclXKh Qf/IHAdoHqQPxC6w+uEVXB90w=; b=V+DaDnDF7O6JmMuohY6WywepxnblUy+/cb yXjPu8do+AsATVJnnowRip4T3P/KHct4G9mszJ1nxEFt9mCTmgJpKLWxcyrjVJIK 3+zc+VnKoLhNm+qM/j0HnGO5/CmEuqzPfx/DCWKwyfH7pcCO3HmiKa+AXh8OZpI0 ZDssgHstEVi16D7V8IPZiEtC81sQybLJDePIGxjb59mzVtjIIrWFptq5u8K3U7kE KI4m9ucklZ60av5RmMMnGxJNsAqGRcv2kqrnHIRmw9Vv3NUNdG+wsp9EqY+gw5wv V9BdvxdExCupIublm2O7mQEIIZgwgEawl8IZJUz/JQi2FLx19evQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 38/45] hw/intc: sifive_plic: Update "num-sources" property default value Date: Thu, 22 Dec 2022 08:40:15 +1000 Message-Id: <20221221224022.425831-39-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663387125100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng At present the default value of "num-sources" property is zero, which does not make a lot of sense, as in sifive_plic_realize() we see s->bitfield_words is calculated by: s->bitfield_words =3D (s->num_sources + 31) >> 5; if the we don't configure "num-sources" property its default value zero makes s->bitfield_words zero too, which isn't true because interrupt source 0 still occupies one word. Let's change the default value to 1 meaning that only interrupt source 0 is supported by default and a sanity check in realize(). While we are here, add a comment to describe the exact meaning of this property that the number should include interrupt source 0. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-9-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 9cb4c6d6d4..1edeb1e1ed 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -363,6 +363,11 @@ static void sifive_plic_realize(DeviceState *dev, Erro= r **errp) =20 parse_hart_config(s); =20 + if (!s->num_sources) { + error_setg(errp, "plic: invalid number of interrupt sources"); + return; + } + s->bitfield_words =3D (s->num_sources + 31) >> 5; s->num_enables =3D s->bitfield_words * s->num_addrs; s->source_priority =3D g_new0(uint32_t, s->num_sources); @@ -420,7 +425,8 @@ static const VMStateDescription vmstate_sifive_plic =3D= { static Property sifive_plic_properties[] =3D { DEFINE_PROP_STRING("hart-config", SiFivePLICState, hart_config), DEFINE_PROP_UINT32("hartid-base", SiFivePLICState, hartid_base, 0), - DEFINE_PROP_UINT32("num-sources", SiFivePLICState, num_sources, 0), + /* number of interrupt sources including interrupt source 0 */ + DEFINE_PROP_UINT32("num-sources", SiFivePLICState, num_sources, 1), DEFINE_PROP_UINT32("num-priorities", SiFivePLICState, num_priorities, = 0), DEFINE_PROP_UINT32("priority-base", SiFivePLICState, priority_base, 0), DEFINE_PROP_UINT32("pending-base", SiFivePLICState, pending_base, 0), --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 167166331234480.0759554758697; Wed, 21 Dec 2022 14:55:12 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87o4-0003DX-5X; Wed, 21 Dec 2022 17:43: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 1p87nv-0003AW-Nd for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:15 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87nt-0000Xf-ET for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:15 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:51 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:20 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:52 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpMz6yNMz1RvTr for ; Wed, 21 Dec 2022 14:41:51 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 6sl2JfNxT2T6 for ; Wed, 21 Dec 2022 14:41:51 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMx4LS2z1Rwrq; Wed, 21 Dec 2022 14:41:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662593; x=1703198593; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=3esrjL+0ACOe7jvODgUx8nE+o14tGGAQ9W+P0DFAYvY=; b=FPsBryOqKnUh+/NObzkrg2mRwFeBDLD+oVw7V1iz7mJlCPCVmcESBCLw ShXCYqZizD+QhOhUx8Unt4hA0rC55tr0kbL9uFjYb8DT+zc32GZ7X07qL gJQkjAm4I+CXZP00qNz5hFaiRqiQyhq1ufnOwHOad+eye8IW0/2G8ttV6 mOF4fZH+ecHdf+CWzhGJw1jz4VOpnX9lSJNoUNn+tEaH7fNYZaWy0dWeO vtwQgUyZCUdrTase3XT53r/IO7z6xqsMsu1W3IGmNGp15CAQZmkXLzXRW P6doIrBdOOs3DKfPjE4JKnSWhrKrgFvmIJuGgvdi8/ufO71VLY0z9GKvh Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561453" IronPort-SDR: uhgVkPp2hDIshxLfHiNFw36fXnb4wP31DuECJGlI6Dx3Qnny5g+LuARReaSMEla4QDmvnXV3KI msU7+8+ivjfHYeLh3rixr20RSXXSEU/LH3XuYlzRw8avzHNjgxsdDHOqw9HXn11Lxp9zZxP9FB piJF2yGhxqf3gXV9TNOILlPT/A7ymX0/3G06gLtBkkxBmYdgax5beXEW6WJWaZTd2OTAZ27iBo rD3JjOG/bxIoSyH5L9NbLFQTs3p90at8D80tSeo7MBgbMGHhUt/fViZnpdjVQsPErCiJd1ZiSx IsM= IronPort-SDR: bxvxhxbkCUtBnGiIkm7NjaMSsPUyoaru+B20p2FN3fNtuPg87SYrXyGacR5mJ416BioxSCdurH h2tEIcRZOfeAv6rW77q4aod3V++DSy3s0zhao+SlcVRmE+ZWq4gfoTc69aBS7SDo2ACH7KfZAc YO3g/sAbPhJLrIdLadxjtiOn+aBJoKw0xJOtEQv0KEY0VocKjQfwPmYAN6uaTgiXU5IfNncaOM CAsrcHKxBHntPmO51oFbZ9gQW8uoJk6If/CALChQQHwh6W6inUUABlsNNftAf1dhWilZtIB8YY lP8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662511; x=1674254512; bh=3esrjL+0ACOe7jvODg Ux8nE+o14tGGAQ9W+P0DFAYvY=; b=QyQnuu7ZAu2njD+43lwoOfw+SViImCMg9V D1n5phA6OZFRsvRHKG0RmZ49MwYzBrtWyseWmeV0LR7PwQ904da1Fq6MNFjkCzQM pNVWjCqAMbX3tAh95B9flOU+0zV7u59bTWKZ3Yb+fV5McY+ZbVeBAkw0wF50YsgF ht8F6rTq4dthXNvL50rOEapz//X3r1oipSOzLhCueBvtST+uv9ll0RlnaQEnzblZ 6h5WsmsEasCbRLNvQ95vgUbJA4gXzxRPj1g1e6vTsnlT4Uebp1saSol0ysFvEZNl ER5s6ucdlgCBl13IPRShBDS8Kz5E46tREdnPK9nDINq26aZAZ5sQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis , Conor Dooley Subject: [PULL v2 39/45] hw/riscv: microchip_pfsoc: Fix the number of interrupt sources of PLIC Date: Thu, 22 Dec 2022 08:40:16 +1000 Message-Id: <20221221224022.425831-40-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663312962100001 Content-Type: text/plain; charset="utf-8" From: Bin Meng Per chapter 6.5.2 in [1], the number of interupt sources including interrupt source 0 should be 187. [1] PolarFire SoC MSS TRM: https://ww1.microchip.com/downloads/aemDocuments/documents/FPGA/ProductDocu= ments/ReferenceManuals/PolarFire_SoC_FPGA_MSS_Technical_Reference_Manual_VC= .pdf Fixes: 56f6e31e7b7e ("hw/riscv: Initial support for Microchip PolarFire SoC= Icicle Kit board") Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Reviewed-by: Conor Dooley Message-Id: <20221211030829.802437-10-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- include/hw/riscv/microchip_pfsoc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/hw/riscv/microchip_pfsoc.h b/include/hw/riscv/microchi= p_pfsoc.h index 69a686b54a..577efad0c4 100644 --- a/include/hw/riscv/microchip_pfsoc.h +++ b/include/hw/riscv/microchip_pfsoc.h @@ -153,7 +153,7 @@ enum { #define MICROCHIP_PFSOC_MANAGEMENT_CPU_COUNT 1 #define MICROCHIP_PFSOC_COMPUTE_CPU_COUNT 4 =20 -#define MICROCHIP_PFSOC_PLIC_NUM_SOURCES 185 +#define MICROCHIP_PFSOC_PLIC_NUM_SOURCES 187 #define MICROCHIP_PFSOC_PLIC_NUM_PRIORITIES 7 #define MICROCHIP_PFSOC_PLIC_PRIORITY_BASE 0x04 #define MICROCHIP_PFSOC_PLIC_PENDING_BASE 0x1000 --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663409900423.1154834494888; Wed, 21 Dec 2022 14:56:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oE-0003MV-4h; Wed, 21 Dec 2022 17:43:34 -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 1p87o5-0003FG-VE for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:26 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87o3-0000bf-Kw for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:25 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:54 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:23 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:55 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpN25C70z1RvTr for ; Wed, 21 Dec 2022 14:41:54 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id kE8tCdMBm5oM for ; Wed, 21 Dec 2022 14:41:54 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpMz5n08z1RvLy; Wed, 21 Dec 2022 14:41:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662603; x=1703198603; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RignxIYbKCPHxUnIhIqB+bDCTC2InNMQAhk2vcktKns=; b=dtA6JLN+puNEw1iyGv5Sfhl7C51FMh8re3LD9aX0Z0D/hUs93nHWEWkE yz9SXdr6KJuNnUhSKJlsXenIYruMZtwFeRcZNLfiun+U0ZNbCApYxbHtg 9nE1TfgIc2j+sfqQDNwgXcp33oWyu6+wDbM8HxuBYQG1hCY++MhNVe28s hp/5q02gbrjl6GihdYGf8d8aOsDOCJZbHqQQtqXJfrpgUZiPcZ/QLRC97 u0HJ5JgQxiMgqDIxUZh32hY3676RSOGsvp0uCxUG/xdiY+2MLNnhqiDFR K2ZWtSQozzPJCIXx4PVQym++uJ2smpPPtW46vrZrJu3opnry1ZHrm2jht Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561463" IronPort-SDR: yc7WDHUB8mYcjBvl/buc0nQttWwpYg26EUBTD7Kvl+QRvqpZJGhhEgbnt1+6Y92XhjEFVuSSpi DdSzWlbCwocK0WLmY0qvuq+5kvPfL6pD/objkmUFV+NwYLwFboZyRGP9lRVzDPu1L1wzPvFb8K tR5qEwuGfsqfib7RO1kZmFkNOBylLvwfhh7DTu/+GiDsKQ6t0RUfOvcHj3igIorf+/lCJJsEl4 hVd3vGO31qLuKJkRMl+QRcHDmI1ko/MJv49g1iIlAz/SxpMJjQdS3bbUqtbDB0ooa6j7TrPCdY wx0= IronPort-SDR: 3BmY6GyVImqwGwBAsGMl+nWsB6OWhjLrBOXWj+IjvVQxr3XnEPDMh2NnP1GjAM7Nwzx4qWUEux RgyuoyUBkKnkFAOFmZwj2MoMXmCI13ofpeBg5ROCz17alARdfxxsRQk6Lb+fEjzCFHTYdAmfPL CaxsgIINUuSeo4BeBzZhoFjC6ih39gfb2uCsJ11if1BbZ3XBC0PbwRPFUsY4pfhl7mH5Lb380w xBD/WzbXbdH1YTROe5+VEXWGwzSUNPu+qWDd3dUUWMY93c/6vbY7+cmFSK+Qh7LnIDmNthMe0b lcM= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662514; x=1674254515; bh=RignxIYbKCPHxUnIhI qB+bDCTC2InNMQAhk2vcktKns=; b=nYFLLVdk44ihmkKisefJU4LOOibfLaCvZZ hJaDu3ma5BeVezzVAA/8X6WERvtaKItBROyGrVuvawiXoXlxxMTElCTmJ0Dg6Cr2 z9NT2nPeovpFFuYhMPueP6Q79+eDQDZbEiJabqGvhQk9A1ZkIxAsbLt77njKYq32 EnR+EW6cEi9PRd16CyP3zLs7BwPHdVEUDPduZk5RdvKxG49azKogYXvcs/XsjYea 4WbflW3uA8N+IRGzNnGxjUV37sM34ar/faIxay7Bgzfy9096QI5JuvuhC7w4QG/e Yw89zL8n+GaU9tfCXy3Gj8x22WZSbBLVn7edUrpeXJPS4mr9zJyw== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 40/45] hw/riscv: sifive_e: Fix the number of interrupt sources of PLIC Date: Thu, 22 Dec 2022 08:40:17 +1000 Message-Id: <20221221224022.425831-41-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663411712100006 Content-Type: text/plain; charset="utf-8" From: Bin Meng Per chapter 10 in Freedom E310 manuals [1][2][3], E310 G002 and G003 supports 52 interrupt sources while G000 supports 51 interrupt sources. We use the value of G002 and G003, so it is 53 (including source 0). [1] G000 manual: https://sifive.cdn.prismic.io/sifive/4faf3e34-4a42-4c2f-be9e-c77baa4928c7_f= e310-g000-manual-v3p2.pdf [2] G002 manual: https://sifive.cdn.prismic.io/sifive/034760b5-ac6a-4b1c-911c-f4148bb2c4a5_f= e310-g002-v1p5.pdf [3] G003 manual: https://sifive.cdn.prismic.io/sifive/3af39c59-6498-471e-9dab-5355a0d539eb_f= e310-g003-manual.pdf Fixes: eb637edb1241 ("SiFive Freedom E Series RISC-V Machine") Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-11-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- include/hw/riscv/sifive_e.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/hw/riscv/sifive_e.h b/include/hw/riscv/sifive_e.h index d738745925..9e58247fd8 100644 --- a/include/hw/riscv/sifive_e.h +++ b/include/hw/riscv/sifive_e.h @@ -82,7 +82,12 @@ enum { }; =20 #define SIFIVE_E_PLIC_HART_CONFIG "M" -#define SIFIVE_E_PLIC_NUM_SOURCES 127 +/* + * Freedom E310 G002 and G003 supports 52 interrupt sources while + * Freedom E310 G000 supports 51 interrupt sources. We use the value + * of G002 and G003, so it is 53 (including interrupt source 0). + */ +#define SIFIVE_E_PLIC_NUM_SOURCES 53 #define SIFIVE_E_PLIC_NUM_PRIORITIES 7 #define SIFIVE_E_PLIC_PRIORITY_BASE 0x04 #define SIFIVE_E_PLIC_PENDING_BASE 0x1000 --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663147456781.3270420043456; Wed, 21 Dec 2022 14:52:27 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oF-0003O3-16; Wed, 21 Dec 2022 17:43:35 -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 1p87o7-0003Fc-4N for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:27 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87o5-0000bQ-HG for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:26 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:57 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:26 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:41:58 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpN528ssz1RwqL for ; Wed, 21 Dec 2022 14:41:57 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 5AChHbwDp8uT for ; Wed, 21 Dec 2022 14:41:56 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpN24z81z1RvTp; Wed, 21 Dec 2022 14:41:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662605; x=1703198605; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=B4bsb7C+WvHwOgjHhyitFcg8hTn062ir9rkIHz/V44c=; b=hQHNG4dTMbDdgQ6IunGiNACkZ2X9jtE5iuRJ38l0BSVsxVzaaWr9Z54Y h+Y8wCrmUa/DuPj14szM3/4XBxK87LyQtsT4e9vK+DG5sZiyWJFYlOiAF COv1Isr7kS4od0fuAPCVT5V56sp1jlDy4+Pu8j6fDceELqty3h67ql79H cs/gXfrxqe/735GZP8K3xqv93c/f2vwtl6XW7vCGbWd7hONnkbx2AsQt1 da5I9yHfiHMdSAEpFvtuxvzDxjSmqmJb27m/5X0MXQDutpgghY5Pf1wnI 0SAtY/R0NmUctxtPkNsHgTqy1878+X1X0Ak7oENIBszbqFxpjgcMTT4Lg w==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561469" IronPort-SDR: bZ5TWgYzh85rHN8geTbgJjS3ye/2rj7LXeKgVxwFdf/DLfG13vlYYK0K4ldbQqo3mgx2TVqZAI PKxlPBpfiRqhcDq5zVkL7qdc69jV+Ny++PLFkc/LWN3rO6Py6nUpekH5IRCuhFCMwvQGP/e0lc kGgAT3dxETDBvaH15jQ/xP7BKYa7zQ+UHNzAp7M2+0bVBn49vWjTeDR60fmcx9J/BcJ6fqKWMT 9Yu/yzJLuT5yVv1qoHhCXaD3xj1R69qk3M1xoNTjj60r5fsGYhgmmAAoPI0iy3eeB8QZFE4Lxc Il4= IronPort-SDR: QZl4uUWuVMyKqFpn++23nptAMNwSvKc8ISP+ekuyHKZWjTzEsLVCmKijSMepIejbpuR1RJJjFH JCjwWdQkRM2I2mNwtolBt5w/rH3up7rQ2+CGsmYvSiqNAQ0zI3wEA3X9jtfaS6cTkMVrdVO0KZ G7segMwJBj8C2Nl2iysjuPtDv9baH4Xwp6xChCOVCepmdhXoqEZyV/TAN0GHjdrQW8TLktE4z4 qhK7iHi20wyUoV+hk4jo2PZci9Vbj3bp2HlpDw1UV80hMIoFu7cKf/r3R5hODcDKmE3bYG+WFz M04= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662516; x=1674254517; bh=B4bsb7C+WvHwOgjHhy itFcg8hTn062ir9rkIHz/V44c=; b=lmzC9D683hnOOWfaS2qDvhr2fCMxjAF+2/ bz5IW8zB0eUIcV+SIeYDIwxwAvtVKti0RyS5fnxlqjqf09MPuf6e0ntBzCpKjvVk zY0RqmfI6lkPE3X4x3XtEBm32SUiWCJqqY62TSn3xlOkKw+gk1BuxRqIY0L4gkVH 6DwK5TlzAU1vsf3dTFhXeGw/2XjLFVjpV0Qn6z53QMm9PxLn/OfHw0ZsYHh9bo1z r0bdjdL5BBgj38iiyTroK8+d2RfUm5EdpBZMp8d1pZN8j9yZZ/5tvmKixLzgCRSx lHeQMDhjEqmgQsA4mTZabdyOZWYvxQTplT8dcrZBcZggWCicl+hQ== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 41/45] hw/riscv: sifive_u: Avoid using magic number for "riscv, ndev" Date: Thu, 22 Dec 2022 08:40:18 +1000 Message-Id: <20221221224022.425831-42-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663148296100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng At present magic number is used to create "riscv,ndev" property in the dtb. Let's use the macro SIFIVE_U_PLIC_NUM_SOURCES that is used to instantiate the PLIC model instead. Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-12-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/riscv/sifive_u.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index b139824aab..b40a4767e2 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -287,7 +287,8 @@ static void create_fdt(SiFiveUState *s, const MemMapEnt= ry *memmap, qemu_fdt_setprop_cells(fdt, nodename, "reg", 0x0, memmap[SIFIVE_U_DEV_PLIC].base, 0x0, memmap[SIFIVE_U_DEV_PLIC].size); - qemu_fdt_setprop_cell(fdt, nodename, "riscv,ndev", 0x35); + qemu_fdt_setprop_cell(fdt, nodename, "riscv,ndev", + SIFIVE_U_PLIC_NUM_SOURCES - 1); qemu_fdt_setprop_cell(fdt, nodename, "phandle", plic_phandle); plic_phandle =3D qemu_fdt_get_phandle(fdt, nodename); g_free(cells); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671662921800994.337391404864; Wed, 21 Dec 2022 14:48:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oF-0003O5-32; Wed, 21 Dec 2022 17:43:35 -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 1p87oA-0003GQ-BG for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:31 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87o8-0000Xf-Nm for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:30 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:41:59 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:28 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:42:00 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpN75Tssz1Rwrq for ; Wed, 21 Dec 2022 14:41:59 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mld9R8XyBkpb for ; Wed, 21 Dec 2022 14:41:59 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpN52zTxz1RvTp; Wed, 21 Dec 2022 14:41:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662608; x=1703198608; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qqZZTilR5d2pq+JF0832DzXY6m5V2ZSxxMPDsmHeovY=; b=jkGgImFrkhqn+5uCH35QRBe8gQsbmDyTQxDwGZkAHdTGMuE+Q4RkX+bi uWprw+GmY8GN9scFBunf6j72b9RF6CCpAilrWAkziNmA/vvcoj9HaQUHn X4TcaJE1hagbQqDORLGeL3H6MU2Bv92jVZIzUHrF0g4Qh7Vdpqz0xd+fI e0VtrlUFIIw07Z3D76c51jSEoyiG4FtkId6nNiP2DsltYFlratmb5Lw3o BAnYN9ge5vdcOt8bfN6c7irqLX+Vf8aRP3NYvR7ZNh084cZMxX5YRs2sy VRtu+vtD94D4hJKgIMklYOypCfvJZOZ+V3WfEbKrIf6W8xDvZUFl568OK A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561475" IronPort-SDR: bD73Fb8/JV6VhnuQXxbypYRfwCJFHv98b+tp/51CIBAoEE7nl840qy0Gso9/4TSULay9Vi9Hgj lUNe4rc/gGGQFJKgY4GvavuzLc2wyfWm689Hop6VgMwrxAJoI32yC5KjlivsMSZNePXISsgt0m dtI/lQHCQPRdWb/Vi/FmMDPmSM5Ky2Q0jFVPpDuGfXjBu8K2zVOzipLniq4q4yNl3GQr/6JDBN YeDUenjanZt7SReZB6kyjbB7uhUHhsChog/9jOwcifw8U6YFyUD+YGuqPnzdBpQ2rxJTN7GWas DkY= IronPort-SDR: d9R7QIbGkQNliPSF0kTXT/rNroiXU6gV/voyiBWgd/9Jp2BlO+TV8mNf063G7vJqRRvXUKwEMH PM1ZtkjLWh8wcT7j721sjiWhQuIlXIp5rD6BJmr7s+SERcsWDeK1kqTuYZPVjkfqYqGS7cVICZ OnjW7h7O4Cnq1e6rWs7EM9yDQcMZsQOXUpNf1JvvbrI1awoRBlpza2m4322fn7A6lHbgdCEFxG XrgORJtGmvq0oLSi/8iFVKUf+/6mFWTYNusUlfHF2ciNAajkboKHojFP0IqTGS9sAYB0Rh/DtH kO4= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662519; x=1674254520; bh=qqZZTilR5d2pq+JF08 32DzXY6m5V2ZSxxMPDsmHeovY=; b=CRsCfy2uWXyA9o3BRQrXBZjiONv8yE2wb3 CCrzabNoC07iVrBUs7Me07BXZD7AmVbcXzZjzJQ/AaA/oOYYFE2YaOM3aJFzXtt/ yYOQnss2J09gfYWMeY2EBt33/Sc9JcHqEYzcFqjrccYFNBjoE4l54dkpa0i2Etza RzU3WSxv8myxzXMzBcu8FHETQUloB+PTdlpwBoCuvPO1uQAFfNtbIdnJcNvNePeC Ms6oMXE6iLDboc4YZyZbKMLCkPJT5iQd5s/gmxkhlqkuM3ssopbzWWcUYkDEGMVi AHoQnG0vpCIZApXHjuZXsZJCGikPrUSpDpc5Nbc5P43PwESY9a5A== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 42/45] hw/riscv: virt: Fix the value of "riscv, ndev" in the dtb Date: Thu, 22 Dec 2022 08:40:19 +1000 Message-Id: <20221221224022.425831-43-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671662923261100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng Commit 28d8c281200f ("hw/riscv: virt: Add optional AIA IMSIC support to vir= t machine") changed the value of VIRT_IRQCHIP_NUM_SOURCES from 127 to 53, which is VIRTIO_NDEV and also used as the value of "riscv,ndev" property in the dtb. Unfortunately this is wrong as VIRT_IRQCHIP_NUM_SOURCES should include interrupt source 0 but "riscv,ndev" does not. While we are here, we also fix the comments of platform bus irq range which is now "64 to 96", but should be "64 to 95", introduced since commit 1832b7cb3f64 ("hw/riscv: virt: Create a platform bus"). Fixes: 28d8c281200f ("hw/riscv: virt: Add optional AIA IMSIC support to vir= t machine") Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-13-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- include/hw/riscv/virt.h | 5 ++--- hw/riscv/virt.c | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index 62513e075c..e1ce0048af 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -87,14 +87,13 @@ enum { VIRTIO_IRQ =3D 1, /* 1 to 8 */ VIRTIO_COUNT =3D 8, PCIE_IRQ =3D 0x20, /* 32 to 35 */ - VIRT_PLATFORM_BUS_IRQ =3D 64, /* 64 to 96 */ - VIRTIO_NDEV =3D 96 /* Arbitrary maximum number of interrupts */ + VIRT_PLATFORM_BUS_IRQ =3D 64, /* 64 to 95 */ }; =20 #define VIRT_PLATFORM_BUS_NUM_IRQS 32 =20 #define VIRT_IRQCHIP_NUM_MSIS 255 -#define VIRT_IRQCHIP_NUM_SOURCES VIRTIO_NDEV +#define VIRT_IRQCHIP_NUM_SOURCES 96 #define VIRT_IRQCHIP_NUM_PRIO_BITS 3 #define VIRT_IRQCHIP_MAX_GUESTS_BITS 3 #define VIRT_IRQCHIP_MAX_GUESTS ((1U << VIRT_IRQCHIP_MAX_GUESTS_BITS) - 1U) diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index 6cf9355b99..94ff2a1584 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -468,7 +468,8 @@ static void create_fdt_socket_plic(RISCVVirtState *s, plic_cells, s->soc[socket].num_harts * sizeof(uint32_t) * 4); qemu_fdt_setprop_cells(mc->fdt, plic_name, "reg", 0x0, plic_addr, 0x0, memmap[VIRT_PLIC].size); - qemu_fdt_setprop_cell(mc->fdt, plic_name, "riscv,ndev", VIRTIO_NDEV); + qemu_fdt_setprop_cell(mc->fdt, plic_name, "riscv,ndev", + VIRT_IRQCHIP_NUM_SOURCES - 1); riscv_socket_fdt_write_id(mc, mc->fdt, plic_name, socket); qemu_fdt_setprop_cell(mc->fdt, plic_name, "phandle", plic_phandles[socket]); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663297629934.1605913437284; Wed, 21 Dec 2022 14:54:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oJ-0003ac-S1; Wed, 21 Dec 2022 17:43:39 -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 1p87oH-0003Vb-WC for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:38 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87oG-0000bf-4I for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:37 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:42:02 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:31 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:42:03 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpNB4d7qz1RvTr for ; Wed, 21 Dec 2022 14:42:02 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id ynKLWE5ETMlM for ; Wed, 21 Dec 2022 14:42:02 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpN80fKNz1RvLy; Wed, 21 Dec 2022 14:41:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662615; x=1703198615; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=33ydBuzuBnZFvlbDBH6+hF4mtGaD+zrqRMjuDlazzLE=; b=R11AyRIT1WcPpCkqVtwNSeBUi6/akuxwPduBGozgSMg+oHEq8NBAURa7 lzuKdYpin1MVjrEE2g++q5ZgFmveZTXNbhE0Ax91mJxdnNqw3Idt9DGtF +rf9MKJ3L4LqRPqrlXAvCLSNFvQSZ9jSVHq03Mw7W0s2JAq3x+VYX7edr ZfCmBt5mSN5zYUxJALRM7F2qRf5NB460vMx8XMyHXyp2Gai3S/PLEVwi5 SNtO6hDxUPy50cVhqnX8bJOenYmtCznSzH6FSLmDZlS3CcJlN8zb8Lr5x 04dvfSVgnh2Nic7SDTyT9D2NdwHhdIDpLueZj4V+BSoz88T3L3mAAjSgS g==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561483" IronPort-SDR: jUybs/j/F8SniGENihgic05fatxYKByeVm5Y/nFQVaXkv445BnWMU7YwSzjiyg/F0y5eZx8zDc MiB+OMB954eHK1R8RnM3VFJb1n1krhaJB+RyPFjtIrT4gNCpaLmz2J649rivLbmGXWa6ohursA GNKMzowxX0EyQ9deGtSmEnPWoN/Ih6XY3iGyJFEr+2ITbkLZz3BMVs76eQwB8/pqbbOfbZw9oh OoYYshi+qTNpgtgkZOBpjXfHlfdGNJN4XjUL8M2KQlNQKBGzLloAGgiBOOaAwFVmWBollIT/68 r70= IronPort-SDR: HNKXpHpKBySRcdVIeI5IBlnmfpXYjVq6rIzVO5TGhvA+HrXSwytie67Ke3Elkwe4oinQn/vVn9 1xGFGa2uI+P+t/So6mTKyqetb4mkPzM2arQ+iGW3Wfa/fJNOW2SoUTV+2qyyZrJARFKov5nocD Q+r6lf4ukLEB7Ac2kRB6yFsJ7BVj2kXeGDluGhQJAtyWe3XEAwhSQO2CIAUKw4ogRdoDUQxZyH iT4DT1u7At5jSEu1/lo+VKgQICfW4thor+xpO0QZ4L/pgt4PfMnJhoWo6NrZ5VmXxHRnoPxARf pq0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662522; x=1674254523; bh=33ydBuzuBnZFvlbDBH 6+hF4mtGaD+zrqRMjuDlazzLE=; b=LWn9+pnzoNE1EPv1f8UhuZIOGrAvSbMFV5 oQ9nGem6SFLzwoPLsU6Qne9lbkE38MJ8pWkfdWEWaDRmCMsyB3kQdipbNe4xvhnt DOESWwPz3Uoxp/H4EXz2vgvkzlutBZWmgbEMVpRWPGnYC6arLeoGDfO7RDQkpwDk DbOOjiyiy6G/60l5Pzxwqf0EAkHfCuVIbrRLQVY03+W5n9jc3PMVZ6d+q4IBKy9K bF9KjxZVLyPykhVJZyBXlPE3NZ9AQX8IPN8hSNocjRo4/HhNNj6WgP8vqgC4D7QS rIHpE0pDJM/mtzvML9Qr9s6tvHDyEUl3pXMZ0CnjasHKg5sUKO7Q== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , Wilfred Mallawa Subject: [PULL v2 43/45] hw/intc: sifive_plic: Change "priority-base" to start from interrupt source 0 Date: Thu, 22 Dec 2022 08:40:20 +1000 Message-Id: <20221221224022.425831-44-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663298925100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng At present the SiFive PLIC model "priority-base" expects interrupt priority register base starting from source 1 instead source 0, that's why on most platforms "priority-base" is set to 0x04 except 'opentitan' machine. 'opentitan' should have set "priority-base" to 0x04 too. Note the irq number calculation in sifive_plic_{read,write} is correct as the codes make up for the irq number by adding 1. Let's simply update "priority-base" to start from interrupt source 0 and add a comment to make it crystal clear. Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Wilfred Mallawa Message-Id: <20221211030829.802437-14-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- include/hw/riscv/microchip_pfsoc.h | 2 +- include/hw/riscv/shakti_c.h | 2 +- include/hw/riscv/sifive_e.h | 2 +- include/hw/riscv/sifive_u.h | 2 +- include/hw/riscv/virt.h | 2 +- hw/intc/sifive_plic.c | 5 +++-- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/hw/riscv/microchip_pfsoc.h b/include/hw/riscv/microchi= p_pfsoc.h index 577efad0c4..e65ffeb02d 100644 --- a/include/hw/riscv/microchip_pfsoc.h +++ b/include/hw/riscv/microchip_pfsoc.h @@ -155,7 +155,7 @@ enum { =20 #define MICROCHIP_PFSOC_PLIC_NUM_SOURCES 187 #define MICROCHIP_PFSOC_PLIC_NUM_PRIORITIES 7 -#define MICROCHIP_PFSOC_PLIC_PRIORITY_BASE 0x04 +#define MICROCHIP_PFSOC_PLIC_PRIORITY_BASE 0x00 #define MICROCHIP_PFSOC_PLIC_PENDING_BASE 0x1000 #define MICROCHIP_PFSOC_PLIC_ENABLE_BASE 0x2000 #define MICROCHIP_PFSOC_PLIC_ENABLE_STRIDE 0x80 diff --git a/include/hw/riscv/shakti_c.h b/include/hw/riscv/shakti_c.h index daf0aae13f..539fe1156d 100644 --- a/include/hw/riscv/shakti_c.h +++ b/include/hw/riscv/shakti_c.h @@ -65,7 +65,7 @@ enum { #define SHAKTI_C_PLIC_NUM_SOURCES 28 /* Excluding Priority 0 */ #define SHAKTI_C_PLIC_NUM_PRIORITIES 2 -#define SHAKTI_C_PLIC_PRIORITY_BASE 0x04 +#define SHAKTI_C_PLIC_PRIORITY_BASE 0x00 #define SHAKTI_C_PLIC_PENDING_BASE 0x1000 #define SHAKTI_C_PLIC_ENABLE_BASE 0x2000 #define SHAKTI_C_PLIC_ENABLE_STRIDE 0x80 diff --git a/include/hw/riscv/sifive_e.h b/include/hw/riscv/sifive_e.h index 9e58247fd8..b824a79e2d 100644 --- a/include/hw/riscv/sifive_e.h +++ b/include/hw/riscv/sifive_e.h @@ -89,7 +89,7 @@ enum { */ #define SIFIVE_E_PLIC_NUM_SOURCES 53 #define SIFIVE_E_PLIC_NUM_PRIORITIES 7 -#define SIFIVE_E_PLIC_PRIORITY_BASE 0x04 +#define SIFIVE_E_PLIC_PRIORITY_BASE 0x00 #define SIFIVE_E_PLIC_PENDING_BASE 0x1000 #define SIFIVE_E_PLIC_ENABLE_BASE 0x2000 #define SIFIVE_E_PLIC_ENABLE_STRIDE 0x80 diff --git a/include/hw/riscv/sifive_u.h b/include/hw/riscv/sifive_u.h index 8f63a183c4..e680d61ece 100644 --- a/include/hw/riscv/sifive_u.h +++ b/include/hw/riscv/sifive_u.h @@ -158,7 +158,7 @@ enum { =20 #define SIFIVE_U_PLIC_NUM_SOURCES 54 #define SIFIVE_U_PLIC_NUM_PRIORITIES 7 -#define SIFIVE_U_PLIC_PRIORITY_BASE 0x04 +#define SIFIVE_U_PLIC_PRIORITY_BASE 0x00 #define SIFIVE_U_PLIC_PENDING_BASE 0x1000 #define SIFIVE_U_PLIC_ENABLE_BASE 0x2000 #define SIFIVE_U_PLIC_ENABLE_STRIDE 0x80 diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h index e1ce0048af..3407c9e8dd 100644 --- a/include/hw/riscv/virt.h +++ b/include/hw/riscv/virt.h @@ -98,7 +98,7 @@ enum { #define VIRT_IRQCHIP_MAX_GUESTS_BITS 3 #define VIRT_IRQCHIP_MAX_GUESTS ((1U << VIRT_IRQCHIP_MAX_GUESTS_BITS) - 1U) =20 -#define VIRT_PLIC_PRIORITY_BASE 0x04 +#define VIRT_PLIC_PRIORITY_BASE 0x00 #define VIRT_PLIC_PENDING_BASE 0x1000 #define VIRT_PLIC_ENABLE_BASE 0x2000 #define VIRT_PLIC_ENABLE_STRIDE 0x80 diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 1edeb1e1ed..1a792cc3f5 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -140,7 +140,7 @@ static uint64_t sifive_plic_read(void *opaque, hwaddr a= ddr, unsigned size) SiFivePLICState *plic =3D opaque; =20 if (addr_between(addr, plic->priority_base, plic->num_sources << 2)) { - uint32_t irq =3D ((addr - plic->priority_base) >> 2) + 1; + uint32_t irq =3D (addr - plic->priority_base) >> 2; =20 return plic->source_priority[irq]; } else if (addr_between(addr, plic->pending_base, plic->num_sources >>= 3)) { @@ -187,7 +187,7 @@ static void sifive_plic_write(void *opaque, hwaddr addr= , uint64_t value, SiFivePLICState *plic =3D opaque; =20 if (addr_between(addr, plic->priority_base, plic->num_sources << 2)) { - uint32_t irq =3D ((addr - plic->priority_base) >> 2) + 1; + uint32_t irq =3D (addr - plic->priority_base) >> 2; =20 if (((plic->num_priorities + 1) & plic->num_priorities) =3D=3D 0) { /* @@ -428,6 +428,7 @@ static Property sifive_plic_properties[] =3D { /* number of interrupt sources including interrupt source 0 */ DEFINE_PROP_UINT32("num-sources", SiFivePLICState, num_sources, 1), DEFINE_PROP_UINT32("num-priorities", SiFivePLICState, num_priorities, = 0), + /* interrupt priority register base starting from source 0 */ DEFINE_PROP_UINT32("priority-base", SiFivePLICState, priority_base, 0), DEFINE_PROP_UINT32("pending-base", SiFivePLICState, pending_base, 0), DEFINE_PROP_UINT32("enable-base", SiFivePLICState, enable_base, 0), --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663371931686.2671884337194; Wed, 21 Dec 2022 14:56:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oK-0003cq-RQ; Wed, 21 Dec 2022 17:43:40 -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 1p87oJ-0003YZ-3B for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:39 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87oH-0000bQ-Dn for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:38 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:42:05 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:34 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:42:05 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpNF2M4gz1Rwrq for ; Wed, 21 Dec 2022 14:42:05 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id o_-JkTZ-MLG7 for ; Wed, 21 Dec 2022 14:42:04 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpNB4JT2z1RvTp; Wed, 21 Dec 2022 14:42:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662617; x=1703198617; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=FyJflZSfGCFJuxVWGryLkKV05Gzhy7oKc/Efd3wNjjA=; b=T9ViMiQfiK9lWkKIuKFPYWWb2bwIXY+hMrqbSveETNoMTmi9OaxERVXg zVN7+0jsvXwqTZeXQe7I1Iv6YSvT0u0rRHq4ipksdrIKsOrf/VtiJw8Bd XY3rP8tqJZcjauaVT+Zxl8/fEG/ed3Yq9ZUE5Kyh39SopQ2OCls15NETa /WY6oal+gqtllo/OLQUruGfCdbDQkMoXgqDUWz0zbWgB5I7MKXIoIALmV Rax8SBusqQwHcenM7mLQ3VscX3IPrINDY6ut+FwQU+Tw+z52AbBb4+Fxb 1jk5UBoWzfIcDVS3fvZPwL1cchd0XnIDZHjmbNX0Tz5ObvKBOZ0Fo5Xd/ A==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561489" IronPort-SDR: WeamRv+2ZHegfcbh9VCiU0JDK8sc851ENBjERbeAKplIeQdGNvie8Fp22kARGMzWXNXo6nu3My 07eLn3zzLitluf8MsQfcdjJJzoPy2r1XDnslFS6SSRhUd+tZM5qaA8HDCLKoxA8zYGM7tHLibF e8TBbCHThCugD9P2ROrFD2IODONn1kabVQYaxPXFIeulwQ+7nc1bJ/zgChW5jNCQuTrjoSzCuk ixlEwSPfd5BZINWeUmTTWMYeM5kTxkmsO/yeRlsvKSc3OrUOiq6NZAD9fl02406z6p120h4GXR vYg= IronPort-SDR: LHH1GbZjP9Pq++noQZQ4Z3VSVjH3pZcfg88vG17pvoDC6z83wBV/xztiVcWJDGjMwcWZkjg0lG B7fooN4mH3f9N6u+bycIozJotuKCe9INllboMcRqItNb2J6H9DAbpDyvAw4u7uTP+7XuqKQ/61 5ClFCxRVZWD5Av9E7Mfb9Zr9e8XuRETHIY08X0WbtiUd1SE3TuDlRIdzwcADBoad6GYiA987Xb 9GTMldCiLi6YLHLFtGz6x4UWmhFwoadScuVFVoFPVyXthepaOQW1HbgBOef4i/aMIXHv6OtTnh Mb0= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662524; x=1674254525; bh=FyJflZSfGCFJuxVWGr yLkKV05Gzhy7oKc/Efd3wNjjA=; b=JCSlWfjQr1W/9UmtvT+XmqP1sUfxj8dvMj MimHdmjW/pLYOrm1QHhzYaTwMoUnU+U048+rRIhljI8+xh9MFmB6bzngnU1p4y7A tyT8WU0GA6zdDsyDXzUVzV7rscqowmhFYzYwsmydKBG8vY/lOpUzcO3UQyynJ3Bh mCBOkJt9srCyBxJXjfuWhlkl5WzQ8PTNK83YL/fNbTpxGWlljlCL5E7x2cqtx+H/ oFv8/ilBdJEXQ9ywUwHw1O360YqLjhGpGABmSaR26RHbNhNloaEVGJmXBccMolb8 XDn2oNOYbf1RvOZBAWvXSUImGC6wuPlb2+ghRNTPUZ1DKV2gttlA== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Wilfred Mallawa , Alistair Francis Subject: [PULL v2 44/45] hw/riscv: opentitan: Drop "hartid-base" and "priority-base" initialization Date: Thu, 22 Dec 2022 08:40:21 +1000 Message-Id: <20221221224022.425831-45-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663373317100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng "hartid-base" and "priority-base" are zero by default. There is no need to initialize them to zero again. Signed-off-by: Bin Meng Reviewed-by: Wilfred Mallawa Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-15-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/riscv/opentitan.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index 78f895d773..85ffdac5be 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -173,10 +173,8 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_= soc, Error **errp) =20 /* PLIC */ qdev_prop_set_string(DEVICE(&s->plic), "hart-config", "M"); - qdev_prop_set_uint32(DEVICE(&s->plic), "hartid-base", 0); qdev_prop_set_uint32(DEVICE(&s->plic), "num-sources", 180); qdev_prop_set_uint32(DEVICE(&s->plic), "num-priorities", 3); - qdev_prop_set_uint32(DEVICE(&s->plic), "priority-base", 0x00); qdev_prop_set_uint32(DEVICE(&s->plic), "pending-base", 0x1000); qdev_prop_set_uint32(DEVICE(&s->plic), "enable-base", 0x2000); qdev_prop_set_uint32(DEVICE(&s->plic), "enable-stride", 32); --=20 2.38.1 From nobody Sun May 19 04:56:00 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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; dmarc=fail(p=quarantine dis=quarantine) header.from=opensource.wdc.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1671663593865437.35738515970536; Wed, 21 Dec 2022 14:59:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p87oO-0003lc-3h; Wed, 21 Dec 2022 17:43:44 -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 1p87oM-0003gh-Cb for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:42 -0500 Received: from esa2.hgst.iphmx.com ([68.232.143.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p87oK-0000Xf-L2 for qemu-devel@nongnu.org; Wed, 21 Dec 2022 17:43:42 -0500 Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 22 Dec 2022 06:42:07 +0800 Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 13:54:36 -0800 Received: from usg-ed-osssrv.wdc.com ([10.3.10.180]) by uls-op-cesaip02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 21 Dec 2022 14:42:08 -0800 Received: from usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTP id 4NcpNH4m2Sz1RvTp for ; Wed, 21 Dec 2022 14:42:07 -0800 (PST) Received: from usg-ed-osssrv.wdc.com ([127.0.0.1]) by usg-ed-osssrv.wdc.com (usg-ed-osssrv.wdc.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zrVY1hhkK_x8 for ; Wed, 21 Dec 2022 14:42:07 -0800 (PST) Received: from toolbox.alistair23.me (unknown [10.225.167.8]) by usg-ed-osssrv.wdc.com (Postfix) with ESMTPSA id 4NcpNF3hvmz1RvLy; Wed, 21 Dec 2022 14:42:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1671662620; x=1703198620; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VhJier8Sfagp/2bmB4q0y6I9QpcKcN4XDbRExd/aw3w=; b=antRW9gBNc5stWhGzJVONiRVhwmi47geXXf0RY+NhaoHXxyfUrFzwYYK CfdTH/g1PSID0w5EpXut6JChJUVXhQutwGr50w9qIoEm2oFp3hgSDL3WE 7euo+y6qlX/rnMZykF3XUfR8WkAnyYz0RmbbMrr6EE8/oMAUdqu8mr/Bq dtjUTAkfNCkf/7cjbZFJGeogCFcaX7eCszKbhtTtr/Eiu5NVOPzxPFcA/ yKZgUBxFPlNH4W8jT7t/TsXV2NqAm8iOFr8lpeyBmq+JUIf1Z6l+ifQ8j ZHp0L7HYoQ396jcH6L5FxLgJN7tbHsnsjjAZ9jdgPB17qLf2XExcDbRnF Q==; X-IronPort-AV: E=Sophos;i="5.96,263,1665417600"; d="scan'208";a="323561495" IronPort-SDR: OQUdYYNh586igROC4PeeyW7/y6vZwxI2Gc6a/wmjRuAp+Fkl4ZE3BHgUMSgpqhtHcUmxKMYKUi HscQHyKhmPAFe1GLHu5mECmfg6AIYpj9+UfDclmnwtPQFSR2Bxc38a1IGUGltuBR5UNecIfSzJ +GaY10LM1qChKNyv4pDKyidHPfDvEopc4Eq5lMA7Jv9z9owfVWbq0j5N/564RTbdyCOsM8bS9e 8g1e9M5m4HpmVsylqkFB4EuEQehu86aY3UK49DEYmc+6dIHAUejbRS/LIWnXO5Vp8bxyeBDOUq NXs= IronPort-SDR: snyH7ROqbBUGc3JjaJzViaHxePyy+PM6VwB6pZGFGEGS+EW0HgHmOtHT75pR9yy7KuA6z44ZPV FIxmDWjmOC4fc7AsGbIPgIvkGF005S2inmWoImJJOnfw9tjzuS2QAjk7ipgkG39ly4dZzt+q4d lIlK87juAeiKRQKBsUk1bGvI6hn6X1JM49QxMoV8RXDyXbA+Asky57Dfy2we/HUx8AkVeiPeYF 2Ctarb00wORkKYYd9K7ViJ9I+ikSuR6ZvYkHWOrAI+Fd83G4LDUj6f8NyA0gR9ZKwLHfpG6tCK 8D8= WDCIronportException: Internal Authentication-Results: usg-ed-osssrv.wdc.com (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=opensource.wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d= opensource.wdc.com; h=content-transfer-encoding:mime-version :references:in-reply-to:x-mailer:message-id:date:subject:to :from; s=dkim; t=1671662527; x=1674254528; bh=VhJier8Sfagp/2bmB4 q0y6I9QpcKcN4XDbRExd/aw3w=; b=BopMnilRKEQaocOeiHsUhDyOWj8gRN9Lud FoyiQR4ocr7XnsVLGtF/BhAMQxlORT6aNNbPlc9q3Lt25OWvrw4XZ6jcF5bjZvey L1svd1kVh2mKERWwDP38NBj0A0JtB7gE+0/z1MqXJD+MOlrAn3R9RpTUovRXk2J4 nMdL1hbXWlJGWRQslw8snxmnYn4EmQgRkdvbcS6Yj8sZpQOijKolO+at/bzwlI1N JlJttf48CLcLQizCm6OC4xnRlxnmaJ0ASfa3C98z8lbRsbVwZfZuH/3MfN4QufQp 8Tj8lcnU4/lQ5tYjJEC+Nu3/UUkV78FlplmpTTcs6SrEIR7c03eg== X-Virus-Scanned: amavisd-new at usg-ed-osssrv.wdc.com From: Alistair Francis To: qemu-devel@nongnu.org Cc: alistair23@gmail.com, Bin Meng , Alistair Francis Subject: [PULL v2 45/45] hw/intc: sifive_plic: Fix the pending register range check Date: Thu, 22 Dec 2022 08:40:22 +1000 Message-Id: <20221221224022.425831-46-alistair.francis@opensource.wdc.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> References: <20221221224022.425831-1-alistair.francis@opensource.wdc.com> MIME-Version: 1.0 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=68.232.143.124; envelope-from=prvs=3472792e2=alistair.francis@opensource.wdc.com; helo=esa2.hgst.iphmx.com X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 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_MED=-2.3, SPF_HELO_PASS=-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+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1671663594473100003 Content-Type: text/plain; charset="utf-8" From: Bin Meng The pending register upper limit is currently set to plic->num_sources >> 3, which is wrong, e.g.: considering plic->num_sources is 7, the upper limit becomes 0 which fails the range check if reading the pending register at pending_base. Fixes: 1e24429e40df ("SiFive RISC-V PLIC Block") Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Message-Id: <20221211030829.802437-16-bmeng@tinylab.org> Signed-off-by: Alistair Francis --- hw/intc/sifive_plic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/intc/sifive_plic.c b/hw/intc/sifive_plic.c index 1a792cc3f5..5522ede2cf 100644 --- a/hw/intc/sifive_plic.c +++ b/hw/intc/sifive_plic.c @@ -143,7 +143,8 @@ static uint64_t sifive_plic_read(void *opaque, hwaddr a= ddr, unsigned size) uint32_t irq =3D (addr - plic->priority_base) >> 2; =20 return plic->source_priority[irq]; - } else if (addr_between(addr, plic->pending_base, plic->num_sources >>= 3)) { + } else if (addr_between(addr, plic->pending_base, + (plic->num_sources + 31) >> 3)) { uint32_t word =3D (addr - plic->pending_base) >> 2; =20 return plic->pending[word]; @@ -202,7 +203,7 @@ static void sifive_plic_write(void *opaque, hwaddr addr= , uint64_t value, sifive_plic_update(plic); } } else if (addr_between(addr, plic->pending_base, - plic->num_sources >> 3)) { + (plic->num_sources + 31) >> 3)) { qemu_log_mask(LOG_GUEST_ERROR, "%s: invalid pending write: 0x%" HWADDR_PRIx "", __func__, addr); --=20 2.38.1