From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080400; cv=none; d=zohomail.com; s=zohoarc; b=MoTFLlFLoCM6XnqICRpsd89zask9/ApDUNgz4O1AnzKRWN3tweE4vlwe2lCKxQESoU08cgh86GbINBW4gBBlsophgTGGjZ/AixhCDczGft3krSWiG/EBNeXI7FlF2GeHQB+iANZuv7C1WErkT5H5ywiLSiOFtq/b0BvHylmgjwA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080400; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=77jST2TftMFGeVkAF6nfLL/mjHLx0rItvrssyGcqgB0=; b=HrjI09k9iBTRC2II0W1YvSlcZFOcer0RB/zgMkUHmY5d7SeNkc8jYjrwIZ1Oiuh8XGiYtEkc0/wMr0ncBHsWmAiUw+cpDVmGz8lMATj0Ybv6DZuXW4q48MtpQTit/PCGZd5iue/ccnyfpjceZBjGjyFwpmi5QjwesPGANXqwBW4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080400524375.37348001740565; Mon, 3 May 2021 15:20:00 -0700 (PDT) Received: from localhost ([::1]:59694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgv1-0001WT-Dl for importer@patchew.org; Mon, 03 May 2021 18:19:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52736) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgp6-0004WG-OI for qemu-devel@nongnu.org; Mon, 03 May 2021 18:13:54 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28334) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgoz-00006X-2h for qemu-devel@nongnu.org; Mon, 03 May 2021 18:13:52 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:43 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:53:54 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:41 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080024; x=1651616024; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BdYYVeUYgq1mi3A8UHIIcrCtropB7TiiKZWRQSAagxg=; b=YeVU9nPiV6Ka9O+nf9UFGjCTqJ2AeOtu//w2Ks9x0NPiAF9oImH5Ghl6 ptulk4PpYQnIch5QnECAhiptxCxdVzNPE2LczxzqeaaZvfYghYURCgeNw F5jsd5rUjuZiJV8eAbJV/EhP1RFVIHFUopKR5iupuQCVV38YIEN2icCUp tGJuaOqplBdC+njiGT9wSUqdZXBtq26w8N+Jy15GaFqE3dTILuGn4igQj UT6vQ9Erq7HSCh9TImpeeABhl8Lipsoi5AgGlntXFFjnOVvuOeWeccg1d 0meGD1fI84ym/mRyFG8wrDYCpWKWvv6hs+npW/cQWIJz4dybbdv8NrZWK g==; IronPort-SDR: UPm16mcXccepFHdXI4crm59KqFPTn4mYhUwyWOqM3iaAlYFtEuUlpgetwUqln+bM1cJt7fH20z OCJuFg5y8n16yAYZgDiMYgo1j4Q14UB6y5nOC2odabIppxOZalV3LdC7ZZDQJufOy8iFHYdwSL h/hkiIm6VroxhKOz/LmrcTWSnZuhkYHZuoxKjMCKx2/yPND1/z2Fz7goIvOJ1nMPT17761kGyV iEDei5bvryMVdSsRPkJ9al1FEuP/itQFBqadMtlMAmjfrjzUgOeBuL7NH7gX0/5IAL+Ps8O/Zi QnY= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114588" IronPort-SDR: YymjmLguWo5QEWR3jPH4YE0vWnTv+ScDS9Dy25R2OF+NdJ/nQQ5w0aK2KL/1ovIw3Rpvl73xk+ UhyYm4Z0OOHCJS8i+GeXfGBO29n7c9JyNJ8RFhQyiSE1RxT3my0tNZ0neJcDQrkyLVKD9woQA+ KWGfXbAJr6qzJAVzONvNekulFnZt/B4PhiMmVzVKjINWsN/ajO779+ewtIS4+LChPhE269Ot7e /rCKn4wT+qHlQMMmEuyoKUeUmH4LIEjKjUQ2flRTIBZbQcaHi599iL25lwfOwLLat421w5bxW6 jH09N/NsyuLFJcQtd+ygqV0O IronPort-SDR: 1N5JlqpvGy1ZAOAfDSj/5xPqGmnzJFAnT00inenp/Rm6RSdaPIJKuFJ0IR281k0b0vg43X4tHx s/9IhPEfSMkIwdgZZLE8ZjbCwkYQQ4JZv4EqruGE9tLBftUzL4iRjKj5So7Cb6uzSyEjxn5PbB 3032OSfNkZn5QUV2gyMsd0vWj+9dQNEoDbFnjzPTZG+b/dUxgL+LErNYulpDRtCVblLf9o7t1n hojBLEQlzqepmYuxkF5x30m+5VzMyF37ObTqz+0fbtFSLSoz7pbvLHsiY8VdxL52eY8T3VJX2F StI= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 01/42] target/riscv: Remove privilege v1.9 specific CSR related code Date: Tue, 4 May 2021 08:12:46 +1000 Message-Id: <20210503221327.3068768-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org, Atish Patra Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Atish Patra Qemu doesn't support RISC-V privilege specification v1.9. Remove the remaining v1.9 specific references from the implementation. Signed-off-by: Atish Patra Reviewed-by: Alistair Francis Message-Id: <20210319194534.2082397-2-atish.patra@wdc.com> [Changes by AF: - Rebase on latest patches - Bump the vmstate_riscv_cpu version_id and minimum_version_id ] Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 4 +--- target/riscv/cpu_bits.h | 23 --------------------- target/riscv/cpu.c | 2 +- target/riscv/cpu_helper.c | 12 +++++------ target/riscv/csr.c | 42 ++++++++++----------------------------- target/riscv/machine.c | 8 +++----- target/riscv/translate.c | 4 ++-- 7 files changed, 23 insertions(+), 72 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 0a33d387ba..311b1db875 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -163,10 +163,8 @@ struct CPURISCVState { target_ulong mie; target_ulong mideleg; =20 - target_ulong sptbr; /* until: priv-1.9.1 */ target_ulong satp; /* since: priv-1.10.0 */ - target_ulong sbadaddr; - target_ulong mbadaddr; + target_ulong stval; target_ulong medeleg; =20 target_ulong stvec; diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index caf4599207..b42dd4f8d8 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -153,12 +153,6 @@ /* 32-bit only */ #define CSR_MSTATUSH 0x310 =20 -/* Legacy Counter Setup (priv v1.9.1) */ -/* Update to #define CSR_MCOUNTINHIBIT 0x320 for 1.11.0 */ -#define CSR_MUCOUNTEREN 0x320 -#define CSR_MSCOUNTEREN 0x321 -#define CSR_MHCOUNTEREN 0x322 - /* Machine Trap Handling */ #define CSR_MSCRATCH 0x340 #define CSR_MEPC 0x341 @@ -166,9 +160,6 @@ #define CSR_MTVAL 0x343 #define CSR_MIP 0x344 =20 -/* Legacy Machine Trap Handling (priv v1.9.1) */ -#define CSR_MBADADDR 0x343 - /* Supervisor Trap Setup */ #define CSR_SSTATUS 0x100 #define CSR_SEDELEG 0x102 @@ -184,9 +175,6 @@ #define CSR_STVAL 0x143 #define CSR_SIP 0x144 =20 -/* Legacy Supervisor Trap Handling (priv v1.9.1) */ -#define CSR_SBADADDR 0x143 - /* Supervisor Protection and Translation */ #define CSR_SPTBR 0x180 #define CSR_SATP 0x180 @@ -354,14 +342,6 @@ #define CSR_MHPMCOUNTER30H 0xb9e #define CSR_MHPMCOUNTER31H 0xb9f =20 -/* Legacy Machine Protection and Translation (priv v1.9.1) */ -#define CSR_MBASE 0x380 -#define CSR_MBOUND 0x381 -#define CSR_MIBASE 0x382 -#define CSR_MIBOUND 0x383 -#define CSR_MDBASE 0x384 -#define CSR_MDBOUND 0x385 - /* mstatus CSR bits */ #define MSTATUS_UIE 0x00000001 #define MSTATUS_SIE 0x00000002 @@ -375,10 +355,8 @@ #define MSTATUS_FS 0x00006000 #define MSTATUS_XS 0x00018000 #define MSTATUS_MPRV 0x00020000 -#define MSTATUS_PUM 0x00040000 /* until: priv-1.9.1 */ #define MSTATUS_SUM 0x00040000 /* since: priv-1.10 */ #define MSTATUS_MXR 0x00080000 -#define MSTATUS_VM 0x1F000000 /* until: priv-1.9.1 */ #define MSTATUS_TVM 0x00100000 /* since: priv-1.10 */ #define MSTATUS_TW 0x00200000 /* since: priv-1.10 */ #define MSTATUS_TSR 0x00400000 /* since: priv-1.10 */ @@ -416,7 +394,6 @@ #define SSTATUS_SPP 0x00000100 #define SSTATUS_FS 0x00006000 #define SSTATUS_XS 0x00018000 -#define SSTATUS_PUM 0x00040000 /* until: priv-1.9.1 */ #define SSTATUS_SUM 0x00040000 /* since: priv-1.10 */ #define SSTATUS_MXR 0x00080000 =20 diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 7d6ed80f6b..86e7dbeb20 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -282,7 +282,7 @@ static void riscv_cpu_dump_state(CPUState *cs, FILE *f,= int flags) qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "vscause ", env->vscaus= e); } qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mtval ", env->mtval); - qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "stval ", env->sbadaddr); + qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "stval ", env->stval); if (riscv_has_ext(env, RVH)) { qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "htval ", env->htval); qemu_fprintf(f, " %s " TARGET_FMT_lx "\n", "mtval2 ", env->mtval2); diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 21c54ef561..503c2559f8 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -136,8 +136,8 @@ void riscv_cpu_swap_hypervisor_regs(CPURISCVState *env) env->vscause =3D env->scause; env->scause =3D env->scause_hs; =20 - env->vstval =3D env->sbadaddr; - env->sbadaddr =3D env->stval_hs; + env->vstval =3D env->stval; + env->stval =3D env->stval_hs; =20 env->vsatp =3D env->satp; env->satp =3D env->satp_hs; @@ -159,8 +159,8 @@ void riscv_cpu_swap_hypervisor_regs(CPURISCVState *env) env->scause_hs =3D env->scause; env->scause =3D env->vscause; =20 - env->stval_hs =3D env->sbadaddr; - env->sbadaddr =3D env->vstval; + env->stval_hs =3D env->stval; + env->stval =3D env->vstval; =20 env->satp_hs =3D env->satp; env->satp =3D env->vsatp; @@ -1023,7 +1023,7 @@ void riscv_cpu_do_interrupt(CPUState *cs) env->mstatus =3D s; env->scause =3D cause | ((target_ulong)async << (TARGET_LONG_BITS = - 1)); env->sepc =3D env->pc; - env->sbadaddr =3D tval; + env->stval =3D tval; env->htval =3D htval; env->pc =3D (env->stvec >> 2 << 2) + ((async && (env->stvec & 3) =3D=3D 1) ? cause * 4 : 0); @@ -1054,7 +1054,7 @@ void riscv_cpu_do_interrupt(CPUState *cs) env->mstatus =3D s; env->mcause =3D cause | ~(((target_ulong)-1) >> async); env->mepc =3D env->pc; - env->mbadaddr =3D tval; + env->mtval =3D tval; env->mtval2 =3D mtval2; env->pc =3D (env->mtvec >> 2 << 2) + ((async && (env->mtvec & 3) =3D=3D 1) ? cause * 4 : 0); diff --git a/target/riscv/csr.c b/target/riscv/csr.c index d2585395bf..de7427d8f8 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -644,26 +644,6 @@ static int write_mcounteren(CPURISCVState *env, int cs= rno, target_ulong val) return 0; } =20 -/* This regiser is replaced with CSR_MCOUNTINHIBIT in 1.11.0 */ -static int read_mscounteren(CPURISCVState *env, int csrno, target_ulong *v= al) -{ - if (env->priv_ver < PRIV_VERSION_1_11_0) { - return -RISCV_EXCP_ILLEGAL_INST; - } - *val =3D env->mcounteren; - return 0; -} - -/* This regiser is replaced with CSR_MCOUNTINHIBIT in 1.11.0 */ -static int write_mscounteren(CPURISCVState *env, int csrno, target_ulong v= al) -{ - if (env->priv_ver < PRIV_VERSION_1_11_0) { - return -RISCV_EXCP_ILLEGAL_INST; - } - env->mcounteren =3D val; - return 0; -} - /* Machine Trap Handling */ static int read_mscratch(CPURISCVState *env, int csrno, target_ulong *val) { @@ -701,15 +681,15 @@ static int write_mcause(CPURISCVState *env, int csrno= , target_ulong val) return 0; } =20 -static int read_mbadaddr(CPURISCVState *env, int csrno, target_ulong *val) +static int read_mtval(CPURISCVState *env, int csrno, target_ulong *val) { - *val =3D env->mbadaddr; + *val =3D env->mtval; return 0; } =20 -static int write_mbadaddr(CPURISCVState *env, int csrno, target_ulong val) +static int write_mtval(CPURISCVState *env, int csrno, target_ulong val) { - env->mbadaddr =3D val; + env->mtval =3D val; return 0; } =20 @@ -853,15 +833,15 @@ static int write_scause(CPURISCVState *env, int csrno= , target_ulong val) return 0; } =20 -static int read_sbadaddr(CPURISCVState *env, int csrno, target_ulong *val) +static int read_stval(CPURISCVState *env, int csrno, target_ulong *val) { - *val =3D env->sbadaddr; + *val =3D env->stval; return 0; } =20 -static int write_sbadaddr(CPURISCVState *env, int csrno, target_ulong val) +static int write_stval(CPURISCVState *env, int csrno, target_ulong val) { - env->sbadaddr =3D val; + env->stval =3D val; return 0; } =20 @@ -1419,13 +1399,11 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { =20 [CSR_MSTATUSH] =3D { "mstatush", any32, read_mstatush, write_m= statush }, =20 - [CSR_MSCOUNTEREN] =3D { "msounteren", any, read_mscounteren, write_m= scounteren }, - /* Machine Trap Handling */ [CSR_MSCRATCH] =3D { "mscratch", any, read_mscratch, write_mscratch }, [CSR_MEPC] =3D { "mepc", any, read_mepc, write_mepc }, [CSR_MCAUSE] =3D { "mcause", any, read_mcause, write_mcause }, - [CSR_MBADADDR] =3D { "mbadaddr", any, read_mbadaddr, write_mbadaddr }, + [CSR_MTVAL] =3D { "mtval", any, read_mtval, write_mtval }, [CSR_MIP] =3D { "mip", any, NULL, NULL, rmw_mip }, =20 /* Supervisor Trap Setup */ @@ -1438,7 +1416,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_SSCRATCH] =3D { "sscratch", smode, read_sscratch, write_sscratch = }, [CSR_SEPC] =3D { "sepc", smode, read_sepc, write_sepc = }, [CSR_SCAUSE] =3D { "scause", smode, read_scause, write_scause = }, - [CSR_SBADADDR] =3D { "sbadaddr", smode, read_sbadaddr, write_sbadaddr = }, + [CSR_STVAL] =3D { "stval", smode, read_stval, write_stval }, [CSR_SIP] =3D { "sip", smode, NULL, NULL, rmw_sip = }, =20 /* Supervisor Protection and Translation */ diff --git a/target/riscv/machine.c b/target/riscv/machine.c index 44d4015bd6..16a08302da 100644 --- a/target/riscv/machine.c +++ b/target/riscv/machine.c @@ -140,8 +140,8 @@ static const VMStateDescription vmstate_hyper =3D { =20 const VMStateDescription vmstate_riscv_cpu =3D { .name =3D "cpu", - .version_id =3D 1, - .minimum_version_id =3D 1, + .version_id =3D 2, + .minimum_version_id =3D 2, .fields =3D (VMStateField[]) { VMSTATE_UINTTL_ARRAY(env.gpr, RISCVCPU, 32), VMSTATE_UINT64_ARRAY(env.fpr, RISCVCPU, 32), @@ -165,10 +165,8 @@ const VMStateDescription vmstate_riscv_cpu =3D { VMSTATE_UINT32(env.miclaim, RISCVCPU), VMSTATE_UINTTL(env.mie, RISCVCPU), VMSTATE_UINTTL(env.mideleg, RISCVCPU), - VMSTATE_UINTTL(env.sptbr, RISCVCPU), VMSTATE_UINTTL(env.satp, RISCVCPU), - VMSTATE_UINTTL(env.sbadaddr, RISCVCPU), - VMSTATE_UINTTL(env.mbadaddr, RISCVCPU), + VMSTATE_UINTTL(env.stval, RISCVCPU), VMSTATE_UINTTL(env.medeleg, RISCVCPU), VMSTATE_UINTTL(env.stvec, RISCVCPU), VMSTATE_UINTTL(env.sepc, RISCVCPU), diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 2f9f5ccc62..26eccc5eb1 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -116,7 +116,7 @@ static void generate_exception(DisasContext *ctx, int e= xcp) ctx->base.is_jmp =3D DISAS_NORETURN; } =20 -static void generate_exception_mbadaddr(DisasContext *ctx, int excp) +static void generate_exception_mtval(DisasContext *ctx, int excp) { tcg_gen_movi_tl(cpu_pc, ctx->base.pc_next); tcg_gen_st_tl(cpu_pc, cpu_env, offsetof(CPURISCVState, badaddr)); @@ -160,7 +160,7 @@ static void gen_exception_illegal(DisasContext *ctx) =20 static void gen_exception_inst_addr_mis(DisasContext *ctx) { - generate_exception_mbadaddr(ctx, RISCV_EXCP_INST_ADDR_MIS); + generate_exception_mtval(ctx, RISCV_EXCP_INST_ADDR_MIS); } =20 static inline bool use_goto_tb(DisasContext *ctx, target_ulong dest) --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080398; cv=none; d=zohomail.com; s=zohoarc; b=NaGbrB/hWjzFJhsE8PNdExE7nj+vrHa/caIEoqHMD0qtzhs/f/rg8zpU8X8GHa1A75jMp1Dkl9Ta7m8SYYN/0hwy1GmRbs2HSMG3mFbO50sGJFZ7OaZwowhnW+yPPTiXj2/Aa9Tr8lJVUej1KoP0aY87ZvxRlj/q3YRzMyK34pY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080398; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0PixN4/T5OyJnyvQEeCoAgOoimQCLZXgz3c5Ku1hFTs=; b=UVj794O4WtfOYCb0sns4uKKgrA7aVubFJ12qJsJztofWtRLz/V8I64Nc2SlXmS6ltORfMGFdELccJgQLdrcQWJyusbFHMjxMFFJfkKxXUuxlAwVLPb+xIR1BMiDlhf3rxS39AtqvLe9l0fFgcJD57vXXbo0DRMsQT92JmHqRmbw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080398284371.9668826175508; Mon, 3 May 2021 15:19:58 -0700 (PDT) Received: from localhost ([::1]:59542 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldguz-0001SZ-8V for importer@patchew.org; Mon, 03 May 2021 18:19:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52762) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpB-0004WN-G8 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:13:58 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28338) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgp2-00008S-ED for qemu-devel@nongnu.org; Mon, 03 May 2021 18:13:57 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:46 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:53:57 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:44 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080028; x=1651616028; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=v9dngNOlYI6M8UvqCNI7Vz66vBQPm9MreWEGG7vUnp8=; b=Y7ny2e6VqZonhP2x99XZSGphVuJE1p5raXpt6ANsxGhFs2wjXSZXJFPk q8OCLxHXgzGspyqifdkJz493249gpjeB58PNE66IP/gWDGrjiD9b/eetS dHqBS4yM99FXaFxgBvW7LqESyeGF7y31LAM/coTDD+h3LcmGfW8ggUfX2 U5kWdNi1y4ebEoBMQo2zJTZ3Wj/iNwraham4fa2YYF/nTdAY+xXPcEvS2 MmWONFE+2A28N+m6D5rjGg/J/9IYuRw7cK5C5O5VOIOVZ3UXTiQt8cfE6 KjQ4wk1ASxTfQTVkXmjlvnPdYlUmo0chvDbGcJ3cf2sIL8qzImxuuKpnM g==; IronPort-SDR: dhazBUAxyURqvyG9WrnebSa0SaGKaMXNNQ8LN1hQnOmwtngTXXmF96zdfKS1OhOhHyrrORj1Xu tRhjYMtawt+i0JogCgogYEsoOUsrSMBBKCpPeCG8QS8axKa4xSRsGmkwZyxXvw/kCyfeIoM3wi lnOXp3NIC0coFpVODM55GQCysa/8P/6et2eJFfEXI9ErAoQzjuh2075d/4P0pF45qmQKucunBY LsGJAml7MJ6KbN2DJFrJC8/jsmu4sKnB/yME5O4FRNs69M6VjK6SggA1HidUqjouoEjysk0sii FE0= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114592" IronPort-SDR: 4Di/J6iMiWKc+e24UYBB9BRmYJb9vp0bb8Hg1EW2lGZ6koSnP8gyrbjRFYgq99K+8lPOdBHpPo 52+hYN/Z+1/R/aJLtlVt8p9F3w76BMdGndqV86tWcqvqES7Mlvt1L9sjMAUb8c9k/8tfTdlnCi dgFbvckuMVWgjSevUZe+plmfOAW3kSf11smrz8ZgfrGMB2cVQKJAV1+5XnCOgXe3+rJNRnGKFG hmGtQWHU+Bw8gKvn3Ic+GXR2J6pbbNMnRB6mi22B7SaZilfnLB2jkYihES487P5Ht16fR/HNzC XG/iHdRnYL2FrhIabBCPXynx IronPort-SDR: KJRpmvIUVpweNtnlM0UGNoOujj1KsfFJ9uq+exH4SETjo4LiGiM8YR5dmpCqU3T1ycQI8iFvec S5J2IcmSwc8k+3X5cwjaUF0DFp/eFh6E8MQGiJ7EmgA1D2yL+FR2Lf8XyVnYvLyg5BsR2bY4NM YNlmsdLlc9VwEx3p5kdAhsKHJpDZ+1L6c93Nb6Bu5c8U1qcHAMEQdmde2rPR/AqfQCthJdlfhv ZAwUVdKsC5RBFrWvUBPt/92ZZeNkDo0CNL9gcYIJ8iagISggInYZLy5PJ3GfgBhO//vMoYloYN l5s= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 02/42] docs/system/generic-loader.rst: Fix style Date: Tue, 4 May 2021 08:12:47 +1000 Message-Id: <20210503221327.3068768-3-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Axel Heider , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Axel Heider Fix style to have a proper description of the parameter 'force-raw'. Signed-off-by: Axel Heider Reviewed-by: Alistair Francis Message-id: a7e50a64-1c7c-2d41-96d3-d8a417a659ac@gmx.de Signed-off-by: Alistair Francis --- docs/system/generic-loader.rst | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/system/generic-loader.rst b/docs/system/generic-loader.rst index 6bf8a4eb48..531ddbc8e3 100644 --- a/docs/system/generic-loader.rst +++ b/docs/system/generic-loader.rst @@ -92,9 +92,12 @@ shown below: specified in the executable format header. This option should only be used for the boot image. This will also cause the image to be written to the specified CPU's address space. If not specified, the - default is CPU 0. - Setting force-raw=3Don forces the file - to be treated as a raw image. This can be used to load supported - executable formats as if they were raw. + default is CPU 0. + +```` + Setting 'force-raw=3Don' forces the file to be treated as a raw image. + This can be used to load supported executable formats as if they + were raw. =20 All values are parsed using the standard QemuOpts parsing. This allows the= user to specify any values in any format supported. By default the values --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080657; cv=none; d=zohomail.com; s=zohoarc; b=l3ywpicIpV8wiQU4m6Z3KpS98rT/2CxoZ9qMrQJJppjdeIisQ1WEMiVDZG4zSKx32zl03vQZpMx6GgPXHvOCqve0j0r6EeKq8JI6XW9CVztMT11rXdt5uubSx+2xvbF7V3f9PoKRVP7wMQ6J2tt/H0BKKFnuMsBH2IJXgzz+sDM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080657; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=put6HiBSplwTUlHZ4MKn6i20FN1xfeimEa/oaGcDpdM=; b=LwzKBvJWynjlzPqi5UNQIhdFZLEwYxuEAaf+rEIKLGT1N/ynm4GEBBNW09da4q5qHR26gPeWeDyNE30P79FGI8JeLzz3KzB5/MN0cAeGVVb/edVqJ1h59fFCEuydcDDrchu1oaDY34z5QwRv68poFZ+TWufdF+PzGKi7mv24WVg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080657456400.5012229238969; Mon, 3 May 2021 15:24:17 -0700 (PDT) Received: from localhost ([::1]:39522 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgzA-0004zM-3j for importer@patchew.org; Mon, 03 May 2021 18:24:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpE-0004Wm-1s for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:03 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28326) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgp6-0008VN-Go for qemu-devel@nongnu.org; Mon, 03 May 2021 18:13:59 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:50 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:01 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:47 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080032; x=1651616032; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=a4yEU+4TjBk6Oe2/N0wvc5JGnBHXRW0rnny396yYmb0=; b=Bj2+0KgJHK2PiH5AfAdaLG5m3ftFcBsOAWHj7pi4bw0wYxS+Qj7tQi3m ROz7MouNR0SswfjMhd/LUtLZ93/CfRbsT4CFgAmWJ+4ah2erjyKIf4Vgl Yw7GM+KQ/p/zH1hXOTgu6ALaN04yCyUr+jmBjOHXJZHp7EORGMXEGpkTN 3O4hu6H5TClrSyw0Lg+y8LbXDGur7vjT9vigw8+fkdylI60PWnMFN5PXD V5cNbj6AXf5SRyDpqdiwZ5r+xJvVIrcp9E2xCvq3z8LNPueXgtwTcB6JT IqLM/6MFCPFeNk9Qj84I4wCrffya6CYQqc9mMsb4rjFpfdX8LOJJUSdaV w==; IronPort-SDR: TS+wAi3yjdCp/hiNDKBUJrQZbdUoUkJjEjYJldRgcVLFNgG0auJxrXdEEkuV+xfW4zMn6sSD1W WSk0z+Cuzd481wLWiJ716Mx8Vag+s2YCRMpyWozhiq+06A0bQQf6gYgNhdskGaoKW0qNCGlYQ1 ZXT6r5WGs9AbHj5U1ns5cMfeJC71IPlQt0eqCklq0pnW3Ryhj6YaTD7F7SQMHNTf96t1Vk5IqW 3k6mkXgmi9xTO3S3gWP84Sd9oz8Xd8K982sg7X/Yp5lBOQKy7v7bZQfZ4JgEccJuHL4UW7H6we 8zg= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114594" IronPort-SDR: epvFJpRm4SSIKR2IkZfdzz7MwCkI10IW38OUOShkEDGNx3wUJ0p3S0brhV+Pa2vLo0Kv1bJWz6 55AGhBFmeq5cTaLed5mHzfT0AA+szFNxTuqQtgFKBtzTP5IweZCDRPRGuQ1MdQqXGAZ/NkqOV+ 2sN3/BdJbyLfD3ju9q/A27xSFgeSHVuuOkQFnp3J5LPXBDfLQVDNatLIBczts5RhxbFh9v8N2U Xb8K2zINZrizJBnjw1+LYFAIwdFLb9TftOrcDDmQ7QGp1HAgp+lIc/aLxQwX5XNfVL4+GwXQNx KZjM+CpzaFq44IH0GTTagS8J IronPort-SDR: vi0/ThWEUi7PeNH3O0L+tMlDads4jPGwy/U2Q9MRRhw/b4cT2p2cTHWcIBclJtUBe4JgDqb13a ijAuHYj9A65zBsFcwoC4EaNsak+vL1Wx7r292sHUF2BSDQyP3tkOWmJ0n/u/bRGH7B7pYeiZFq JQ/RKra6Vjdn0Hw3Ty9EYgwKOkVQoxfauoMf8HSo0jcYNDakSRV4hi9adb4MjtTwhZdJk80A4D nR5mszZyy7Y/NCWBbyTKbrF7cuqL3Vf6eqtkQNQ7Xv21jUfqM6ltHIUJIuP453dDFi7pYSyvHt qQk= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 03/42] target/riscv: Align the data type of reset vector address Date: Tue, 4 May 2021 08:12:48 +1000 Message-Id: <20210503221327.3068768-4-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Dylan Jhong , qemu-devel@nongnu.org, Alistair Francis , Ruinland ChuanTzu Tsai , alistair23@gmail.com, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Dylan Jhong Use target_ulong to instead of uint64_t on reset vector address to adapt on both 32/64 machine. Signed-off-by: Dylan Jhong Signed-off-by: Ruinland ChuanTzu Tsai Reviewed-by: Bin Meng Reviewed-by: Alistair Francis Message-id: 20210329034801.22667-1-dylan@andestech.com Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 86e7dbeb20..047d6344fe 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -137,7 +137,7 @@ static void set_feature(CPURISCVState *env, int feature) env->features |=3D (1ULL << feature); } =20 -static void set_resetvec(CPURISCVState *env, int resetvec) +static void set_resetvec(CPURISCVState *env, target_ulong resetvec) { #ifndef CONFIG_USER_ONLY env->resetvec =3D resetvec; --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080249; cv=none; d=zohomail.com; s=zohoarc; b=UrlctuyUFUwRARHwG33ifX03xl24e6VjG/FcmL8cg3AUwvwYy7PCiG2VZjSM8q2mu5eb0yOD+iUeR0Lue5E0bBKPDL1XvDYz2mV98v13Q33y/fEB+Fj/N6smgnoNhxPAmcjlb0VqFgPEe61jZ4Vo1ho2cow4tF/oQT6tPq5G0hM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080249; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UgDgK9UEt9KU3l8heVuZx65fd/QyGmIdL7wmL61XyDA=; b=d4LyhrOPf+sK0Q9CFurOwzFYddPpjjoe1607yVHB7GexUF0Rj8HlJvTI2JdAB5qIaRApd61D+1Kg6b7jQODGCV7U0DNfcom7/Wz09sYFp9n62pMTJBztm0JTi+t7CyPYonXvoT+SxD6WGtzNnyNDvL424ql0DhcdQ9HLPcaE4x4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080249338945.4198936797397; Mon, 3 May 2021 15:17:29 -0700 (PDT) Received: from localhost ([::1]:51468 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgsY-0006Wc-D3 for importer@patchew.org; Mon, 03 May 2021 18:17:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpI-0004XF-Ss for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:04 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28334) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgp9-00006X-GR for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:04 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:53 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:04 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:51 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080035; x=1651616035; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=uxQXJBGZObVTrLTr50Z1TExpqNoN8OBXuU5KlnJOMXE=; b=nmjqpaTKkby3+9MnXlk9QBOO0pYHiTLHSg8ybPFTckkKMtEcwF+Gj79i gk4Fk5zVgxFivt4wmT2XfAbt0d8T/i7WuKvTg/H1GGKPY6FZtEVlHdS2E iOEtntQgKRb6hJTpSK+x+JoRAO9vIkWcnlbUL5nLDeJ1C0AU2RcP5pTuT XFA066A6AVTlUIQhtQE75HoQPgWlAyREn5LXLsfx/Ri0eRAUIPVCOKz0i siIPrEE1WUGNzOVnN1iMmAdxFC9+uo8J/k1PheNQnB6Vov9LhkqQ4c1UJ MESBfByBqxTqW+1pRqQ5/VzJoiOGF2dH7yQ4hBYEcweR/sF80Ao2i/R9D w==; IronPort-SDR: HbA8mmdK4T2eIZ2fqzQpSlGy0aV5cgviXWbERYRn9UKfkGTfEjxHK96cesY3ISgMknKe88Hx/C evhz0ODLQFebmr0B9IcXDaiW7iwynKPoORWIocz3irI9boDoGsdvHhILHe9m+51P65BUIUswaI vgjLfZ2nRjZbE0RyPbmPpeubll8LeKvul0N6re80QPjU2WJt8v7VOyuzGe2/OxNgTjVp4C1U+x PdfvVoMDK/s+rqZBV8iMR0dapVq4kQWPnkJQJNwcbrHrTzHCbxxqEK7574/YEhYWNFAdi1UQhu ZaQ= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114596" IronPort-SDR: T8MAxAYR9dPoUakJm18Mk7NUngjoKwfHyj1vVmBmRkRPiB/8inDhbTz6d4FVc7YD00SkOauCcr j6g5d0epw6zg9RVM/QjD44sHhu1NJhx0E3PSsrOEqU+ad8JN9PMI1J12OAVLcKK/5Zeelmil7g GHY/22rqVe0JnB/5yEyzNMHfHxkAa2crWrVFVG8tfvjhUTOfqxOT+aXlA7nfiB5/2/loXlxPzJ BJdv9Pa+e3lwD8n5+x/+Z/9Y+UjXfAONQ4Wxf0MEV64tRTBAj082I9SshL7burKbDzpQN4kY0y F7p1ABO1PlpM27e+xtxTQPGA IronPort-SDR: gZvgxr+JUTOTcg1GBo2fcfH3ORshKDVNeRPwUBXk1c8IieMMM7tqDDdYRVr7enTIrxkQIj5Zud z4JkV10PNeCz4tpfMUtRjTqXeROi1GQK+VqALk6qOYIcyN6hQoQO8IEGlfvdwQ+kG9VUMvjoKC rqyh366nvMtDSXSyUhip0lVicFbA3iO1Au6dqlVuj5zAIz29AFzh80TbaInj6RY6QamuTQxtAM 3BzRtGW1zk90akTai6SEcH2lssR1W2g/wU4RJ5Biml5TXWSKN47GQ9s3H7UJIC5SjqrzQWrqS3 VuQ= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 04/42] hw/riscv: sifive_e: Add 'const' to sifive_e_memmap[] Date: Tue, 4 May 2021 08:12:49 +1000 Message-Id: <20210503221327.3068768-5-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Emmanuel Blot , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Alistair Francis , alistair23@gmail.com, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Bin Meng This was accidentally dropped before. Add it back. Fixes: 732612856a8 ("hw/riscv: Drop 'struct MemmapEntry'") Reported-by: Emmanuel Blot Signed-off-by: Bin Meng Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Alistair Francis Message-id: 20210331103612.654261-1-bmeng.cn@gmail.com Signed-off-by: Alistair Francis --- hw/riscv/sifive_e.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c index f939bcf9ea..82096b3e5a 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -50,7 +50,7 @@ #include "sysemu/sysemu.h" #include "exec/address-spaces.h" =20 -static MemMapEntry sifive_e_memmap[] =3D { +static const MemMapEntry sifive_e_memmap[] =3D { [SIFIVE_E_DEV_DEBUG] =3D { 0x0, 0x1000 }, [SIFIVE_E_DEV_MROM] =3D { 0x1000, 0x2000 }, [SIFIVE_E_DEV_OTP] =3D { 0x20000, 0x2000 }, --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080239; cv=none; d=zohomail.com; s=zohoarc; b=ffNREiaiI69OBzh8BOy/mpLWnA1Q1H2Bw3vpXBJ1rPnEowPMu6uczcMXpujGvrYhMNUIf950/ST7SGzPWOT5i1to/UpiWafXmzgPyOJxt49RJuNg4m6ePVMjZF8T45sYC6T8urf79SVA4sEfKR2Sbubc9o2zNBRspdMPW0wlPqk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080239; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=8WUQDzRYUxt8peNIU3pwv+EvUDIr07Eusq+5eljd/E0=; b=cdDS27tvWJECi/QQP7Ss3sQ+ft7CPP8KctTQiYlgF83yj6K9i1wNu7QXFqzgFwN7M6Jhlnr7In1icX10JF4pZs+bCZRnODdGxf6KUGt2UF65OZKz3k4rolAwsgzyyXf0Mz6CjgM4CNCQqtQjklNXARlSEs2AtOSWJJ9wPWvjwWc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080239657593.6560521666032; Mon, 3 May 2021 15:17:19 -0700 (PDT) Received: from localhost ([::1]:51272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgsQ-0006Rl-JS for importer@patchew.org; Mon, 03 May 2021 18:17:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52802) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpH-0004Wq-Bw for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:04 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28338) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpC-00008S-DY for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:03 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:56 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:07 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:54 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080038; x=1651616038; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qPCk4g3W8fX2UrYqx8Ha0jhj3mJEcwbKzn0C8s8q6fI=; b=rtachLHhozZWOfOZ+MG+rJ30QxiQmHJfFp9T4jeFL7tcpMT45MjqEteo 60kEAoF6yPUvJZHXK9atquVXef/32OplY7Bt3K2s56kueBlVEk+i+6E6k 05hsKx624vjp097XwSZhajEdwZcKwL7PaK5H+5N4UvTRQffN5Wn9XeLEI Rbi1gtyKdwdXv+AdW67ItTPCbcmPFp8r9ToUG1p4ohWQxIf9oPhPvHr7h afmFUDNSqAM2T6+YQD749+Ekdt+AHS0nPp6ukymdDMr6T8xwloOSeZbXp firICw4Y7h1Md73cUP7r3eSvZRSGu5Xh/Zs5TLUiSURYlfVC2Iq8IOAdc w==; IronPort-SDR: 7+oqVdwrvsIJrwJjZ4vPlraVew1mtRHHed43k3Ii3RNJQMu5Gt3L7y5ctqBf8C1Gl3jWhChGbt uDxj3PIkBQkuEofc3xn1tRS4Slr5oDRMxxkXHbvwRHUtvcNABQCHkxe0mEWtzTMVgi32C/SnHB JiWAOGfzQuISlJdlGrKDDvdDVAK0Ank6nPnTfVqVDd/oqwd2OPNIRBJJMM+E2NrD/cccj4jVrA woXF37ItaN55yXmWTxSA2OFQqDCLp5v4zazim7YaG4ABYGjBl7XEvKlY5w4MyHhsxh5JZ8rbMt 6nc= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114599" IronPort-SDR: MyqSibqaMgpgIyQQ75Ta5bB+FceeQQDRpH9z8WwdG6VXjr9WCKgw6nL8R+NUG15jhhAeONJO57 GLWea6d0lv5t1ITI9dYMyhZhC7PQWiLsxEy3djXR+CUAHG0c9dwrfN4pGV/roflVvgKPHPvl8j xUD7A4AyFKeSxL/fzIOFvT+NDInQ0HybpSGI81MQqBRHUhJq77DoN21Rxji6RYHd1cpG5gA9CA 8GKWhpXJDiY6MjOofrCYY32oULRJBRJhYPNjAZH2a/jYBCFC09xKFSBjGkt+jqgdNNHCMdOy7h SIAzL8xm53dCu4Pm9LJLuCr1 IronPort-SDR: GDi3JYylV1jrWsBc8OQkLFjsqTveSWup8gqWsG8FwviGGomUZoZYq5l0b+AfUed8sZUnmzhtzY 564leOJzFfjAJ8oqghsA6L+MNxpSqWOGsS1pyqD0bdAM6Dj7r79SED5by4lya41VIGK9huEDgS D356axwj4F4c5ZqE28C9bdAt7kCCKzFwtEe7lUpWIYkrktAF9yeicr6oZ4A5va0IaurMNaE5Ai Xg9P8AHi3nSV/jfLcYbgxHkMsiGByl7eBIlyO8yrV9Oah6pwKjjk74qQvYWquvsuvm9+7/DW3V ZWw= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 05/42] target/riscv: Add Shakti C class CPU Date: Tue, 4 May 2021 08:12:50 +1000 Message-Id: <20210503221327.3068768-6-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijai Kumar K , alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Vijai Kumar K C-Class is a member of the SHAKTI family of processors from IIT-M. It is an extremely configurable and commercial-grade 5-stage in-order core supporting the standard RV64GCSUN ISA extensions. Signed-off-by: Vijai Kumar K Reviewed-by: Alistair Francis Message-id: 20210401181457.73039-2-vijai@behindbytes.com Signed-off-by: Alistair Francis --- target/riscv/cpu.h | 1 + target/riscv/cpu.c | 1 + 2 files changed, 2 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 311b1db875..8079da8fa8 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -38,6 +38,7 @@ #define TYPE_RISCV_CPU_BASE32 RISCV_CPU_TYPE_NAME("rv32") #define TYPE_RISCV_CPU_BASE64 RISCV_CPU_TYPE_NAME("rv64") #define TYPE_RISCV_CPU_IBEX RISCV_CPU_TYPE_NAME("lowrisc-ibex") +#define TYPE_RISCV_CPU_SHAKTI_C RISCV_CPU_TYPE_NAME("shakti-c") #define TYPE_RISCV_CPU_SIFIVE_E31 RISCV_CPU_TYPE_NAME("sifive-e31") #define TYPE_RISCV_CPU_SIFIVE_E34 RISCV_CPU_TYPE_NAME("sifive-e34") #define TYPE_RISCV_CPU_SIFIVE_E51 RISCV_CPU_TYPE_NAME("sifive-e51") diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 047d6344fe..6842626c69 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -708,6 +708,7 @@ static const TypeInfo riscv_cpu_type_infos[] =3D { DEFINE_CPU(TYPE_RISCV_CPU_BASE64, rv64_base_cpu_init), DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_E51, rv64_sifive_e_cpu_init), DEFINE_CPU(TYPE_RISCV_CPU_SIFIVE_U54, rv64_sifive_u_cpu_init), + DEFINE_CPU(TYPE_RISCV_CPU_SHAKTI_C, rv64_sifive_u_cpu_init), #endif }; =20 --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080660; cv=none; d=zohomail.com; s=zohoarc; b=Ej9T4hESP2nnwr2sW0NH7AVZvwJAwUO02rO0cijtwYNhVYo2pTmRZQCNcDxb2ey4GfWiz8Z/gaf8nv2QRhGPV2TOA/YAuKFwu7OXy8NyczXzhsvt+6UekWMqr9Uk82Q10pN5fI8mhfvlb33cJFj0gAR9iEEUFMFkWwqQMdWwNlA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080660; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vUZzbbJ3NqQvQnMJHhtHNmhudj1RUdrzk9FCstcHfkM=; b=TmK5tHLIZycWEa6MulDAMIwG1AIb+BQdG1ypVFQ7mYL+K9qI6uBotmn24E8YtLr0QKRf9oSB9xB8sk8cAdeVECydjN6HGPIDnHOi7fECKDb6jexGYidJ3Q/cN4Vk+Qkek7n5uczEhdwpqLYGFUqxAM6ZwFJeVaYuFDvauGhCtoQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080660549666.9953051565401; Mon, 3 May 2021 15:24:20 -0700 (PDT) Received: from localhost ([::1]:39802 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgzD-00058T-Bi for importer@patchew.org; Mon, 03 May 2021 18:24:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52830) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpJ-0004Y7-FO for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:05 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28326) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpF-0008VN-Ew for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:05 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:13:59 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:10 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:13:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080041; x=1651616041; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=r0t0XRe0hIarwDfhub54+/rN9KJEE3oj+OYuPq3J2D0=; b=gTSPbTsQoKX5ywtVmN/rLsmSXhdgFVic4DsCPWu3MSQ3vi0PH+pSJb3S tVnPxC+0dvbT/DqSlOdUMT6GfkEKpXkv8SLLAdKZUaGpyryXv4nE308J+ tGTa8j3VxaiThyNvJCALV115uMDvbSTmeNgp0jqZew+PiswlOuGEWitvf 7CAn1hOQAJPfY9C4TI89MMsPNj7zSV3K8BZCAl1HB+taCGjLtlt0IhaZz rD1zSD1yOrsFgj6GDjcqVidAN4fAvwmbGyl3SvH7St8+gXWxu/cslG8QA VNhBDEiVnAS6erKGWrIs0sqL1Y6ont4JFD4usohJBvJruUgU3uWAyy+si A==; IronPort-SDR: Fm+Xjnirl0XaqcpNaQlVZYEydTI+BNp04/izZY8XnyZT9Foyo7ewEbazxpKiKPUxNU9yVQgl/i WHiJbk3ZHaBkYtf7QsEcCmY6/ltJtwLXmR1Q0imOYy3EpD6RetmKUJ3u7vXIv+PnOkDIRRIFuo kobmgjv+U3ci2GpX/IcMA+i55Bh96xSDVH8X12Lw/4LrR2jmOLlERLJYI3k+Nd41WXZENzmRM7 d+t1eGIga/+Kkyk1WngsrfWMVc/ogMJd/hy0hzYesygqw5iyINRi+hHvu45jCu7hEBu/XcVgz9 Noo= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114602" IronPort-SDR: nHUTF5mAt98NOQmX8soc7dRQPq7QaggVnE+nVLMkvPS6tgV06/oQuOW8CQp1hclNn4x2c5+DHb mhPXPaTzWxc6VnKIgiQhEEb22iqT8RFhFRuXonGWnh6h4VKKTkOASjeSiGJtbarSfcSQObdaRU wZiCUH+oU0ePIIgezpj1zqlLfdFlrow6fmb/J52VlZQ5kOY9VWIXlmLyGRa4Y7sygb/tzGm8z5 ja1RnnF52cRRLfVCTXQ9gTJ7VdSCIa4D6ZW7jpH2UAX4qIh+sZIbZbrzp/AERrzbrqxcsikZJ8 30EMJf4yB+t8sv+Jmr/LDi0t IronPort-SDR: 28M1EL4x1JJu1zhEdEzI8zISzWoHuTgYaMlNt3GdDWnw15R4XQkcvSY2eqJXAYSezuetDmSsOq 3okLOjKANQv9Y6GNmXIvu/S6QwrJezsm08QmAloxU6jxJSRqQlYLsNwjQFqfWh1FQZjCqgS7Ga 5Er+i9eNyUFU/d4bjAsSDkFhcyBk8sXd5aKUIpqywWipElUR+bLJzcl3zLuLW6buTW9/ShlPKK uOMYeI+BreLvVZUPlAEBNWzSVL1dx9vKiInhi7rvMKIZ+uekwU79ryj3ayR1RjPNKpdMgKr41f qQk= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 06/42] riscv: Add initial support for Shakti C machine Date: Tue, 4 May 2021 08:12:51 +1000 Message-Id: <20210503221327.3068768-7-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijai Kumar K , alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Vijai Kumar K Add support for emulating Shakti reference platform based on C-class running on arty-100T board. https://gitlab.com/shaktiproject/cores/shakti-soc/-/blob/master/README.rst Signed-off-by: Vijai Kumar K Reviewed-by: Alistair Francis Message-id: 20210401181457.73039-3-vijai@behindbytes.com Signed-off-by: Alistair Francis --- default-configs/devices/riscv64-softmmu.mak | 1 + include/hw/riscv/shakti_c.h | 73 +++++++++ hw/riscv/shakti_c.c | 170 ++++++++++++++++++++ MAINTAINERS | 7 + hw/riscv/Kconfig | 10 ++ hw/riscv/meson.build | 1 + 6 files changed, 262 insertions(+) create mode 100644 include/hw/riscv/shakti_c.h create mode 100644 hw/riscv/shakti_c.c diff --git a/default-configs/devices/riscv64-softmmu.mak b/default-configs/= devices/riscv64-softmmu.mak index d5eec75f05..bc69301fa4 100644 --- a/default-configs/devices/riscv64-softmmu.mak +++ b/default-configs/devices/riscv64-softmmu.mak @@ -13,3 +13,4 @@ CONFIG_SIFIVE_E=3Dy CONFIG_SIFIVE_U=3Dy CONFIG_RISCV_VIRT=3Dy CONFIG_MICROCHIP_PFSOC=3Dy +CONFIG_SHAKTI_C=3Dy diff --git a/include/hw/riscv/shakti_c.h b/include/hw/riscv/shakti_c.h new file mode 100644 index 0000000000..8ffc2b0213 --- /dev/null +++ b/include/hw/riscv/shakti_c.h @@ -0,0 +1,73 @@ +/* + * Shakti C-class SoC emulation + * + * Copyright (c) 2021 Vijai Kumar K + * + * 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 . + */ + +#ifndef HW_SHAKTI_H +#define HW_SHAKTI_H + +#include "hw/riscv/riscv_hart.h" +#include "hw/boards.h" + +#define TYPE_RISCV_SHAKTI_SOC "riscv.shakti.cclass.soc" +#define RISCV_SHAKTI_SOC(obj) \ + OBJECT_CHECK(ShaktiCSoCState, (obj), TYPE_RISCV_SHAKTI_SOC) + +typedef struct ShaktiCSoCState { + /*< private >*/ + DeviceState parent_obj; + + /*< public >*/ + RISCVHartArrayState cpus; + DeviceState *plic; + MemoryRegion rom; + +} ShaktiCSoCState; + +#define TYPE_RISCV_SHAKTI_MACHINE MACHINE_TYPE_NAME("shakti_c") +#define RISCV_SHAKTI_MACHINE(obj) \ + OBJECT_CHECK(ShaktiCMachineState, (obj), TYPE_RISCV_SHAKTI_MACHINE) +typedef struct ShaktiCMachineState { + /*< private >*/ + MachineState parent_obj; + + /*< public >*/ + ShaktiCSoCState soc; +} ShaktiCMachineState; + +enum { + SHAKTI_C_ROM, + SHAKTI_C_RAM, + SHAKTI_C_UART, + SHAKTI_C_GPIO, + SHAKTI_C_PLIC, + SHAKTI_C_CLINT, + SHAKTI_C_I2C, +}; + +#define SHAKTI_C_PLIC_HART_CONFIG "MS" +/* Including Interrupt ID 0 (no interrupt)*/ +#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_PENDING_BASE 0x1000 +#define SHAKTI_C_PLIC_ENABLE_BASE 0x2000 +#define SHAKTI_C_PLIC_ENABLE_STRIDE 0x80 +#define SHAKTI_C_PLIC_CONTEXT_BASE 0x200000 +#define SHAKTI_C_PLIC_CONTEXT_STRIDE 0x1000 + +#endif diff --git a/hw/riscv/shakti_c.c b/hw/riscv/shakti_c.c new file mode 100644 index 0000000000..c8205d3f22 --- /dev/null +++ b/hw/riscv/shakti_c.c @@ -0,0 +1,170 @@ +/* + * Shakti C-class SoC emulation + * + * Copyright (c) 2021 Vijai Kumar K + * + * 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 . + */ + +#include "qemu/osdep.h" +#include "hw/boards.h" +#include "hw/riscv/shakti_c.h" +#include "qapi/error.h" +#include "hw/intc/sifive_plic.h" +#include "hw/intc/sifive_clint.h" +#include "sysemu/sysemu.h" +#include "hw/qdev-properties.h" +#include "exec/address-spaces.h" +#include "hw/riscv/boot.h" + + +static const struct MemmapEntry { + hwaddr base; + hwaddr size; +} shakti_c_memmap[] =3D { + [SHAKTI_C_ROM] =3D { 0x00001000, 0x2000 }, + [SHAKTI_C_RAM] =3D { 0x80000000, 0x0 }, + [SHAKTI_C_UART] =3D { 0x00011300, 0x00040 }, + [SHAKTI_C_GPIO] =3D { 0x020d0000, 0x00100 }, + [SHAKTI_C_PLIC] =3D { 0x0c000000, 0x20000 }, + [SHAKTI_C_CLINT] =3D { 0x02000000, 0xc0000 }, + [SHAKTI_C_I2C] =3D { 0x20c00000, 0x00100 }, +}; + +static void shakti_c_machine_state_init(MachineState *mstate) +{ + ShaktiCMachineState *sms =3D RISCV_SHAKTI_MACHINE(mstate); + MemoryRegion *system_memory =3D get_system_memory(); + MemoryRegion *main_mem =3D g_new(MemoryRegion, 1); + + /* Allow only Shakti C CPU for this platform */ + if (strcmp(mstate->cpu_type, TYPE_RISCV_CPU_SHAKTI_C) !=3D 0) { + error_report("This board can only be used with Shakti C CPU"); + exit(1); + } + + /* Initialize SoC */ + object_initialize_child(OBJECT(mstate), "soc", &sms->soc, + TYPE_RISCV_SHAKTI_SOC); + qdev_realize(DEVICE(&sms->soc), NULL, &error_abort); + + /* register RAM */ + memory_region_init_ram(main_mem, NULL, "riscv.shakti.c.ram", + mstate->ram_size, &error_fatal); + memory_region_add_subregion(system_memory, + shakti_c_memmap[SHAKTI_C_RAM].base, + main_mem); + + /* ROM reset vector */ + riscv_setup_rom_reset_vec(mstate, &sms->soc.cpus, + shakti_c_memmap[SHAKTI_C_RAM].base, + shakti_c_memmap[SHAKTI_C_ROM].base, + shakti_c_memmap[SHAKTI_C_ROM].size, 0, 0, + NULL); + riscv_load_firmware(mstate->firmware, shakti_c_memmap[SHAKTI_C_RAM].ba= se, + NULL); +} + +static void shakti_c_machine_instance_init(Object *obj) +{ +} + +static void shakti_c_machine_class_init(ObjectClass *klass, void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(klass); + mc->desc =3D "RISC-V Board compatible with Shakti SDK"; + mc->init =3D shakti_c_machine_state_init; + mc->default_cpu_type =3D TYPE_RISCV_CPU_SHAKTI_C; +} + +static const TypeInfo shakti_c_machine_type_info =3D { + .name =3D TYPE_RISCV_SHAKTI_MACHINE, + .parent =3D TYPE_MACHINE, + .class_init =3D shakti_c_machine_class_init, + .instance_init =3D shakti_c_machine_instance_init, + .instance_size =3D sizeof(ShaktiCMachineState), +}; + +static void shakti_c_machine_type_info_register(void) +{ + type_register_static(&shakti_c_machine_type_info); +} +type_init(shakti_c_machine_type_info_register) + +static void shakti_c_soc_state_realize(DeviceState *dev, Error **errp) +{ + ShaktiCSoCState *sss =3D RISCV_SHAKTI_SOC(dev); + MemoryRegion *system_memory =3D get_system_memory(); + + sysbus_realize(SYS_BUS_DEVICE(&sss->cpus), &error_abort); + + sss->plic =3D sifive_plic_create(shakti_c_memmap[SHAKTI_C_PLIC].base, + (char *)SHAKTI_C_PLIC_HART_CONFIG, 0, + SHAKTI_C_PLIC_NUM_SOURCES, + SHAKTI_C_PLIC_NUM_PRIORITIES, + SHAKTI_C_PLIC_PRIORITY_BASE, + SHAKTI_C_PLIC_PENDING_BASE, + SHAKTI_C_PLIC_ENABLE_BASE, + SHAKTI_C_PLIC_ENABLE_STRIDE, + SHAKTI_C_PLIC_CONTEXT_BASE, + SHAKTI_C_PLIC_CONTEXT_STRIDE, + shakti_c_memmap[SHAKTI_C_PLIC].size); + + sifive_clint_create(shakti_c_memmap[SHAKTI_C_CLINT].base, + shakti_c_memmap[SHAKTI_C_CLINT].size, 0, 1, + SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE, + SIFIVE_CLINT_TIMEBASE_FREQ, false); + + /* ROM */ + memory_region_init_rom(&sss->rom, OBJECT(dev), "riscv.shakti.c.rom", + shakti_c_memmap[SHAKTI_C_ROM].size, &error_fata= l); + memory_region_add_subregion(system_memory, + shakti_c_memmap[SHAKTI_C_ROM].base, &sss->rom); +} + +static void shakti_c_soc_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + dc->realize =3D shakti_c_soc_state_realize; +} + +static void shakti_c_soc_instance_init(Object *obj) +{ + ShaktiCSoCState *sss =3D RISCV_SHAKTI_SOC(obj); + + object_initialize_child(obj, "cpus", &sss->cpus, TYPE_RISCV_HART_ARRAY= ); + + /* + * CPU type is fixed and we are not supporting passing from commandlin= e yet. + * So let it be in instance_init. When supported should use ms->cpu_ty= pe + * instead of TYPE_RISCV_CPU_SHAKTI_C + */ + object_property_set_str(OBJECT(&sss->cpus), "cpu-type", + TYPE_RISCV_CPU_SHAKTI_C, &error_abort); + object_property_set_int(OBJECT(&sss->cpus), "num-harts", 1, + &error_abort); +} + +static const TypeInfo shakti_c_type_info =3D { + .name =3D TYPE_RISCV_SHAKTI_SOC, + .parent =3D TYPE_DEVICE, + .class_init =3D shakti_c_soc_class_init, + .instance_init =3D shakti_c_soc_instance_init, + .instance_size =3D sizeof(ShaktiCSoCState), +}; + +static void shakti_c_type_info_register(void) +{ + type_register_static(&shakti_c_type_info); +} +type_init(shakti_c_type_info_register) diff --git a/MAINTAINERS b/MAINTAINERS index 4c05ff8bba..181ea0d76d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1392,6 +1392,13 @@ F: include/hw/misc/mchp_pfsoc_dmc.h F: include/hw/misc/mchp_pfsoc_ioscb.h F: include/hw/misc/mchp_pfsoc_sysreg.h =20 +Shakti C class SoC +M: Vijai Kumar K +L: qemu-riscv@nongnu.org +S: Supported +F: hw/riscv/shakti_c.c +F: include/hw/riscv/shakti_c.h + SiFive Machines M: Alistair Francis M: Bin Meng diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index 1de18cdcf1..a0225716b5 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -19,6 +19,16 @@ config OPENTITAN select IBEX select UNIMP =20 +config SHAKTI + bool + +config SHAKTI_C + bool + select UNIMP + select SHAKTI + select SIFIVE_CLINT + select SIFIVE_PLIC + config RISCV_VIRT bool imply PCI_DEVICES diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build index 275c0f7eb7..a97454661c 100644 --- a/hw/riscv/meson.build +++ b/hw/riscv/meson.build @@ -4,6 +4,7 @@ riscv_ss.add(files('numa.c')) riscv_ss.add(files('riscv_hart.c')) riscv_ss.add(when: 'CONFIG_OPENTITAN', if_true: files('opentitan.c')) riscv_ss.add(when: 'CONFIG_RISCV_VIRT', if_true: files('virt.c')) +riscv_ss.add(when: 'CONFIG_SHAKTI_C', if_true: files('shakti_c.c')) riscv_ss.add(when: 'CONFIG_SIFIVE_E', if_true: files('sifive_e.c')) riscv_ss.add(when: 'CONFIG_SIFIVE_U', if_true: files('sifive_u.c')) riscv_ss.add(when: 'CONFIG_SPIKE', if_true: files('spike.c')) --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080896; cv=none; d=zohomail.com; s=zohoarc; b=Sr57pqesRQw3UNWGIWDKVFpg6/QA60/yVX3EHh15i2R8vngrNn0ls5s7HhEiChTwLQ+IhRD7Th9+og07Z3yhVr3RdPI1mxAhu5wc36ALSXCfhz/VGLZPZpWTxb98su+usZfoRkWtGHff7MGaEDy/ZUc8QNh+uTrCMq1OS2dGaIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080896; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vM/B1NMmx3GXBKkAi89kDjjJY8hNKdT97Hmx6wSx7n8=; b=e5V8zhojCLBnLsdwDVBlclBKfVIvww4O+mwvOI5DhjxCow2awZ8MCQmXtu6AndZtJxSsPBGafwoWfZDLGonvD56g/UO03cs0DcK9PwcZMVzlMAeKCDMocSA4wC814nEn/rI4IvcbXA6GgJoB8EdD8ezy6Zd8p0s8kEPlveGyXG0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080896581884.1057351697018; Mon, 3 May 2021 15:28:16 -0700 (PDT) Received: from localhost ([::1]:51290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh31-0001TW-H9 for importer@patchew.org; Mon, 03 May 2021 18:28:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52842) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpL-0004bR-Ah for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:07 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28338) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpI-00008S-MH for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:07 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:02 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:13 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:00 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080044; x=1651616044; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+StzjlztuRLfj/ZuyyAiwFvIuh/MaI+qsivRZ24t6Qg=; b=HtfOK9L+Z/IEv6s8g4L2vFgBdhVQaWpODHcMVdLXfjvs7ALPkZJchoR3 T0Jtd3xrr73X9PH/rBsLniZupU7CAe6qvijzfgOAsodc5ZpCkHa6Pk5wU d1dVByaKfVmYLhysrAGH3+Zppg2n/8EVhUNlRnDo2dywCKblD1kxU07n6 jKG54GFHE73mf5RlXE+me0qytvxBQVXzVIGN3M+dc0texnXe//YdP1+ty pK/4Ha0Gvc9hL2kf4spNJphdpXLw+RtjH6Aw4QwMZBkhgZQWDMTEccux6 6j+k33y4OnWix3rcbEt+rEftalHU8YXVTVYOETTROO1olWAZXU3NHfrw7 w==; IronPort-SDR: qptQZruSw9p+nOsjpeP8VrIdWmGwn6U4xU7G5iYZDa2YJq7dv88ISS2H8HZKfGRFZr6RVVcuh0 UdUcGmbUfjdMg53+WgxgqB7cVbstzWyW8lfwXvatmw3ildCM6rmC5FryNQ0QKaDPdnukXGLXRY kET2wKDrdY9UjM74zkCKqGVUS3pOzBvHqD7RUSJzfOZP9YLfeTG1WYX0sSVZqEYrTvICKox7kc Es2GiO6+IHl1RKQRLKorlxGuWNTxWNs6vLxIQNpFhSf1O68vWXPRcacQb42A0DxOAkyCk1EC6y uDs= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114607" IronPort-SDR: b486RxGmX/YhJKh3ctCSyH38w6vKBqK3aWN4VzZKe/v8AedZjfrXjdu/sHXWAgQz5xdjZ4Bt8E 1K9UqFb7kSuQKWaDclJNbzpdUoQMjnXlUBxeXGO6iaO3a3m0XA7UE3YzHjkN2rCTUs+FNcxnpx V8sbs2kxIDQ5y6a0lhQc9ir2ipKLo1brjz4ZB5/wKUQvDwhBT/xvBZSda4O1P2nJxBG1mCPdFO mH34U0t2TIwNXq2Br2gFLowiJspKxHHwqtMyaFVQ1DYzXfvzFrAePtvOGkoKWd3asycsPOimrV UJaFDYENVrkYcpnoT6dMNq45 IronPort-SDR: JgrInKymPLkkGEVmXpWrjvMk8tid9vzcOWZmHELGRoA0cCYswCShsD1zm54Qtdc6I5zui6YZ7+ feJjUeQ4xE8PdRaQVWVEx8GF/5XqFen6d8AzD0Tc+jnqVbC96v7kFfsLuAww20+m0F5Lc01TMa ACEfmssPWycoVk/t4ViDsWppo2AesHyepRlU5oLxrMm8madqah1VEcSD9wD5pJtwkYT1aXeid6 y3DPlejXKrZ3UlxpNqA/vDpXSpeIS1jMizxR5VXVDn5FXTqlYTzCAP7gIcijy0cTvqGecFGe3+ kWg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 07/42] hw/char: Add Shakti UART emulation Date: Tue, 4 May 2021 08:12:52 +1000 Message-Id: <20210503221327.3068768-8-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijai Kumar K , alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Vijai Kumar K This is the initial implementation of Shakti UART. Signed-off-by: Vijai Kumar K Reviewed-by: Alistair Francis Message-id: 20210401181457.73039-4-vijai@behindbytes.com Signed-off-by: Alistair Francis --- include/hw/char/shakti_uart.h | 74 ++++++++++++++ hw/char/shakti_uart.c | 185 ++++++++++++++++++++++++++++++++++ MAINTAINERS | 2 + hw/char/meson.build | 1 + hw/char/trace-events | 4 + 5 files changed, 266 insertions(+) create mode 100644 include/hw/char/shakti_uart.h create mode 100644 hw/char/shakti_uart.c diff --git a/include/hw/char/shakti_uart.h b/include/hw/char/shakti_uart.h new file mode 100644 index 0000000000..526c408233 --- /dev/null +++ b/include/hw/char/shakti_uart.h @@ -0,0 +1,74 @@ +/* + * SHAKTI UART + * + * Copyright (c) 2021 Vijai Kumar K + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ + +#ifndef HW_SHAKTI_UART_H +#define HW_SHAKTI_UART_H + +#include "hw/sysbus.h" +#include "chardev/char-fe.h" + +#define SHAKTI_UART_BAUD 0x00 +#define SHAKTI_UART_TX 0x04 +#define SHAKTI_UART_RX 0x08 +#define SHAKTI_UART_STATUS 0x0C +#define SHAKTI_UART_DELAY 0x10 +#define SHAKTI_UART_CONTROL 0x14 +#define SHAKTI_UART_INT_EN 0x18 +#define SHAKTI_UART_IQ_CYCLES 0x1C +#define SHAKTI_UART_RX_THRES 0x20 + +#define SHAKTI_UART_STATUS_TX_EMPTY (1 << 0) +#define SHAKTI_UART_STATUS_TX_FULL (1 << 1) +#define SHAKTI_UART_STATUS_RX_NOT_EMPTY (1 << 2) +#define SHAKTI_UART_STATUS_RX_FULL (1 << 3) +/* 9600 8N1 is the default setting */ +/* Reg value =3D (50000000 Hz)/(16 * 9600)*/ +#define SHAKTI_UART_BAUD_DEFAULT 0x0145 +#define SHAKTI_UART_CONTROL_DEFAULT 0x0100 + +#define TYPE_SHAKTI_UART "shakti-uart" +#define SHAKTI_UART(obj) \ + OBJECT_CHECK(ShaktiUartState, (obj), TYPE_SHAKTI_UART) + +typedef struct { + /* */ + SysBusDevice parent_obj; + + /* */ + MemoryRegion mmio; + + uint32_t uart_baud; + uint32_t uart_tx; + uint32_t uart_rx; + uint32_t uart_status; + uint32_t uart_delay; + uint32_t uart_control; + uint32_t uart_interrupt; + uint32_t uart_iq_cycles; + uint32_t uart_rx_threshold; + + CharBackend chr; +} ShaktiUartState; + +#endif /* HW_SHAKTI_UART_H */ diff --git a/hw/char/shakti_uart.c b/hw/char/shakti_uart.c new file mode 100644 index 0000000000..6870821325 --- /dev/null +++ b/hw/char/shakti_uart.c @@ -0,0 +1,185 @@ +/* + * SHAKTI UART + * + * Copyright (c) 2021 Vijai Kumar K + * + * Permission is hereby granted, free of charge, to any person obtaining a= copy + * of this software and associated documentation files (the "Software"), t= o deal + * in the Software without restriction, including without limitation the r= ights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or se= ll + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included= in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS= OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OT= HER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING= FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN + * THE SOFTWARE. + */ + +#include "qemu/osdep.h" +#include "hw/char/shakti_uart.h" +#include "hw/qdev-properties.h" +#include "hw/qdev-properties-system.h" +#include "qemu/log.h" + +static uint64_t shakti_uart_read(void *opaque, hwaddr addr, unsigned size) +{ + ShaktiUartState *s =3D opaque; + + switch (addr) { + case SHAKTI_UART_BAUD: + return s->uart_baud; + case SHAKTI_UART_RX: + qemu_chr_fe_accept_input(&s->chr); + s->uart_status &=3D ~SHAKTI_UART_STATUS_RX_NOT_EMPTY; + return s->uart_rx; + case SHAKTI_UART_STATUS: + return s->uart_status; + case SHAKTI_UART_DELAY: + return s->uart_delay; + case SHAKTI_UART_CONTROL: + return s->uart_control; + case SHAKTI_UART_INT_EN: + return s->uart_interrupt; + case SHAKTI_UART_IQ_CYCLES: + return s->uart_iq_cycles; + case SHAKTI_UART_RX_THRES: + return s->uart_rx_threshold; + default: + /* Also handles TX REG which is write only */ + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Bad offset 0x%"HWADDR_PRIx"\n", __func__, addr); + } + + return 0; +} + +static void shakti_uart_write(void *opaque, hwaddr addr, + uint64_t data, unsigned size) +{ + ShaktiUartState *s =3D opaque; + uint32_t value =3D data; + uint8_t ch; + + switch (addr) { + case SHAKTI_UART_BAUD: + s->uart_baud =3D value; + break; + case SHAKTI_UART_TX: + ch =3D value; + qemu_chr_fe_write_all(&s->chr, &ch, 1); + s->uart_status &=3D ~SHAKTI_UART_STATUS_TX_FULL; + break; + case SHAKTI_UART_STATUS: + s->uart_status =3D value; + break; + case SHAKTI_UART_DELAY: + s->uart_delay =3D value; + break; + case SHAKTI_UART_CONTROL: + s->uart_control =3D value; + break; + case SHAKTI_UART_INT_EN: + s->uart_interrupt =3D value; + break; + case SHAKTI_UART_IQ_CYCLES: + s->uart_iq_cycles =3D value; + break; + case SHAKTI_UART_RX_THRES: + s->uart_rx_threshold =3D value; + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Bad offset 0x%"HWADDR_PRIx"\n", __func__, addr); + } +} + +static const MemoryRegionOps shakti_uart_ops =3D { + .read =3D shakti_uart_read, + .write =3D shakti_uart_write, + .endianness =3D DEVICE_NATIVE_ENDIAN, + .impl =3D {.min_access_size =3D 1, .max_access_size =3D 4}, + .valid =3D {.min_access_size =3D 1, .max_access_size =3D 4}, +}; + +static void shakti_uart_reset(DeviceState *dev) +{ + ShaktiUartState *s =3D SHAKTI_UART(dev); + + s->uart_baud =3D SHAKTI_UART_BAUD_DEFAULT; + s->uart_tx =3D 0x0; + s->uart_rx =3D 0x0; + s->uart_status =3D 0x0000; + s->uart_delay =3D 0x0000; + s->uart_control =3D SHAKTI_UART_CONTROL_DEFAULT; + s->uart_interrupt =3D 0x0000; + s->uart_iq_cycles =3D 0x00; + s->uart_rx_threshold =3D 0x00; +} + +static int shakti_uart_can_receive(void *opaque) +{ + ShaktiUartState *s =3D opaque; + + return !(s->uart_status & SHAKTI_UART_STATUS_RX_NOT_EMPTY); +} + +static void shakti_uart_receive(void *opaque, const uint8_t *buf, int size) +{ + ShaktiUartState *s =3D opaque; + + s->uart_rx =3D *buf; + s->uart_status |=3D SHAKTI_UART_STATUS_RX_NOT_EMPTY; +} + +static void shakti_uart_realize(DeviceState *dev, Error **errp) +{ + ShaktiUartState *sus =3D SHAKTI_UART(dev); + qemu_chr_fe_set_handlers(&sus->chr, shakti_uart_can_receive, + shakti_uart_receive, NULL, NULL, sus, NULL, t= rue); +} + +static void shakti_uart_instance_init(Object *obj) +{ + ShaktiUartState *sus =3D SHAKTI_UART(obj); + memory_region_init_io(&sus->mmio, + obj, + &shakti_uart_ops, + sus, + TYPE_SHAKTI_UART, + 0x1000); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &sus->mmio); +} + +static Property shakti_uart_properties[] =3D { + DEFINE_PROP_CHR("chardev", ShaktiUartState, chr), + DEFINE_PROP_END_OF_LIST(), +}; + +static void shakti_uart_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + dc->reset =3D shakti_uart_reset; + dc->realize =3D shakti_uart_realize; + device_class_set_props(dc, shakti_uart_properties); +} + +static const TypeInfo shakti_uart_info =3D { + .name =3D TYPE_SHAKTI_UART, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(ShaktiUartState), + .class_init =3D shakti_uart_class_init, + .instance_init =3D shakti_uart_instance_init, +}; + +static void shakti_uart_register_types(void) +{ + type_register_static(&shakti_uart_info); +} +type_init(shakti_uart_register_types) diff --git a/MAINTAINERS b/MAINTAINERS index 181ea0d76d..93830817f1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1397,7 +1397,9 @@ M: Vijai Kumar K L: qemu-riscv@nongnu.org S: Supported F: hw/riscv/shakti_c.c +F: hw/char/shakti_uart.c F: include/hw/riscv/shakti_c.h +F: include/hw/char/shakti_uart.h =20 SiFive Machines M: Alistair Francis diff --git a/hw/char/meson.build b/hw/char/meson.build index da5bb8b762..014833dded 100644 --- a/hw/char/meson.build +++ b/hw/char/meson.build @@ -19,6 +19,7 @@ softmmu_ss.add(when: 'CONFIG_SERIAL', if_true: files('ser= ial.c')) softmmu_ss.add(when: 'CONFIG_SERIAL_ISA', if_true: files('serial-isa.c')) softmmu_ss.add(when: 'CONFIG_SERIAL_PCI', if_true: files('serial-pci.c')) softmmu_ss.add(when: 'CONFIG_SERIAL_PCI_MULTI', if_true: files('serial-pci= -multi.c')) +softmmu_ss.add(when: 'CONFIG_SHAKTI', if_true: files('shakti_uart.c')) softmmu_ss.add(when: 'CONFIG_VIRTIO_SERIAL', if_true: files('virtio-consol= e.c')) softmmu_ss.add(when: 'CONFIG_XEN', if_true: files('xen_console.c')) softmmu_ss.add(when: 'CONFIG_XILINX', if_true: files('xilinx_uartlite.c')) diff --git a/hw/char/trace-events b/hw/char/trace-events index 76d52938ea..c8dcade104 100644 --- a/hw/char/trace-events +++ b/hw/char/trace-events @@ -90,6 +90,10 @@ cmsdk_apb_uart_set_params(int speed) "CMSDK APB UART: pa= rams set to %d 8N1" nrf51_uart_read(uint64_t addr, uint64_t r, unsigned int size) "addr 0x%" P= RIx64 " value 0x%" PRIx64 " size %u" nrf51_uart_write(uint64_t addr, uint64_t value, unsigned int size) "addr 0= x%" PRIx64 " value 0x%" PRIx64 " size %u" =20 +# shakti_uart.c +shakti_uart_read(uint64_t addr, uint16_t r, unsigned int size) "addr 0x%" = PRIx64 " value 0x%" PRIx16 " size %u" +shakti_uart_write(uint64_t addr, uint64_t value, unsigned int size) "addr = 0x%" PRIx64 " value 0x%" PRIx64 " size %u" + # exynos4210_uart.c exynos_uart_dmabusy(uint32_t channel) "UART%d: DMA busy (Rx buffer empty)" exynos_uart_dmaready(uint32_t channel) "UART%d: DMA ready" --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080399; cv=none; d=zohomail.com; s=zohoarc; b=HwarOyBtc6sWwSdlOttKsG4nTs+R0I+uF/0pZNbEW37lCYo5i1bZdCEHnrY5afjTskj5uNRovFxYMYRlwirj28oFf5zFc6I9OaeoAkrfTaGtdcNSeWPchVyzOmWzzkFVADRR2db0LFAUKLEA0jZYbbiUDD9duQvmI+cLTJRCipk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080399; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cT3F+hUE1FJysoSnxr2llCGXFLLto3GJ5k2LZekavzg=; b=JRIjoISDsGeG2tBKQ5TTTWvl+mBb/jUHmc7pkDsbE3w0Kv0I2LoNUVnQeNVGT3I5wdiiT1VLm5tKH/oQTPCu1A5uyg0vKULoNIjhMfuX1LCcjXqaUkxjDbPUSES27xmvPonzIOvHlyw7isOtSjLyyPgT9BHp7NlQQ+vhPhSKiCo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080399598857.6225751975333; Mon, 3 May 2021 15:19:59 -0700 (PDT) Received: from localhost ([::1]:59692 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgv0-0001WO-FF for importer@patchew.org; Mon, 03 May 2021 18:19:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52856) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpO-0004iU-B3 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:10 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28372) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpL-0000C6-9M for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:10 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:05 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:16 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:03 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080047; x=1651616047; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=33oKkjRKiHqdoKmxYRwb0N+/KhiXMXBJI/b/JHXG0gg=; b=Uws5/kyDJ0J6tkwvQF1XhT2BRLANjP0HnjErdRY1aeCWRuKrabn+N6QT iPewYKQvFqH+72ciqB7XhfB3UleHHSOGMeF/fk5jbr1NXECUJe2Z8ejKN d3fMWRPCfeEvHrdUGK76maX1QYgEsjQYDPGeqSZb0+voBSbEqyD14UVbH XbcBh6xbkY51/MCdFnVhv2KL0SQ0SMUGMnqNJvIZ8oz6YBZM6Ntic1D5Q Fw7cFRdI6mCHXF/f/RrLwRTA01wtw4KN9b/pfWWC6GaQS7Rjc1qfgWJiO aeImieYvqQwn8vevVDmy4fXWHFD4YeHsm8JL5H1bsYsoSihk9GM/IuJey w==; IronPort-SDR: FdXgVj91vqANXzAbm5bXyFS00d6b8KWf/p6ogVLB/hRzykOylYBaDgWmqS2E75KF7VEv3VTyxq xSK6eKXh/pp1MahCnURKLTxzChkIUf+rb7WfOaur4U3Gx2OA+I8Ka514SxfM75eZX69ryq/ZR/ a6GBSXBemLoQ5iAKpGw6zs6BGvymsBI8glc1jSFO/6jmbBPMVIQKYXogsQwaKaRTyfc42sDq5m 9fLB7TIMBjEIC34eWvdjZLwx/Vavyg+L+ht4WvEIHzzPzbiSFzr8d0P3fucstJAYQvq5zMuvhe wkw= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114612" IronPort-SDR: Ehia+rqvUjo+2k6nzQTf8MiPF65p9/qKSu5y0m0vwzQAeMFLBb5JzRJYhmgKLAtKHlt0Oicbap /f+uv8byTq1yF9HUtypeaLpJqvrE0aGcXb8j/x9JfAmIdGcc9vAXDDnNB8oAexmkWtF9PP7w+k JAxbO1rrxzZYTUAPwvd1Xf6ffN//2MAdMqqJw8GmhgQCVUaquxTVG/tdinq9Fky/CUmASrdCr9 V5Il3TSnnY9yUpulMne0k0EmuiKkDYd3pcdB2Hdbo7nPJM0r5J6E0KH5x2mG658Ngfi6apZrjl slOzY4wAkMWCGYVAcmOCXZDr IronPort-SDR: pjgqMa2YXAl9Jm5DbYFideuRqouQ5+OuJURNo3viheXAbOfQceIs57FZ1RyjUf3/QttiY5L5Wg +5wL4Zi/jsGNU++qncJjPlObTrBWuwhPRW9NkUr4oXpLKHESohfr5Wfp11ND72/jBLLGFi7pZm JIojBtGoleziQEsbGnEU/hIQe2bfoQtsMf+/1SPdFQQxfkn5JopbTQFNLsEb0iimZ8SNnvodto nFREUpwW920Wu+KcMgVIfvJQ0gNjHj7pSs8ChOjkIAs0UeS5NmMowqu2pqPGxbmvaRvZWZ44WV ac8= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 08/42] hw/riscv: Connect Shakti UART to Shakti platform Date: Tue, 4 May 2021 08:12:53 +1000 Message-Id: <20210503221327.3068768-9-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijai Kumar K , alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Vijai Kumar K Connect one shakti uart to the shakti_c machine. Signed-off-by: Vijai Kumar K Reviewed-by: Alistair Francis Message-id: 20210401181457.73039-5-vijai@behindbytes.com Signed-off-by: Alistair Francis --- include/hw/riscv/shakti_c.h | 2 ++ hw/riscv/shakti_c.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/include/hw/riscv/shakti_c.h b/include/hw/riscv/shakti_c.h index 8ffc2b0213..50a2b79086 100644 --- a/include/hw/riscv/shakti_c.h +++ b/include/hw/riscv/shakti_c.h @@ -21,6 +21,7 @@ =20 #include "hw/riscv/riscv_hart.h" #include "hw/boards.h" +#include "hw/char/shakti_uart.h" =20 #define TYPE_RISCV_SHAKTI_SOC "riscv.shakti.cclass.soc" #define RISCV_SHAKTI_SOC(obj) \ @@ -33,6 +34,7 @@ typedef struct ShaktiCSoCState { /*< public >*/ RISCVHartArrayState cpus; DeviceState *plic; + ShaktiUartState uart; MemoryRegion rom; =20 } ShaktiCSoCState; diff --git a/hw/riscv/shakti_c.c b/hw/riscv/shakti_c.c index c8205d3f22..e207fa83dd 100644 --- a/hw/riscv/shakti_c.c +++ b/hw/riscv/shakti_c.c @@ -125,6 +125,13 @@ static void shakti_c_soc_state_realize(DeviceState *de= v, Error **errp) SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE, SIFIVE_CLINT_TIMEBASE_FREQ, false); =20 + qdev_prop_set_chr(DEVICE(&(sss->uart)), "chardev", serial_hd(0)); + if (!sysbus_realize(SYS_BUS_DEVICE(&sss->uart), errp)) { + return; + } + sysbus_mmio_map(SYS_BUS_DEVICE(&sss->uart), 0, + shakti_c_memmap[SHAKTI_C_UART].base); + /* ROM */ memory_region_init_rom(&sss->rom, OBJECT(dev), "riscv.shakti.c.rom", shakti_c_memmap[SHAKTI_C_ROM].size, &error_fata= l); @@ -143,6 +150,7 @@ static void shakti_c_soc_instance_init(Object *obj) ShaktiCSoCState *sss =3D RISCV_SHAKTI_SOC(obj); =20 object_initialize_child(obj, "cpus", &sss->cpus, TYPE_RISCV_HART_ARRAY= ); + object_initialize_child(obj, "uart", &sss->uart, TYPE_SHAKTI_UART); =20 /* * CPU type is fixed and we are not supporting passing from commandlin= e yet. --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080403; cv=none; d=zohomail.com; s=zohoarc; b=RGN8DiL/FFfJFOfNktkIXVGdngY5nkwe8Ga0Xips7vmIS/VZ0eD6lmZZPDyGEdXF63d2VugDMjWWKWSoY6PmPIngvG9bOLOezt+UhBtssDjUrUJNoQ9WSfB2HXq+wiQp0j3Hcjg36/XC4EWPLybkExMuS++maxDQgOtKR4+hWNg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080403; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=OAjKTUrdo1e26SrCbVzMQ9NFN6N0le/Eumc8cWBa9Vk=; b=eJfRqxyThb9WPLKcQuj7VbRZ+a1kC1XqIfIy8mn9ngaJAMz2UczokTKRSYmXr0tmvZ/eR71YQERqKRQYdBHH5zMnosNkwPrSvANKFVhauh9pcvrFpPN7exmYS2YDcjcIpq/VFpe2bHDwtako4JG1Ts076/SqD3IQmNREigCfrlU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162008040395110.658133138111339; Mon, 3 May 2021 15:20:03 -0700 (PDT) Received: from localhost ([::1]:59948 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgv4-0001cZ-P1 for importer@patchew.org; Mon, 03 May 2021 18:20:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52870) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpQ-0004kv-Sm for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:13 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28338) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpO-00008S-6Y for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:12 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:09 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:20 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080050; x=1651616050; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=cQ+E7bgIWZyDSwMRwwYYu9Yg/pKRgf4qLqVbRNdF+II=; b=l/9QQlP2NO+g3Bx7uRKF7O1wwB13JQI0LUUkgEuElSs1KawcPQGLDKOU egKKEhKNUUn4M/4aqZ5lbpwMbTnipFY/t3suzQgWuzpg6zARo9BNSNL6D U/17jP65fvvbtM9Nb4fl+VU8i5+uY1WdPAQDpjW7vK/qftnOrjCDMpcFz aXZEVnp8uCuORQHL73HcPNNTUeFKbHQW2HAewhEFTX5apafLvSA3MLqaZ 85EMRZYPNDp3rCE4OooLQOTBJzmm6acPJ9NbVLnVYwIVSDladcSUHdUZe 33u6EoQCoLGy8QktVx1YBwcdjY+N5hy7iRrUuLUOG8oUFNBAtwfwypKCb w==; IronPort-SDR: w4CeeGs4HnM1usGvtG5p7VgayTuq8VUtW8Gw9IRYJ8vDIvfjCQopA0OC+QXaD+Xh4iK+9v3aQ2 d+8/agNcyFemLhWas1wurZFtscwqZnLu+JwfQTMzjNqaWckEVkr3kU9mlHuUWIIvAfATzkdSNl 65ONMbLGerNngda3akYCInUyTnGag+YAWz5bMuyAFvS9q5YO8P9Aqv2CZphGRewxAadj54x5OS ykciKLAlAzFe7oZ5uAiiyQ/1kY/10HqTPpUAYBDdjZ62rOdMwu2T10QLkU3xe8LebSLeZuaVeL hEA= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114619" IronPort-SDR: ChO1GjR8zSiHXzrbGwqU/FLa8+jq/cno+unn3yXQAvN0HhpcxO1++rd+8HUFxlJz2B3CoanEYp /Jqia8Jda3HWNcNhbglPzFqT/Ery3cOiclR5RMv5HED0YbfVW2exTy+QvCACH6piYZ9jN7o5YE FgevvDJaoscEPQ+31ZOCaAi3tKiL8qV06wkcAtpFRoU4X5EuoIdt1kuTr2VGdx4RDPU4zFjaJL BjBNwufZpBmMsylpgEKSRYC1K2AT++QqyXzpISBc3ym13VY4tKgmdqQltDif9j1kKRMig5hU+2 9bs6KI1+0MrNI1t/vt9miDZo IronPort-SDR: zLe3MsDDRsv6ZYWTVdxc3iECNQ/AupWhtGb1l3bSlhxrGCtnZ2p7HLdT3C1uZVAXQIq9Qmq22T h8pzCR0w2nOo+3YqMyLZAcUKEZx89M/jQOo1b+LirfnziVvYJNXSZ8s1+SmFBai7AUrkyNBbZo PwpamLvyHyVt8WruNiWb85yV0YB78guX/NJZk1RdmHQd+6NinMeWgibH+EByTN5J2rrIo3sMC1 DK2F5Fsi5QtvmdsuWKn9r/vL2tbHDWQp6RMFTsWzj51mXtqBeDxlz4nCcg3mUE3u0bh3vvMG1l knQ= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 09/42] target/riscv: Convert the RISC-V exceptions to an enum Date: Tue, 4 May 2021 08:12:54 +1000 Message-Id: <20210503221327.3068768-10-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Reviewed-by: Richard Henderson Message-id: f191dcf08bf413a822e743a7c7f824d68879a527.1617290165.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 44 ++++++++++++++++++++------------------- target/riscv/cpu.c | 2 +- target/riscv/cpu_helper.c | 4 ++-- 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index b42dd4f8d8..8549d77b4f 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -504,27 +504,29 @@ #define DEFAULT_RSTVEC 0x1000 =20 /* Exception causes */ -#define EXCP_NONE -1 /* sentinel value */ -#define RISCV_EXCP_INST_ADDR_MIS 0x0 -#define RISCV_EXCP_INST_ACCESS_FAULT 0x1 -#define RISCV_EXCP_ILLEGAL_INST 0x2 -#define RISCV_EXCP_BREAKPOINT 0x3 -#define RISCV_EXCP_LOAD_ADDR_MIS 0x4 -#define RISCV_EXCP_LOAD_ACCESS_FAULT 0x5 -#define RISCV_EXCP_STORE_AMO_ADDR_MIS 0x6 -#define RISCV_EXCP_STORE_AMO_ACCESS_FAULT 0x7 -#define RISCV_EXCP_U_ECALL 0x8 -#define RISCV_EXCP_S_ECALL 0x9 -#define RISCV_EXCP_VS_ECALL 0xa -#define RISCV_EXCP_M_ECALL 0xb -#define RISCV_EXCP_INST_PAGE_FAULT 0xc /* since: priv-1.10.0= */ -#define RISCV_EXCP_LOAD_PAGE_FAULT 0xd /* since: priv-1.10.0= */ -#define RISCV_EXCP_STORE_PAGE_FAULT 0xf /* since: priv-1.10.0= */ -#define RISCV_EXCP_SEMIHOST 0x10 -#define RISCV_EXCP_INST_GUEST_PAGE_FAULT 0x14 -#define RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT 0x15 -#define RISCV_EXCP_VIRT_INSTRUCTION_FAULT 0x16 -#define RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT 0x17 +typedef enum RISCVException { + RISCV_EXCP_NONE =3D -1, /* sentinel value */ + RISCV_EXCP_INST_ADDR_MIS =3D 0x0, + RISCV_EXCP_INST_ACCESS_FAULT =3D 0x1, + RISCV_EXCP_ILLEGAL_INST =3D 0x2, + RISCV_EXCP_BREAKPOINT =3D 0x3, + RISCV_EXCP_LOAD_ADDR_MIS =3D 0x4, + RISCV_EXCP_LOAD_ACCESS_FAULT =3D 0x5, + RISCV_EXCP_STORE_AMO_ADDR_MIS =3D 0x6, + RISCV_EXCP_STORE_AMO_ACCESS_FAULT =3D 0x7, + RISCV_EXCP_U_ECALL =3D 0x8, + RISCV_EXCP_S_ECALL =3D 0x9, + RISCV_EXCP_VS_ECALL =3D 0xa, + RISCV_EXCP_M_ECALL =3D 0xb, + RISCV_EXCP_INST_PAGE_FAULT =3D 0xc, /* since: priv-1.10.0 */ + RISCV_EXCP_LOAD_PAGE_FAULT =3D 0xd, /* since: priv-1.10.0 */ + RISCV_EXCP_STORE_PAGE_FAULT =3D 0xf, /* since: priv-1.10.0 */ + RISCV_EXCP_SEMIHOST =3D 0x10, + RISCV_EXCP_INST_GUEST_PAGE_FAULT =3D 0x14, + RISCV_EXCP_LOAD_GUEST_ACCESS_FAULT =3D 0x15, + RISCV_EXCP_VIRT_INSTRUCTION_FAULT =3D 0x16, + RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT =3D 0x17, +} RISCVException; =20 #define RISCV_EXCP_INT_FLAG 0x80000000 #define RISCV_EXCP_INT_MASK 0x7fffffff diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 6842626c69..e530df9385 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -358,7 +358,7 @@ static void riscv_cpu_reset(DeviceState *dev) env->pc =3D env->resetvec; env->two_stage_lookup =3D false; #endif - cs->exception_index =3D EXCP_NONE; + cs->exception_index =3D RISCV_EXCP_NONE; env->load_res =3D -1; set_default_nan_mode(1, &env->fp_status); } diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 503c2559f8..99cc388db9 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -72,7 +72,7 @@ static int riscv_cpu_local_irq_pending(CPURISCVState *env) if (irqs) { return ctz64(irqs); /* since non-zero */ } else { - return EXCP_NONE; /* indicates no pending interrupt */ + return RISCV_EXCP_NONE; /* indicates no pending interrupt */ } } #endif @@ -1069,5 +1069,5 @@ void riscv_cpu_do_interrupt(CPUState *cs) =20 env->two_stage_lookup =3D false; #endif - cs->exception_index =3D EXCP_NONE; /* mark handled to qemu */ + cs->exception_index =3D RISCV_EXCP_NONE; /* mark handled to qemu */ } --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081105; cv=none; d=zohomail.com; s=zohoarc; b=FZ/kLzgmRBJEwRcpq7lA0S/gLuKvW090Q3Mv2JpF0JoI/Rgo7MdztEDTIHPnX03Ls8UnkaM/WSGHpVwZKHqE5MgwBbZ1kZzAwYyIsIRzsDju6aFjoc2Zn6OZ+iLawnlk+hgFYk+W4mxHs6tOv/mIEF5ceD1Ql6qErtmAbIj6HIo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081105; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1gnZiXIBV5RMXiPTMNFbZzkvfcwegCUssXJMfgQE9iA=; b=cU5/gTf4Ej2w+iXVp5+Zyi+eFzvU5M/8MamuTJIrzbVXQgG/rILgOb5v0kTazYRSsUSC0VWytZ0Bsp2LYbjPq+uR+tBaBeTPS54Hcc+PjzX3ss2x1JfOk3HJfRa5GPHvH9RfCQpdAfOhEwXFNn4W68L40lBiB5q6eyNLI3its2g= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081105641816.1897823227931; Mon, 3 May 2021 15:31:45 -0700 (PDT) Received: from localhost ([::1]:59952 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh6O-0004xF-8v for importer@patchew.org; Mon, 03 May 2021 18:31:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpV-0004lb-7U for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:17 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpT-0000Fd-3Q for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:17 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:12 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:23 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080054; x=1651616054; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=DVBFNXfYUcIYw0n/vuetOzN6NP8PIXn4wpMgfPrqrDM=; b=jjbGlxju7mS7y25eIH7TN0qfnfSovZ30eZOsdaBgH/ARjzyXCQRt1eS5 U7AC2ZhGvLWC29c+lE4wniJ9HnmgsHEpFIPkC34HuovcQOkJ6y2Ezq0Ux +deGXvcirm8nk6VuwgUUvQzmXsPM3FUqaWCHw9t3lrXAqkTMqNqC44LwE LjDFGG50mGAbMQsKqsctLLz5Jq2LhQK5lDowliv1AMKSWfBkmX5GoKoP+ fPZoUYtyjJvRsuXoXQ0iWZmNqANIZ2eJTLUOWaUaFwCyu131VBvsBnff1 Isndm323YifCZUNFcpYv6agkoJlO15j+iboh+xJNTS0kmevtdMUV3ygJn A==; IronPort-SDR: JquyFaI1/3X4XudXHNhlGHxVHD+tE5lYBwgfddec0llbT3Wv+dY4o+fPGPhhyoH8qwa4e/sonS 8lFiRXREm5P2VgaUmjfL7y85rW+6ZYV7grsy/JZhXCw3rrWYSCe5Fmy3I8+PK8AbxSOar5FcHq VYV+A/9zWpMYMlAPBaJboqyS5KLuqQ9vkgacBQmfs3URYDPnYoFIs6aj9CULLwaM5jfjD5IkZ/ RBJ0lvkkADOC+vODzaGXTtdNuNBzE43HCSQaxw4/ueb8+/2UHEgcgxstpllwjH3ux/a7ze2z8L UwQ= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114623" IronPort-SDR: HppDUST8mTF2OaGBPbQyCWOBgCT1YoqCMmtlOePd3VnYgBpKkZjRhbAhp352kS4i1TIopVwLL+ cTLFrJeFUyStTZT2QjlqhMEfnuToE3ztbql8SwqsgFuR2orvi2MO4hsLU3tcqx2nOhZ7HHB7DP Yefnts5yQTkttQL+PFSk584HOBGv6+hU2feGpBjYST6FEU0pMlcC4sZBhlSLLXxxyjBU8hmzaC IIJYP/t/m5BngY9mrpxXk1XlxP0j9ZqVCwagu02PVkujBiqxs3EHr+uh62AmC1OkSaAC4yZrS4 /f6S+zQx3RJAGg6jFRmOP7I9 IronPort-SDR: DLOT5up2FTWrOhuwT2XAn8CTBOG0hbsM2xCM9tNz7DBtQ+jGXmjMXee/VO0TtnzPmFNewSqeJP bN1L9hlWXYdjChHQh11X8dpinwuT2t9rsMVJwJRIz46c9w5MbnLFMe5iaBG20RrB49YEYBkInp OalFJNtFXSSEhqyqcSkliDxF8VTJRg/iwgZgLWzUQlaQSXvKzMnILnG+PGBuhD21dDfHSIbEKG enmfF9zaXjmEm6FHZ/kM3bMzu86pcMgcjO3mWNtPTnCcsgakIukA+B6arIAuR3al8NOFKIHY4T XwM= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 10/42] target/riscv: Use the RISCVException enum for CSR predicates Date: Tue, 4 May 2021 08:12:55 +1000 Message-Id: <20210503221327.3068768-11-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 187261fa671c3a77cf5aa482adb2a558c02a7cad.1617290165.git.alistai= r.francis@wdc.com --- target/riscv/cpu.h | 3 +- target/riscv/csr.c | 80 +++++++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 8079da8fa8..1dd42a6bc1 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -472,7 +472,8 @@ static inline target_ulong riscv_csr_read(CPURISCVState= *env, int csrno) return val; } =20 -typedef int (*riscv_csr_predicate_fn)(CPURISCVState *env, int csrno); +typedef RISCVException (*riscv_csr_predicate_fn)(CPURISCVState *env, + int csrno); typedef int (*riscv_csr_read_fn)(CPURISCVState *env, int csrno, target_ulong *ret_value); typedef int (*riscv_csr_write_fn)(CPURISCVState *env, int csrno, diff --git a/target/riscv/csr.c b/target/riscv/csr.c index de7427d8f8..1938bdca7d 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -35,29 +35,29 @@ void riscv_set_csr_ops(int csrno, riscv_csr_operations = *ops) } =20 /* Predicates */ -static int fs(CPURISCVState *env, int csrno) +static RISCVException fs(CPURISCVState *env, int csrno) { #if !defined(CONFIG_USER_ONLY) /* loose check condition for fcsr in vector extension */ if ((csrno =3D=3D CSR_FCSR) && (env->misa & RVV)) { - return 0; + return RISCV_EXCP_NONE; } if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } #endif - return 0; + return RISCV_EXCP_NONE; } =20 -static int vs(CPURISCVState *env, int csrno) +static RISCVException vs(CPURISCVState *env, int csrno) { if (env->misa & RVV) { - return 0; + return RISCV_EXCP_NONE; } - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 -static int ctr(CPURISCVState *env, int csrno) +static RISCVException ctr(CPURISCVState *env, int csrno) { #if !defined(CONFIG_USER_ONLY) CPUState *cs =3D env_cpu(env); @@ -65,7 +65,7 @@ static int ctr(CPURISCVState *env, int csrno) =20 if (!cpu->cfg.ext_counters) { /* The Counters extensions is not enabled */ - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 if (riscv_cpu_virt_enabled(env)) { @@ -73,25 +73,25 @@ static int ctr(CPURISCVState *env, int csrno) case CSR_CYCLE: if (!get_field(env->hcounteren, HCOUNTEREN_CY) && get_field(env->mcounteren, HCOUNTEREN_CY)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_TIME: if (!get_field(env->hcounteren, HCOUNTEREN_TM) && get_field(env->mcounteren, HCOUNTEREN_TM)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_INSTRET: if (!get_field(env->hcounteren, HCOUNTEREN_IR) && get_field(env->mcounteren, HCOUNTEREN_IR)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_HPMCOUNTER3...CSR_HPMCOUNTER31: if (!get_field(env->hcounteren, 1 << (csrno - CSR_HPMCOUNTER3)= ) && get_field(env->mcounteren, 1 << (csrno - CSR_HPMCOUNTER3))= ) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; } @@ -100,93 +100,101 @@ static int ctr(CPURISCVState *env, int csrno) case CSR_CYCLEH: if (!get_field(env->hcounteren, HCOUNTEREN_CY) && get_field(env->mcounteren, HCOUNTEREN_CY)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_TIMEH: if (!get_field(env->hcounteren, HCOUNTEREN_TM) && get_field(env->mcounteren, HCOUNTEREN_TM)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_INSTRETH: if (!get_field(env->hcounteren, HCOUNTEREN_IR) && get_field(env->mcounteren, HCOUNTEREN_IR)) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; case CSR_HPMCOUNTER3H...CSR_HPMCOUNTER31H: if (!get_field(env->hcounteren, 1 << (csrno - CSR_HPMCOUNT= ER3H)) && get_field(env->mcounteren, 1 << (csrno - CSR_HPMCOUNTE= R3H))) { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } break; } } } #endif - return 0; + return RISCV_EXCP_NONE; } =20 -static int ctr32(CPURISCVState *env, int csrno) +static RISCVException ctr32(CPURISCVState *env, int csrno) { if (!riscv_cpu_is_32bit(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 return ctr(env, csrno); } =20 #if !defined(CONFIG_USER_ONLY) -static int any(CPURISCVState *env, int csrno) +static RISCVException any(CPURISCVState *env, int csrno) { - return 0; + return RISCV_EXCP_NONE; } =20 -static int any32(CPURISCVState *env, int csrno) +static RISCVException any32(CPURISCVState *env, int csrno) { if (!riscv_cpu_is_32bit(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 return any(env, csrno); =20 } =20 -static int smode(CPURISCVState *env, int csrno) +static RISCVException smode(CPURISCVState *env, int csrno) { - return -!riscv_has_ext(env, RVS); + if (riscv_has_ext(env, RVS)) { + return RISCV_EXCP_NONE; + } + + return RISCV_EXCP_ILLEGAL_INST; } =20 -static int hmode(CPURISCVState *env, int csrno) +static RISCVException hmode(CPURISCVState *env, int csrno) { if (riscv_has_ext(env, RVS) && riscv_has_ext(env, RVH)) { /* Hypervisor extension is supported */ if ((env->priv =3D=3D PRV_S && !riscv_cpu_virt_enabled(env)) || env->priv =3D=3D PRV_M) { - return 0; + return RISCV_EXCP_NONE; } else { - return -RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; } } =20 - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 -static int hmode32(CPURISCVState *env, int csrno) +static RISCVException hmode32(CPURISCVState *env, int csrno) { if (!riscv_cpu_is_32bit(env)) { - return 0; + return RISCV_EXCP_NONE; } =20 return hmode(env, csrno); =20 } =20 -static int pmp(CPURISCVState *env, int csrno) +static RISCVException pmp(CPURISCVState *env, int csrno) { - return -!riscv_feature(env, RISCV_FEATURE_PMP); + if (riscv_feature(env, RISCV_FEATURE_PMP)) { + return RISCV_EXCP_NONE; + } + + return RISCV_EXCP_ILLEGAL_INST; } #endif =20 @@ -1293,8 +1301,8 @@ int riscv_csrrw(CPURISCVState *env, int csrno, target= _ulong *ret_value, return -RISCV_EXCP_ILLEGAL_INST; } ret =3D csr_ops[csrno].predicate(env, csrno); - if (ret < 0) { - return ret; + if (ret !=3D RISCV_EXCP_NONE) { + return -ret; } =20 /* execute combined read/write operation if it exists */ --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080662; cv=none; d=zohomail.com; s=zohoarc; b=GOls+1aT6UpmAcM5vIlz3G8CaAr6k8Ou7BcQnyqlFqJUbX63dVLVdOF9mUhW7mBLOXHM9zQzG+PpXWjMn213kxawIFP7kN9vbAewmmXPd6Fi8T+xRtxx4F2xQSpnrv6B5ASLgoUlslVhwqAK6ocMk/PWO266uImbA/RwM49iiaE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080662; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IZSBsg8Eez7e4wxEF2yLS8DXOzHsbLLZ3sspcrinGa8=; b=nAREsth2JZpEPQvvOwo4pJJ/lcoJ3GNpGoAJbAC9Jtk3m5o5XyAbYYXNuUoew6MVlYNPlEZZl2ClGULJ5DaQhKWUr7Sf46mG25+XAhNu8MkZU77iU2O5MwCRZiOuM0U4PiDbqxdrM27vmDqUGvPXsFCKiF4AihiwXWAvRo/i+w0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080662291123.76823394314135; Mon, 3 May 2021 15:24:22 -0700 (PDT) Received: from localhost ([::1]:40082 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgzF-0005FL-AO for importer@patchew.org; Mon, 03 May 2021 18:24:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52944) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpb-0004m6-0X for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:23 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpX-0000ID-AO for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:22 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:16 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:27 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:13 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080059; x=1651616059; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bxuh/HYpFG5/VX0DQF6fAKC2S1UYsYT0FobkIKhBegY=; b=N2DWpgCeHS+fcemQIymrULC8qSh/Vi7uf439WFWn39QclOCixtdGPa3D TsI8NG8K9UKg5y4hVfkrlPJfC5PXhh+/5YOvvFaj4HSgsf6eFTfNZmZOr nsF9NcLzim8zbrAtkZ3+H04WMTA0No1bL9Ohn+QbCisAQlaq4uvOh+Vt2 JR+zDPFx7HXbs1/OOWqlPACAOP14fG736+jLyOFYFzbvdCYL1GIB/qoWT 1Wn9pC1jRbVk4FIhzDLHbKyKHixHeWdrGR1R67jbfJakQh8WQsAGjAAXn rs2BshuSrAo0Y+J0eXIuVWpy+NvJYYSp5ZeERaic3wMuE7c1DSREhCeNt g==; IronPort-SDR: fAn0CF7Vz/+rGs0Fk7mEmzEgU4Ox4yTrq8dh7+NVdCchoqj8llKHGV5q53FavB5iV6JedOmQ+F mrPTCcSx9cpZh3w9f1k09MuQwR6m541Z3D98ygEbQ3E7z2hx7aDMSU0wZVS8LiRLWcpwKk0PcW we1cQQbkh076JtZFZk0aHBgjkNH7UUPjIOtvUmnl4gn9c/AebmT0EhyNhN0dla7MMoEPmifPn7 /rO+PkQpponw3ehaC/O68CcIQKDbFQZ++4WldUESsHwMpZK4LvYtHKPqNDUOC8FO9Lzj8kFLP9 ht8= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114629" IronPort-SDR: 55sIhcaEgQOgC3dYsuLHQRWg+9Qv1sgOF24tfd+jjc5iJFVj+OoJoXzdI7Bpzro9z7+gjNgkJd HBppLD0An/vcg5e3SsOrTb4fRZHzgPUV/whdwuSVh5wxPftv/t53IqJPdjNICawgb35NzTIS5J ORgpkLh7SYnwBINceI5gcwHNFy/qINSwX1N7YERfJ3OnoZSjN3FDewGQIzG7/szi10XYhLq7s6 hmsP0E0lZBrG4KH/vMaUPWugs5GQCT5T9zGJ+VhDMvwg7+Fvfui/srSsQU0zER8icFR5EvRVXX 7oVM4QpvHHJOcE5Tfgx85HD+ IronPort-SDR: 35d1IpJM2fJidJrpQ4HfVOX/dOaKVS1Wqz+aRhvKhwbxmcLRXXXk6M78ATtw+E3pRxmA6a0bm/ ItKz8i52EruWZFtkxY++Xx2UZnhaWmKJxI1Ii+94GNUNE4In88w3yj7gq8VQora2oI7XEoPIqi OnTa24LXn8fikK7sfiMn5+6oEDs8GQ2Z05yQJPePPz5JPj3kn3L2qhIkp9qxV035zN6YO0hcal Twwg428od6jv7qcMWFMwSlnIiiSNg0M1c+dkSB/bTliD78GlGYLhL/yjJEK9v79NutxVllDi0L 4aU= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 11/42] target/riscv: Fix 32-bit HS mode access permissions Date: Tue, 4 May 2021 08:12:56 +1000 Message-Id: <20210503221327.3068768-12-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: cb1ef2061547dc9028ce3cf4f6622588f9c09149.1617290165.git.alistai= r.francis@wdc.com --- target/riscv/csr.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 1938bdca7d..6a39c4aa96 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -181,7 +181,11 @@ static RISCVException hmode(CPURISCVState *env, int cs= rno) static RISCVException hmode32(CPURISCVState *env, int csrno) { if (!riscv_cpu_is_32bit(env)) { - return RISCV_EXCP_NONE; + if (riscv_cpu_virt_enabled(env)) { + return RISCV_EXCP_ILLEGAL_INST; + } else { + return RISCV_EXCP_VIRT_INSTRUCTION_FAULT; + } } =20 return hmode(env, csrno); --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080663; cv=none; d=zohomail.com; s=zohoarc; b=bXeC1HFElp902KSVERO1fQYXuVVVhqxKP4SKcYgwFrGmkObYWoUFNy15MycG6tzWaokhEm2Uuq+u6BxAbv8IkJQ3aSBe62ftwJwSJRgw7z3uJZtOKDWzUGmi5IXYHZsMVv2/ozUZJz/g12Y2et96QqIeOT30bk95titpF3qmngk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080663; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0dYQS/6AOGxkJjCjMHh7M4zZtbFBGYVrLFDdDJ12F9Q=; b=ZJreJFlySoogSC6Rcn3EOSNrv5spt4Ns6dEWGqLCMwiWJo5/OoQvPzQvlmbC15cMtefEf9uwLaJkGWrU5p2AvXYCSaju9A7zJRh+0FBSl4WT1wD0NKFw1cTtkne46/IveiiFq6gMYwR2cLnyG1cugndqoMiBrWmwx3IHnWpsPHo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080663496281.28850916558065; Mon, 3 May 2021 15:24:23 -0700 (PDT) Received: from localhost ([::1]:39982 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldgzF-0005Ch-TC for importer@patchew.org; Mon, 03 May 2021 18:24:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52976) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpk-0004ob-62 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:32 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpZ-0000Fd-2j for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:31 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:20 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:31 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080060; x=1651616060; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=e0YzdJesqAIbUxCt8y8Vw5TYLDaNlmu3rc5rIc1NNq0=; b=DLkUBDVCUQfQFHFpj/HC8qBfwGYvIMiaBaeQit21fWm8rgqGNU90UHPh bI4rGeMZENyWEl0NPsPjHc1Kj2t6rrUMUhy4qyvJWUX/FAQnCNlHmS/Dy c0egMBy3wizHcHx2FqsIomSPgMn5B1NPpu1OfKAd66iR/a73trnk785mW swA8BafIbE8OU6eul+9ohbLF1q6TR27JjXFzEjIO/EnLAIgLuXy181wNu xum2vEbYxTODEClluqSc1ZXcWzSwKGXWkK7qpy0CC5K/l5bnZokFYmL8w FQlanV+Mb9JeZvWxhSrqa8d+79IcSW7FQf5tXUZkTVDD5HmereNqZ29Gy w==; IronPort-SDR: UaWO1G2Yjw8uGRqrl88jMsJhG6d8UMRmrnlUgfE8M4k9Lh6aTwAtx4QiXnVECTPiXCzw51tgSj tIazOU+fZBiZFuI84nIaJ5zCGKsSs2t1/5/tHKb3H2FCmVvloY8EHgTmp6ExhGjX3t+hwYaXCz QFMqU5qs9sV4QEma1mDf4DH1rTIqxwRqBwsYVkyveMnWNrUfQg+CUYGb67MMd6jMtrU/Nsm9FK Z+lILhT3+ci+0x40kuEy/HpUlh6OKJvWXiAtiVq8RV9G6eeqNU2F9spJleFsDNi0dZoiWG6gCI mQE= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114635" IronPort-SDR: tWmaF3zQb5benFOvTmCH/1k6XQpFZzyo/+TCnQRldSH2V3sz9n/1nHlRHMRIaUai4vT9vviMCe kESV8ZR5Wk6DT563ICS8M81qKEuhDIeDCEVUUMik3dvllWCOoFSy5gaNPpSMDMc0UMkWbnhH2i D7sdpkfaKc4U9k2qyM7YOIvHUZLyYDnSWFC6vqqw5B7+f6D5LdZqphBzmt0E5Z/ez49fiiMhPI fd7Pdi+fkSctP/h0FZNNGr9dEgqgmqSGI99IWK1Xusl4eAMpMx1euhcV+lvyzLPVhOKWrZVIEv 8GqBqlMs/rINvxD9JK7bKtAs IronPort-SDR: ZDP2ybTfNa/vp4/We4TuwJcg91zs3az+xBrJ5NHE0mAb6PCceiRy6oJs+rVeIiZFYeqXu/mEhl 5gQl0CPgk41gKgNRQhEoeDfmzZaCasSr0LyYEgW4r+eQhZHjjbWtjqq8FEzQtvqAkX4ITicFSN u/hm4TP7gxKKO7ia3ZuHIUdgkrFdSZ9MVZweUcPjHL7pB/xkC4nwJvAP/HAcELbRwlQcp2vpgp 46JAoZppNPzd8bLzwJm52YDBUi4QDw9OP3bwKY64LDc7shkoeOCA2VUGMO7c8+r0KSE0umbar0 on8= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 12/42] target/riscv: Use the RISCVException enum for CSR operations Date: Tue, 4 May 2021 08:12:57 +1000 Message-Id: <20210503221327.3068768-13-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 8566c4c271723f27f3ae8fc2429f906a459f17ce.1617290165.git.alistai= r.francis@wdc.com --- target/riscv/cpu.h | 14 +- target/riscv/csr.c | 629 +++++++++++++++++++++++++++------------------ 2 files changed, 382 insertions(+), 261 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 1dd42a6bc1..a7b8876ea0 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -474,12 +474,14 @@ static inline target_ulong riscv_csr_read(CPURISCVSta= te *env, int csrno) =20 typedef RISCVException (*riscv_csr_predicate_fn)(CPURISCVState *env, int csrno); -typedef int (*riscv_csr_read_fn)(CPURISCVState *env, int csrno, - target_ulong *ret_value); -typedef int (*riscv_csr_write_fn)(CPURISCVState *env, int csrno, - target_ulong new_value); -typedef int (*riscv_csr_op_fn)(CPURISCVState *env, int csrno, - target_ulong *ret_value, target_ulong new_value, target_ulong write_ma= sk); +typedef RISCVException (*riscv_csr_read_fn)(CPURISCVState *env, int csrno, + target_ulong *ret_value); +typedef RISCVException (*riscv_csr_write_fn)(CPURISCVState *env, int csrno, + target_ulong new_value); +typedef RISCVException (*riscv_csr_op_fn)(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, + target_ulong write_mask); =20 typedef struct { const char *name; diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 6a39c4aa96..f67eaf4042 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -203,57 +203,62 @@ static RISCVException pmp(CPURISCVState *env, int csr= no) #endif =20 /* User Floating-Point CSRs */ -static int read_fflags(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_fflags(CPURISCVState *env, int csrno, + target_ulong *val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } #endif *val =3D riscv_cpu_get_fflags(env); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_fflags(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_fflags(CPURISCVState *env, int csrno, + target_ulong val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } env->mstatus |=3D MSTATUS_FS; #endif riscv_cpu_set_fflags(env, val & (FSR_AEXC >> FSR_AEXC_SHIFT)); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_frm(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_frm(CPURISCVState *env, int csrno, + target_ulong *val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } #endif *val =3D env->frm; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_frm(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_frm(CPURISCVState *env, int csrno, + target_ulong val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } env->mstatus |=3D MSTATUS_FS; #endif env->frm =3D val & (FSR_RD >> FSR_RD_SHIFT); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_fcsr(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_fcsr(CPURISCVState *env, int csrno, + target_ulong *val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } #endif *val =3D (riscv_cpu_get_fflags(env) << FSR_AEXC_SHIFT) @@ -262,14 +267,15 @@ static int read_fcsr(CPURISCVState *env, int csrno, t= arget_ulong *val) *val |=3D (env->vxrm << FSR_VXRM_SHIFT) | (env->vxsat << FSR_VXSAT_SHIFT); } - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_fcsr(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_fcsr(CPURISCVState *env, int csrno, + target_ulong val) { #if !defined(CONFIG_USER_ONLY) if (!env->debugger && !riscv_cpu_fp_enabled(env)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } env->mstatus |=3D MSTATUS_FS; #endif @@ -279,59 +285,68 @@ static int write_fcsr(CPURISCVState *env, int csrno, = target_ulong val) env->vxsat =3D (val & FSR_VXSAT) >> FSR_VXSAT_SHIFT; } riscv_cpu_set_fflags(env, (val & FSR_AEXC) >> FSR_AEXC_SHIFT); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vtype(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vtype(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vtype; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vl(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vl(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vl; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vxrm(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vxrm(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vxrm; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vxrm(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vxrm(CPURISCVState *env, int csrno, + target_ulong val) { env->vxrm =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vxsat(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vxsat(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vxsat; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vxsat(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vxsat(CPURISCVState *env, int csrno, + target_ulong val) { env->vxsat =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vstart(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vstart(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vstart; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vstart(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vstart(CPURISCVState *env, int csrno, + target_ulong val) { env->vstart =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 /* User Timers and Counters */ -static int read_instret(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_instret(CPURISCVState *env, int csrno, + target_ulong *val) { #if !defined(CONFIG_USER_ONLY) if (icount_enabled()) { @@ -342,10 +357,11 @@ static int read_instret(CPURISCVState *env, int csrno= , target_ulong *val) #else *val =3D cpu_get_host_ticks(); #endif - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_instreth(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_instreth(CPURISCVState *env, int csrno, + target_ulong *val) { #if !defined(CONFIG_USER_ONLY) if (icount_enabled()) { @@ -356,46 +372,50 @@ static int read_instreth(CPURISCVState *env, int csrn= o, target_ulong *val) #else *val =3D cpu_get_host_ticks() >> 32; #endif - return 0; + return RISCV_EXCP_NONE; } =20 #if defined(CONFIG_USER_ONLY) -static int read_time(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_time(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D cpu_get_host_ticks(); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_timeh(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_timeh(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D cpu_get_host_ticks() >> 32; - return 0; + return RISCV_EXCP_NONE; } =20 #else /* CONFIG_USER_ONLY */ =20 -static int read_time(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_time(CPURISCVState *env, int csrno, + target_ulong *val) { uint64_t delta =3D riscv_cpu_virt_enabled(env) ? env->htimedelta : 0; =20 if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 *val =3D env->rdtime_fn(env->rdtime_fn_arg) + delta; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_timeh(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_timeh(CPURISCVState *env, int csrno, + target_ulong *val) { uint64_t delta =3D riscv_cpu_virt_enabled(env) ? env->htimedelta : 0; =20 if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 *val =3D (env->rdtime_fn(env->rdtime_fn_arg) + delta) >> 32; - return 0; + return RISCV_EXCP_NONE; } =20 /* Machine constants */ @@ -449,22 +469,26 @@ static const char valid_vm_1_10_64[16] =3D { }; =20 /* Machine Information Registers */ -static int read_zero(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_zero(CPURISCVState *env, int csrno, + target_ulong *val) { - return *val =3D 0; + *val =3D 0; + return RISCV_EXCP_NONE; } =20 -static int read_mhartid(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mhartid(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mhartid; - return 0; + return RISCV_EXCP_NONE; } =20 /* Machine Trap Setup */ -static int read_mstatus(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mstatus(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mstatus; - return 0; + return RISCV_EXCP_NONE; } =20 static int validate_vm(CPURISCVState *env, target_ulong vm) @@ -476,7 +500,8 @@ static int validate_vm(CPURISCVState *env, target_ulong= vm) } } =20 -static int write_mstatus(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mstatus(CPURISCVState *env, int csrno, + target_ulong val) { uint64_t mstatus =3D env->mstatus; uint64_t mask =3D 0; @@ -507,16 +532,18 @@ static int write_mstatus(CPURISCVState *env, int csrn= o, target_ulong val) mstatus =3D set_field(mstatus, MSTATUS_SD, dirty); env->mstatus =3D mstatus; =20 - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mstatush(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mstatush(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mstatus >> 32; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mstatush(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mstatush(CPURISCVState *env, int csrno, + target_ulong val) { uint64_t valh =3D (uint64_t)val << 32; uint64_t mask =3D MSTATUS_MPV | MSTATUS_GVA; @@ -527,26 +554,28 @@ static int write_mstatush(CPURISCVState *env, int csr= no, target_ulong val) =20 env->mstatus =3D (env->mstatus & ~mask) | (valh & mask); =20 - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_misa(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_misa(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->misa; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_misa(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_misa(CPURISCVState *env, int csrno, + target_ulong val) { if (!riscv_feature(env, RISCV_FEATURE_MISA)) { /* drop write to misa */ - return 0; + return RISCV_EXCP_NONE; } =20 /* 'I' or 'E' must be present */ if (!(val & (RVI | RVE))) { /* It is not, drop write to misa */ - return 0; + return RISCV_EXCP_NONE; } =20 /* 'E' excludes all other extensions */ @@ -554,7 +583,7 @@ static int write_misa(CPURISCVState *env, int csrno, ta= rget_ulong val) /* when we support 'E' we can do "val =3D RVE;" however * for now we just drop writes if 'E' is present. */ - return 0; + return RISCV_EXCP_NONE; } =20 /* Mask extensions that are not supported by this hart */ @@ -585,55 +614,63 @@ static int write_misa(CPURISCVState *env, int csrno, = target_ulong val) =20 env->misa =3D val; =20 - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_medeleg(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_medeleg(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->medeleg; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_medeleg(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_medeleg(CPURISCVState *env, int csrno, + target_ulong val) { env->medeleg =3D (env->medeleg & ~delegable_excps) | (val & delegable_= excps); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mideleg(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mideleg(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mideleg; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mideleg(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mideleg(CPURISCVState *env, int csrno, + target_ulong val) { env->mideleg =3D (env->mideleg & ~delegable_ints) | (val & delegable_i= nts); if (riscv_has_ext(env, RVH)) { env->mideleg |=3D VS_MODE_INTERRUPTS; } - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mie(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mie(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mie; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mie(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mie(CPURISCVState *env, int csrno, + target_ulong val) { env->mie =3D (env->mie & ~all_ints) | (val & all_ints); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mtvec(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mtvec(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mtvec; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mtvec(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mtvec(CPURISCVState *env, int csrno, + target_ulong val) { /* bits [1:0] encode mode; 0 =3D direct, 1 =3D vectored, 2 >=3D reserv= ed */ if ((val & 3) < 2) { @@ -641,72 +678,83 @@ static int write_mtvec(CPURISCVState *env, int csrno,= target_ulong val) } else { qemu_log_mask(LOG_UNIMP, "CSR_MTVEC: reserved mode not supported\n= "); } - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mcounteren(CPURISCVState *env, int csrno, target_ulong *va= l) +static RISCVException read_mcounteren(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mcounteren; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mcounteren(CPURISCVState *env, int csrno, target_ulong va= l) +static RISCVException write_mcounteren(CPURISCVState *env, int csrno, + target_ulong val) { env->mcounteren =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 /* Machine Trap Handling */ -static int read_mscratch(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mscratch(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mscratch; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mscratch(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mscratch(CPURISCVState *env, int csrno, + target_ulong val) { env->mscratch =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mepc(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mepc(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mepc; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mepc(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mepc(CPURISCVState *env, int csrno, + target_ulong val) { env->mepc =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mcause(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mcause(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mcause; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mcause(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mcause(CPURISCVState *env, int csrno, + target_ulong val) { env->mcause =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mtval(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mtval(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mtval; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mtval(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mtval(CPURISCVState *env, int csrno, + target_ulong val) { env->mtval =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int rmw_mip(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +static RISCVException rmw_mip(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_m= ask) { RISCVCPU *cpu =3D env_archcpu(env); /* Allow software control of delegable interrupts not claimed by hardw= are */ @@ -723,42 +771,47 @@ static int rmw_mip(CPURISCVState *env, int csrno, tar= get_ulong *ret_value, *ret_value =3D old_mip; } =20 - return 0; + return RISCV_EXCP_NONE; } =20 /* Supervisor Trap Setup */ -static int read_sstatus(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_sstatus(CPURISCVState *env, int csrno, + target_ulong *val) { target_ulong mask =3D (sstatus_v1_10_mask); *val =3D env->mstatus & mask; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_sstatus(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_sstatus(CPURISCVState *env, int csrno, + target_ulong val) { target_ulong mask =3D (sstatus_v1_10_mask); target_ulong newval =3D (env->mstatus & ~mask) | (val & mask); return write_mstatus(env, CSR_MSTATUS, newval); } =20 -static int read_vsie(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vsie(CPURISCVState *env, int csrno, + target_ulong *val) { /* Shift the VS bits to their S bit location in vsie */ *val =3D (env->mie & env->hideleg & VS_MODE_INTERRUPTS) >> 1; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_sie(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_sie(CPURISCVState *env, int csrno, + target_ulong *val) { if (riscv_cpu_virt_enabled(env)) { read_vsie(env, CSR_VSIE, val); } else { *val =3D env->mie & env->mideleg; } - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vsie(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vsie(CPURISCVState *env, int csrno, + target_ulong val) { /* Shift the S bits to their VS bit location in mie */ target_ulong newval =3D (env->mie & ~VS_MODE_INTERRUPTS) | @@ -776,16 +829,18 @@ static int write_sie(CPURISCVState *env, int csrno, t= arget_ulong val) write_mie(env, CSR_MIE, newval); } =20 - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_stvec(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_stvec(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->stvec; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_stvec(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_stvec(CPURISCVState *env, int csrno, + target_ulong val) { /* bits [1:0] encode mode; 0 =3D direct, 1 =3D vectored, 2 >=3D reserv= ed */ if ((val & 3) < 2) { @@ -793,72 +848,83 @@ static int write_stvec(CPURISCVState *env, int csrno,= target_ulong val) } else { qemu_log_mask(LOG_UNIMP, "CSR_STVEC: reserved mode not supported\n= "); } - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_scounteren(CPURISCVState *env, int csrno, target_ulong *va= l) +static RISCVException read_scounteren(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->scounteren; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_scounteren(CPURISCVState *env, int csrno, target_ulong va= l) +static RISCVException write_scounteren(CPURISCVState *env, int csrno, + target_ulong val) { env->scounteren =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 /* Supervisor Trap Handling */ -static int read_sscratch(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_sscratch(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->sscratch; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_sscratch(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_sscratch(CPURISCVState *env, int csrno, + target_ulong val) { env->sscratch =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_sepc(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_sepc(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->sepc; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_sepc(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_sepc(CPURISCVState *env, int csrno, + target_ulong val) { env->sepc =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_scause(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_scause(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->scause; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_scause(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_scause(CPURISCVState *env, int csrno, + target_ulong val) { env->scause =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_stval(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_stval(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->stval; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_stval(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_stval(CPURISCVState *env, int csrno, + target_ulong val) { env->stval =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int rmw_vsip(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +static RISCVException rmw_vsip(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_= mask) { /* Shift the S bits to their VS bit location in mip */ int ret =3D rmw_mip(env, 0, ret_value, new_value << 1, @@ -869,8 +935,9 @@ static int rmw_vsip(CPURISCVState *env, int csrno, targ= et_ulong *ret_value, return ret; } =20 -static int rmw_sip(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +static RISCVException rmw_sip(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_m= ask) { int ret; =20 @@ -886,32 +953,34 @@ static int rmw_sip(CPURISCVState *env, int csrno, tar= get_ulong *ret_value, } =20 /* Supervisor Protection and Translation */ -static int read_satp(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_satp(CPURISCVState *env, int csrno, + target_ulong *val) { if (!riscv_feature(env, RISCV_FEATURE_MMU)) { *val =3D 0; - return 0; + return RISCV_EXCP_NONE; } =20 if (env->priv =3D=3D PRV_S && get_field(env->mstatus, MSTATUS_TVM)) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } else { *val =3D env->satp; } =20 - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_satp(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_satp(CPURISCVState *env, int csrno, + target_ulong val) { if (!riscv_feature(env, RISCV_FEATURE_MMU)) { - return 0; + return RISCV_EXCP_NONE; } if (validate_vm(env, get_field(val, SATP_MODE)) && ((val ^ env->satp) & (SATP_MODE | SATP_ASID | SATP_PPN))) { if (env->priv =3D=3D PRV_S && get_field(env->mstatus, MSTATUS_TVM)= ) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } else { if ((val ^ env->satp) & SATP_ASID) { tlb_flush(env_cpu(env)); @@ -919,11 +988,12 @@ static int write_satp(CPURISCVState *env, int csrno, = target_ulong val) env->satp =3D val; } } - return 0; + return RISCV_EXCP_NONE; } =20 /* Hypervisor Extensions */ -static int read_hstatus(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hstatus(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->hstatus; if (!riscv_cpu_is_32bit(env)) { @@ -932,10 +1002,11 @@ static int read_hstatus(CPURISCVState *env, int csrn= o, target_ulong *val) } /* We only support little endian */ *val =3D set_field(*val, HSTATUS_VSBE, 0); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hstatus(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hstatus(CPURISCVState *env, int csrno, + target_ulong val) { env->hstatus =3D val; if (!riscv_cpu_is_32bit(env) && get_field(val, HSTATUS_VSXL) !=3D 2) { @@ -944,35 +1015,40 @@ static int write_hstatus(CPURISCVState *env, int csr= no, target_ulong val) if (get_field(val, HSTATUS_VSBE) !=3D 0) { qemu_log_mask(LOG_UNIMP, "QEMU does not support big endian guests.= "); } - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_hedeleg(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hedeleg(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->hedeleg; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hedeleg(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hedeleg(CPURISCVState *env, int csrno, + target_ulong val) { env->hedeleg =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_hideleg(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hideleg(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->hideleg; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hideleg(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hideleg(CPURISCVState *env, int csrno, + target_ulong val) { env->hideleg =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int rmw_hvip(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +static RISCVException rmw_hvip(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_= mask) { int ret =3D rmw_mip(env, 0, ret_value, new_value, write_mask & hvip_writable_mask); @@ -982,8 +1058,9 @@ static int rmw_hvip(CPURISCVState *env, int csrno, tar= get_ulong *ret_value, return ret; } =20 -static int rmw_hip(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +static RISCVException rmw_hip(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_m= ask) { int ret =3D rmw_mip(env, 0, ret_value, new_value, write_mask & hip_writable_mask); @@ -993,103 +1070,119 @@ static int rmw_hip(CPURISCVState *env, int csrno, = target_ulong *ret_value, return ret; } =20 -static int read_hie(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hie(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mie & VS_MODE_INTERRUPTS; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hie(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hie(CPURISCVState *env, int csrno, + target_ulong val) { target_ulong newval =3D (env->mie & ~VS_MODE_INTERRUPTS) | (val & VS_M= ODE_INTERRUPTS); return write_mie(env, CSR_MIE, newval); } =20 -static int read_hcounteren(CPURISCVState *env, int csrno, target_ulong *va= l) +static RISCVException read_hcounteren(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->hcounteren; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hcounteren(CPURISCVState *env, int csrno, target_ulong va= l) +static RISCVException write_hcounteren(CPURISCVState *env, int csrno, + target_ulong val) { env->hcounteren =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_hgeie(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hgeie(CPURISCVState *env, int csrno, + target_ulong *val) { qemu_log_mask(LOG_UNIMP, "No support for a non-zero GEILEN."); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hgeie(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hgeie(CPURISCVState *env, int csrno, + target_ulong val) { qemu_log_mask(LOG_UNIMP, "No support for a non-zero GEILEN."); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_htval(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_htval(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->htval; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_htval(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_htval(CPURISCVState *env, int csrno, + target_ulong val) { env->htval =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_htinst(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_htinst(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->htinst; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_htinst(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_htinst(CPURISCVState *env, int csrno, + target_ulong val) { - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_hgeip(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hgeip(CPURISCVState *env, int csrno, + target_ulong *val) { qemu_log_mask(LOG_UNIMP, "No support for a non-zero GEILEN."); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hgeip(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hgeip(CPURISCVState *env, int csrno, + target_ulong val) { qemu_log_mask(LOG_UNIMP, "No support for a non-zero GEILEN."); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_hgatp(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_hgatp(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->hgatp; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_hgatp(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_hgatp(CPURISCVState *env, int csrno, + target_ulong val) { env->hgatp =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_htimedelta(CPURISCVState *env, int csrno, target_ulong *va= l) +static RISCVException read_htimedelta(CPURISCVState *env, int csrno, + target_ulong *val) { if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 *val =3D env->htimedelta; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_htimedelta(CPURISCVState *env, int csrno, target_ulong va= l) +static RISCVException write_htimedelta(CPURISCVState *env, int csrno, + target_ulong val) { if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 if (riscv_cpu_is_32bit(env)) { @@ -1097,162 +1190,185 @@ static int write_htimedelta(CPURISCVState *env, i= nt csrno, target_ulong val) } else { env->htimedelta =3D val; } - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_htimedeltah(CPURISCVState *env, int csrno, target_ulong *v= al) +static RISCVException read_htimedeltah(CPURISCVState *env, int csrno, + target_ulong *val) { if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 *val =3D env->htimedelta >> 32; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_htimedeltah(CPURISCVState *env, int csrno, target_ulong v= al) +static RISCVException write_htimedeltah(CPURISCVState *env, int csrno, + target_ulong val) { if (!env->rdtime_fn) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 env->htimedelta =3D deposit64(env->htimedelta, 32, 32, (uint64_t)val); - return 0; + return RISCV_EXCP_NONE; } =20 /* Virtual CSR Registers */ -static int read_vsstatus(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vsstatus(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vsstatus; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vsstatus(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vsstatus(CPURISCVState *env, int csrno, + target_ulong val) { uint64_t mask =3D (target_ulong)-1; env->vsstatus =3D (env->vsstatus & ~mask) | (uint64_t)val; - return 0; + return RISCV_EXCP_NONE; } =20 static int read_vstvec(CPURISCVState *env, int csrno, target_ulong *val) { *val =3D env->vstvec; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vstvec(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vstvec(CPURISCVState *env, int csrno, + target_ulong val) { env->vstvec =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vsscratch(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vsscratch(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vsscratch; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vsscratch(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vsscratch(CPURISCVState *env, int csrno, + target_ulong val) { env->vsscratch =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vsepc(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vsepc(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vsepc; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vsepc(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vsepc(CPURISCVState *env, int csrno, + target_ulong val) { env->vsepc =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vscause(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vscause(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vscause; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vscause(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vscause(CPURISCVState *env, int csrno, + target_ulong val) { env->vscause =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vstval(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vstval(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vstval; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vstval(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vstval(CPURISCVState *env, int csrno, + target_ulong val) { env->vstval =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_vsatp(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_vsatp(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->vsatp; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_vsatp(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_vsatp(CPURISCVState *env, int csrno, + target_ulong val) { env->vsatp =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mtval2(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mtval2(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mtval2; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mtval2(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mtval2(CPURISCVState *env, int csrno, + target_ulong val) { env->mtval2 =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_mtinst(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_mtinst(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D env->mtinst; - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_mtinst(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_mtinst(CPURISCVState *env, int csrno, + target_ulong val) { env->mtinst =3D val; - return 0; + return RISCV_EXCP_NONE; } =20 /* Physical Memory Protection */ -static int read_pmpcfg(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_pmpcfg(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D pmpcfg_csr_read(env, csrno - CSR_PMPCFG0); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_pmpcfg(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_pmpcfg(CPURISCVState *env, int csrno, + target_ulong val) { pmpcfg_csr_write(env, csrno - CSR_PMPCFG0, val); - return 0; + return RISCV_EXCP_NONE; } =20 -static int read_pmpaddr(CPURISCVState *env, int csrno, target_ulong *val) +static RISCVException read_pmpaddr(CPURISCVState *env, int csrno, + target_ulong *val) { *val =3D pmpaddr_csr_read(env, csrno - CSR_PMPADDR0); - return 0; + return RISCV_EXCP_NONE; } =20 -static int write_pmpaddr(CPURISCVState *env, int csrno, target_ulong val) +static RISCVException write_pmpaddr(CPURISCVState *env, int csrno, + target_ulong val) { pmpaddr_csr_write(env, csrno - CSR_PMPADDR0, val); - return 0; + return RISCV_EXCP_NONE; } =20 #endif @@ -1311,18 +1427,21 @@ int riscv_csrrw(CPURISCVState *env, int csrno, targ= et_ulong *ret_value, =20 /* execute combined read/write operation if it exists */ if (csr_ops[csrno].op) { - return csr_ops[csrno].op(env, csrno, ret_value, new_value, write_m= ask); + ret =3D csr_ops[csrno].op(env, csrno, ret_value, new_value, write_= mask); + if (ret !=3D RISCV_EXCP_NONE) { + return -ret; + } + return 0; } =20 /* if no accessor exists then return failure */ if (!csr_ops[csrno].read) { return -RISCV_EXCP_ILLEGAL_INST; } - /* read old value */ ret =3D csr_ops[csrno].read(env, csrno, &old_value); - if (ret < 0) { - return ret; + if (ret !=3D RISCV_EXCP_NONE) { + return -ret; } =20 /* write value if writable and write mask set, otherwise drop writes */ @@ -1330,8 +1449,8 @@ int riscv_csrrw(CPURISCVState *env, int csrno, target= _ulong *ret_value, new_value =3D (old_value & ~write_mask) | (new_value & write_mask); if (csr_ops[csrno].write) { ret =3D csr_ops[csrno].write(env, csrno, new_value); - if (ret < 0) { - return ret; + if (ret !=3D RISCV_EXCP_NONE) { + return -ret; } } } --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081338; cv=none; d=zohomail.com; s=zohoarc; b=BYbnLYU68Ff3YksKOpIOhupjUcAYa3XAVTPb/Qc6y4KErbBKoTtcTb+5PlDQVk7fThdTLOdxHt/cIT/PZb3nlsoEshGiOLXnu5+am8tIw6XQpYPtPSdxfzB/hyRUrxoOqmxPyh2OhiZ25nhei1OviKHPhJ8EqUR+Ote26NHTMf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081338; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iwC2OJOZ4N8KYacmO/AAG3m3s2p3pUCDSB6YEtAMuLE=; b=O8K/WF91MbQ4hB3jzKm2UPpcSirpv0NglHk0cCgTrY+3Vzess6A+48Rx8fkIUtE04dc4J5NI/NLBjN9GcZFkelTzjU57nO7gRn93Ca/LSwAX5Cy4PWb20MTuCwBKrvvUYIojTg91NjiVLeS9mvKc/6UjJz5CE0HD/6ZpgxMh4eQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162008133857611.34237798138247; Mon, 3 May 2021 15:35:38 -0700 (PDT) Received: from localhost ([::1]:40616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhA9-0000EG-6h for importer@patchew.org; Mon, 03 May 2021 18:35:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52966) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpf-0004nP-NU for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:31 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpc-0000ID-TO for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:26 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:23 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:34 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:21 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080064; x=1651616064; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PRMpCu8nBEyzL0FPG1R+3S/zjbyK15XWJlcKZNOjeos=; b=ObgflDUDIheBK1UPHgbUs+DRxLUduNliEZwwSGMu7jMdS4USO2Fd9vo5 rCA6F+f4qgHTbyJtKlIKUa0MFl/AjlOHXcDV7bPrtzAzEqscBXtO4Tis+ eMtrQDvmvDU6+ZH+cyDfpYq2OEjIBwZwjvTy3mpXcYVOjiExWYekzJ132 AUac3xovtmB+/zVJK8Ksbt6cmrU0rYiwtvvrwHnFmGdF5AvO2vu4uHu22 wAF9CeXzG/HnfShMdzzZ4embgctaL+Ss1kHbcqX3dkFocV89y9/HJn2jY I9mIvDIOsstQuXn6483eZ+F8fgbhwvHjbXrpgP0oFl+NwIzSlS2veZkbJ Q==; IronPort-SDR: 8hGpe55y8j2cUfBa9N2oHs3aP2xlFx+hKubWegctfYmPP9cKEQ8mHs7BZQy3w8259jSzlLjp8c /LacQl5eb0f9ipUVJxh+Zq9Iy8uKmDUPCgartJVoHGMCL7VCnUgxr5CLxyA9xBhJISbIC0OdiO 3+q+35nspfD52h40y4rTcU/wFFfR+pAq641NDUOZBMZpForgi+eOCbLCZCWKHFjdXgMvzNGpMn AwcB/1lDoyni+zhOsLGCMbkbJNkciPgBbYveGfqyjUYre1yaH+2YA2sPnKxuQDH74mU4+bFl5z jcc= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114637" IronPort-SDR: FBqS7neDdkZS3YIQG90B4H63erHCh2qIc/kn8J1n+8OgW8ytPhhvNGlOIyBO12O1ulxn6kswj2 iytCQkA1nPkHKrhALNbejplbNxLqD6I3PVYRmf/dsj4qpvwY8dppdjM9m9AH57uBQMR8NTmv3a 7attIJmI5ORzN7fIQZX/9S6DHRDXjKL8G8C0DyEEJO0u4xdN+vg7ouRB8HQROe2QiFSAVONhVM NlGV/nMteYXljot/tuwor4n86J1CToCPy2EVUylJhOpBcTjrF3eagJHTTTi5MTRyMquzFzsys+ 7oVxGWjHcGV6KR3yMm2X+RYy IronPort-SDR: iqCr/OhbMgWRIQw00X3FL2gzqKrrc1p8LoQjb7VetfB/Uj0CvwEDHHr+Ir3JALVBFtldHdvAiP q5NpbeT9czKLJQRXJA4GdmXp7ejIuxuR7ZDOEtmk6rt5MQ3kqfTXwRiSL8V+yADRwqkZIf/C4k t744CA73hVpOznyKgqrCes2DJ/Jzx0trkKnPYU4WdasOJxOMsUoAbesybsJ14P27IBonVqAMZl d1t6LetIK1/hgl2anvEYzQe9oJwwc2lGoBbuayTXo3kwRu4iuFW2XF0MMzgqnyaYiIzJ09I8fZ JiA= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 13/42] target/riscv: Use RISCVException enum for CSR access Date: Tue, 4 May 2021 08:12:58 +1000 Message-Id: <20210503221327.3068768-14-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 302b208f40373557fa11b351b5c9f43039ca8ea3.1617290165.git.alistai= r.francis@wdc.com --- target/riscv/cpu.h | 11 +++++++---- target/riscv/csr.c | 37 ++++++++++++++++++------------------- target/riscv/gdbstub.c | 8 ++++---- target/riscv/op_helper.c | 18 +++++++++--------- 4 files changed, 38 insertions(+), 36 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index a7b8876ea0..842d3ab810 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -454,10 +454,13 @@ static inline void cpu_get_tb_cpu_state(CPURISCVState= *env, target_ulong *pc, *pflags =3D flags; } =20 -int riscv_csrrw(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask); -int riscv_csrrw_debug(CPURISCVState *env, int csrno, target_ulong *ret_val= ue, - target_ulong new_value, target_ulong write_mask); +RISCVException riscv_csrrw(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_mask= ); +RISCVException riscv_csrrw_debug(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, + target_ulong write_mask); =20 static inline void riscv_csr_write(CPURISCVState *env, int csrno, target_ulong val) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index f67eaf4042..f0a74f0eb8 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -1382,10 +1382,11 @@ static RISCVException write_pmpaddr(CPURISCVState *= env, int csrno, * csrrc <-> riscv_csrrw(env, csrno, ret_value, 0, value); */ =20 -int riscv_csrrw(CPURISCVState *env, int csrno, target_ulong *ret_value, - target_ulong new_value, target_ulong write_mask) +RISCVException riscv_csrrw(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, target_ulong write_mask) { - int ret; + RISCVException ret; target_ulong old_value; RISCVCPU *cpu =3D env_archcpu(env); =20 @@ -1407,41 +1408,37 @@ int riscv_csrrw(CPURISCVState *env, int csrno, targ= et_ulong *ret_value, =20 if ((write_mask && read_only) || (!env->debugger && (effective_priv < get_field(csrno, 0x300)))) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } #endif =20 /* ensure the CSR extension is enabled. */ if (!cpu->cfg.ext_icsr) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } =20 /* check predicate */ if (!csr_ops[csrno].predicate) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } ret =3D csr_ops[csrno].predicate(env, csrno); if (ret !=3D RISCV_EXCP_NONE) { - return -ret; + return ret; } =20 /* execute combined read/write operation if it exists */ if (csr_ops[csrno].op) { - ret =3D csr_ops[csrno].op(env, csrno, ret_value, new_value, write_= mask); - if (ret !=3D RISCV_EXCP_NONE) { - return -ret; - } - return 0; + return csr_ops[csrno].op(env, csrno, ret_value, new_value, write_m= ask); } =20 /* if no accessor exists then return failure */ if (!csr_ops[csrno].read) { - return -RISCV_EXCP_ILLEGAL_INST; + return RISCV_EXCP_ILLEGAL_INST; } /* read old value */ ret =3D csr_ops[csrno].read(env, csrno, &old_value); if (ret !=3D RISCV_EXCP_NONE) { - return -ret; + return ret; } =20 /* write value if writable and write mask set, otherwise drop writes */ @@ -1450,7 +1447,7 @@ int riscv_csrrw(CPURISCVState *env, int csrno, target= _ulong *ret_value, if (csr_ops[csrno].write) { ret =3D csr_ops[csrno].write(env, csrno, new_value); if (ret !=3D RISCV_EXCP_NONE) { - return -ret; + return ret; } } } @@ -1460,17 +1457,19 @@ int riscv_csrrw(CPURISCVState *env, int csrno, targ= et_ulong *ret_value, *ret_value =3D old_value; } =20 - return 0; + return RISCV_EXCP_NONE; } =20 /* * Debugger support. If not in user mode, set env->debugger before the * riscv_csrrw call and clear it after the call. */ -int riscv_csrrw_debug(CPURISCVState *env, int csrno, target_ulong *ret_val= ue, - target_ulong new_value, target_ulong write_mask) +RISCVException riscv_csrrw_debug(CPURISCVState *env, int csrno, + target_ulong *ret_value, + target_ulong new_value, + target_ulong write_mask) { - int ret; + RISCVException ret; #if !defined(CONFIG_USER_ONLY) env->debugger =3D true; #endif diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c index 5f96b7ea2a..ca78682cf4 100644 --- a/target/riscv/gdbstub.c +++ b/target/riscv/gdbstub.c @@ -71,7 +71,7 @@ static int riscv_gdb_get_fpu(CPURISCVState *env, GByteArr= ay *buf, int n) */ result =3D riscv_csrrw_debug(env, n - 32, &val, 0, 0); - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return gdb_get_regl(buf, val); } } @@ -94,7 +94,7 @@ static int riscv_gdb_set_fpu(CPURISCVState *env, uint8_t = *mem_buf, int n) */ result =3D riscv_csrrw_debug(env, n - 32, NULL, val, -1); - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return sizeof(target_ulong); } } @@ -108,7 +108,7 @@ static int riscv_gdb_get_csr(CPURISCVState *env, GByteA= rray *buf, int n) int result; =20 result =3D riscv_csrrw_debug(env, n, &val, 0, 0); - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return gdb_get_regl(buf, val); } } @@ -122,7 +122,7 @@ static int riscv_gdb_set_csr(CPURISCVState *env, uint8_= t *mem_buf, int n) int result; =20 result =3D riscv_csrrw_debug(env, n, NULL, val, -1); - if (result =3D=3D 0) { + if (result =3D=3D RISCV_EXCP_NONE) { return sizeof(target_ulong); } } diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c index 1eddcb94de..3fc5e0505d 100644 --- a/target/riscv/op_helper.c +++ b/target/riscv/op_helper.c @@ -42,10 +42,10 @@ target_ulong helper_csrrw(CPURISCVState *env, target_ul= ong src, target_ulong csr) { target_ulong val =3D 0; - int ret =3D riscv_csrrw(env, csr, &val, src, -1); + RISCVException ret =3D riscv_csrrw(env, csr, &val, src, -1); =20 - if (ret < 0) { - riscv_raise_exception(env, -ret, GETPC()); + if (ret !=3D RISCV_EXCP_NONE) { + riscv_raise_exception(env, ret, GETPC()); } return val; } @@ -54,10 +54,10 @@ target_ulong helper_csrrs(CPURISCVState *env, target_ul= ong src, target_ulong csr, target_ulong rs1_pass) { target_ulong val =3D 0; - int ret =3D riscv_csrrw(env, csr, &val, -1, rs1_pass ? src : 0); + RISCVException ret =3D riscv_csrrw(env, csr, &val, -1, rs1_pass ? src = : 0); =20 - if (ret < 0) { - riscv_raise_exception(env, -ret, GETPC()); + if (ret !=3D RISCV_EXCP_NONE) { + riscv_raise_exception(env, ret, GETPC()); } return val; } @@ -66,10 +66,10 @@ target_ulong helper_csrrc(CPURISCVState *env, target_ul= ong src, target_ulong csr, target_ulong rs1_pass) { target_ulong val =3D 0; - int ret =3D riscv_csrrw(env, csr, &val, 0, rs1_pass ? src : 0); + RISCVException ret =3D riscv_csrrw(env, csr, &val, 0, rs1_pass ? src := 0); =20 - if (ret < 0) { - riscv_raise_exception(env, -ret, GETPC()); + if (ret !=3D RISCV_EXCP_NONE) { + riscv_raise_exception(env, ret, GETPC()); } return val; } --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080866; cv=none; d=zohomail.com; s=zohoarc; b=byCO0jKFW+t+fnhgwPL0z8zuTtyQ9YWAajMd9o6jkDUufWl3kCaPYsLYHS/qXJ78CEbAepAPiaSJ0V8xLsRmm3fAZJfYvzTzkOf91R/RQzHYFyMr6g2dwx2eyPp/yG/TH3BkMuc0Rqs9V5a/0RWhSTNP5PJC/3iSj1dSn1ndtXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080866; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v3yVQldWJA01nFINSgjBlpiLucrvwocI2mxbro1Le3o=; b=XqlV9Of5HVUND5+I341HucIi4Z0M/WN6tJwVERgo5ebLxVhepoyizz5Xr+2HxWGTHG25Ayjei0jpUXk8Abusyws3b2Cq/7a/ZzcSF9TCBQEADzhb+7czs/3ogJ/lhYteTb4NcVkYD3eNwMa/qv/dEm4JMJEFMmKY+S32fbtxKmQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080866664225.64345232451376; Mon, 3 May 2021 15:27:46 -0700 (PDT) Received: from localhost ([::1]:48280 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh2X-0000Fo-Bo for importer@patchew.org; Mon, 03 May 2021 18:27:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52992) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgps-00058O-L1 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:40 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpq-0000ID-Qc for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:40 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:27 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:38 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:24 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080078; x=1651616078; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=a2pAMi9hjX043zXsl3vowvDjpX05yv4JvKnsdJ74+m4=; b=odPUUpkARnISHf5Cn2HeHBNmuboRe/7Q+SHlfJ7bgPYjCo/QXmLVVPmi dtfRBF07kTYoQWbW/aiPj9l2j25VovPYfKD/6kSB+yI60TA31UnAA/tVy 2YJ2C2vVvTxPKwIsBSUHFqor/LMAuo/y/R+dnXkhj9gjD8lOCu6ml4Eep dpTol3nHruC2hCNk7YFcks4e8V1DzzYDEEiAfB3pRV5uHjSJLTX3RMt30 4aaKNU6wtqScUrczoTj298ScM5LoyZrCpvo6iG1ZYMbZasDgBd5UpqPsG 5miQNR+yW3s4iGxNOSj11poIMeWLh0J79SlSRiVw9kJ9uB7If8tCzKJvS A==; IronPort-SDR: CTPhRkuLCaLI9vCPq1SpNnwh32sksEDEoVeSdOJk7GLn9fnb9itv4DXGTDzn0qXmJEzCARGPVz p6013e4lc99Yj0MDbkDtCyeRk1FRVxG3yGNv1qvmU2GkOvU/DIn8emy8nC74pOt54Wiad5vgj0 WIboBLmoy1jEdIZTNlFu9PKF1FUc5fTIOlmvw4UV+HmjcDaG0K81LD0P3QCi9EwzQV403AdnKI iwkaVrfEXUrzwFRb3dFeBGSBFqFD3J3RgAg+Sy0muEJU1REwI243Z8RVj2+V2Rmm+VkvEk5tec cF4= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114639" IronPort-SDR: D3IWQ5WBUrE5yXa6FGulX0DE8HjQSGYF6ACdGca+W+Ud2ukzzKf+tpXEUxofEMCtxdN6nD+Fo5 j+OseAgSERmCIVC2u8pVHjEDyPqC/tOG4LckoIUOw0E6MdpwxVq3caM/YyZJ36mGOBgqU0PhEw KcBaBN5hZhzFzY+3EPX79M8xzkNvPicxn9id48gvNBhKfkbIlpYpqVsj2/pK8xpi7j66xynk9m m3KZFkLZwM8pscOzpnR8ZgLTC8rXev8mpHnhyipSpzpC2XSdapB0ZKDoBJdN1iWa5ZsYzJOGNB 3Zym7SX8KVRQExxSEJJDl924 IronPort-SDR: IBAa8zgSyJUvyukZGRnt/XhJ5x5p2HrRjVwVLitvb3MegF0TqfNfiUGwJIlcgHF8imCc+WBtpl yjifJosQnTCz135g5Dr9fSQAFsXmuP4ZRINf3vOuwb65SinRB8ZEQ1fc9fGBHEc2d7FfWPNzAk XRMJQliOWULCMxKi0ertakfM2meyvhu0zqtULLKhI6VbAaxKh2iK7+DcZu4d6VuVf0PUvf1zhw 5AYc79nD4yo0e8cDvA44JR7onldyp9kjxD2QzkRavltpplMIYXnxD2vTDUGKdK0ztm3glzT9RC nzE= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 14/42] MAINTAINERS: Update the RISC-V CPU Maintainers Date: Tue, 4 May 2021 08:12:59 +1000 Message-Id: <20210503221327.3068768-15-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@wdc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=68.232.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bastian Koppelmann , Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Alistair Francis , alistair23@gmail.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Update the RISC-V maintainers by removing Sagar and Bastian who haven't been involved recently. Also add Bin who has been helping with reviews. Signed-off-by: Alistair Francis Acked-by: Bin Meng Acked-by: Bastian Koppelmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 6564ba829c40ad9aa7d28f43be69d8eb5cf4b56b.1617749142.git.alistai= r.francis@wdc.com --- MAINTAINERS | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 93830817f1..6086322886 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -295,9 +295,8 @@ F: tests/acceptance/machine_ppc.py =20 RISC-V TCG CPUs M: Palmer Dabbelt -M: Alistair Francis -M: Sagar Karandikar -M: Bastian Koppelmann +M: Alistair Francis +M: Bin Meng L: qemu-riscv@nongnu.org S: Supported F: target/riscv/ --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080897; cv=none; d=zohomail.com; s=zohoarc; b=TBo2BAG4vIEel1Ped/cm+n/nnZGDMhAt47qfcvYlJEzgooeBLkzWro9VurPuSVgV1DVyv4nCjYhWlIEWhWrf+bGWLG83pC1jRrgiWrBSx7J1G9wuQuE4DmalUPejNWWx8/PlAdr+EgZ6KoPvoYwKfauV43wNLJ7iQV6zWWRFI7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080897; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=n8avcK4sqU/bqDQfvoLYBiRyO4tNPHDn/JDs6hgbmh8=; b=mGN+ZeJLwCe87N+xkgI7lfDk23D1hj35HycQnwIVZMYUHrF2laEdUVXfaYhS7sHUwxcvl5OrB5QckIBQPg0XbN+VtCzDZReeQTWEurH9wHa1rLzGPNvbtz73BcsDNaA5fpSZGukzlk4T0Zuz4+t/NLJX+/Vf01kS6LdAws1LVDA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080897180342.71414207721284; Mon, 3 May 2021 15:28:17 -0700 (PDT) Received: from localhost ([::1]:51336 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh32-0001Ug-2U for importer@patchew.org; Mon, 03 May 2021 18:28:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53022) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpx-0005KE-Gm for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:45 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpv-0000Lb-Am for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:45 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:30 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:41 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:28 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080083; x=1651616083; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RrNQyF4lIA138SsGfeYfYU4splrBTKmLMP1i5+POM1A=; b=mxNudcMZVteutOoKZdlslfeZoaBl8qdtZBkP3P9m2kkDAYpGlzCwelwX Sl6pLrj3Tw0Ldj49VjRzpf36aVc93BzUr06ckq6lVecYmxlOrR5usxJjQ 7vM6iXSx1/FVv6yX9yEvvHGfLChZICoB3l+KqiasYEUxFfqo7GQ4P358O IVc5B0uhwW+5NMCepu9jSV30xvN/Bi9eWzKQk4rsG6vfP/gHZbrIuq5nJ oF3DwPHVdcnqdyoEF4DIhFL79TOZERAIn3AX4Y1SU5qXhLbNaq0mezGAE vK1j5KOriEbUOc1PSXohwL4ZvvmOR8nYxxgaF90SMDdSOatvqnuBNDueJ Q==; IronPort-SDR: POBfZtFzglix48U/i+QQwKKdpvkSL9JTpSeL0MjYOfjeddTrHagjSid2iJroVyYj9IphTULBxe ztrpCWgNQhl0qRgq/ObJLv0TNtUBLoudEXHqbcPrYej25cRl0vCA27Z1+UvWR3yhwVC6bQ/AL8 IJ6yLZADy38uiORzlu+PjW9zjMOyCx/gbpEXWN1MU4mmLr1UHKkyvrDr7dYcbmSQvkdptmGC6n OYqXYRK1gbsI943yOjYmHceLrlxf8HFr/gA2hbkLPLhuM0YRttg15sX44h4/urmoCAP/v2Bsar fas= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114643" IronPort-SDR: WoyawXFApqVMcv8/2t1cVxpWtqFoXLiyY7DW3YyzrkQM8ZpRoM4Rcj198ws+7+77/yx0atng6q +vFuf5jVNd57+svBinx1eNmlQopo8RTHu8A9pXdEbhm5iuZc9PKKtLtZVDwHcDNKkK+7LuxNRC 9Qgb6YG7NeSUbIVwvdRXRMiRqWORgerrQbiwNfLCE8Db2wb+qr4YeFWdNuSdqLzHfeej4RugJD WiJ/zauSRACrrqnOHJpcwPCPsNCevyu8Wr0A4Q6PfWuOpZqyYSsreAIS3tp0jVJAnF8z4bNZGc N9G5nsSWUFhk3BkrnzXZQNRE IronPort-SDR: KhUFSCd/8wRxVYao9lIxqXRZnTYkdsQCL4GjBMsjaFM6/CiFGnNSnKzNu+tJKjYjQNv9bP8tay CxU/C5W52jMK7bztZvxgVutkXQ3MBth266QbmwY9weu6G6Ft7r/MTIA/VG+b5HgffWV9Hzhq7v vyB8x4dGuA+4e6XjVsnl2p1riXBEfjdqXnffHU6yUMns/rsG1mZNYLUxC4j5NJinRn46cgzwRD 3nJ6gZyEIV5y6cHPZ1NVahWCe8HYVLEXJrPhG8c+vbR45q6nY6UkOjG+/mrG5kP4RXlzFCIAXO PRM= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 15/42] hw/opentitan: Update the interrupt layout Date: Tue, 4 May 2021 08:13:00 +1000 Message-Id: <20210503221327.3068768-16-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Update the OpenTitan interrupt layout to match the latest OpenTitan bitstreams. This involves changing the Ibex PLIC memory layout and the UART interrupts. Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: e92b696f1809c9fa4410da2e9f23c414db5a6960.1617202791.git.alistai= r.francis@wdc.com --- include/hw/riscv/opentitan.h | 16 ++++++++-------- hw/intc/ibex_plic.c | 20 ++++++++++---------- hw/riscv/opentitan.c | 8 ++++---- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/include/hw/riscv/opentitan.h b/include/hw/riscv/opentitan.h index a5ea3a5e4e..aab9bc9245 100644 --- a/include/hw/riscv/opentitan.h +++ b/include/hw/riscv/opentitan.h @@ -82,14 +82,14 @@ enum { }; =20 enum { - IBEX_UART_RX_PARITY_ERR_IRQ =3D 0x28, - IBEX_UART_RX_TIMEOUT_IRQ =3D 0x27, - IBEX_UART_RX_BREAK_ERR_IRQ =3D 0x26, - IBEX_UART_RX_FRAME_ERR_IRQ =3D 0x25, - IBEX_UART_RX_OVERFLOW_IRQ =3D 0x24, - IBEX_UART_TX_EMPTY_IRQ =3D 0x23, - IBEX_UART_RX_WATERMARK_IRQ =3D 0x22, - IBEX_UART_TX_WATERMARK_IRQ =3D 0x21, + IBEX_UART0_RX_PARITY_ERR_IRQ =3D 8, + IBEX_UART0_RX_TIMEOUT_IRQ =3D 7, + IBEX_UART0_RX_BREAK_ERR_IRQ =3D 6, + IBEX_UART0_RX_FRAME_ERR_IRQ =3D 5, + IBEX_UART0_RX_OVERFLOW_IRQ =3D 4, + IBEX_UART0_TX_EMPTY_IRQ =3D 3, + IBEX_UART0_RX_WATERMARK_IRQ =3D 2, + IBEX_UART0_TX_WATERMARK_IRQ =3D 1, }; =20 #endif diff --git a/hw/intc/ibex_plic.c b/hw/intc/ibex_plic.c index c1b72fcab0..edf76e4f61 100644 --- a/hw/intc/ibex_plic.c +++ b/hw/intc/ibex_plic.c @@ -225,23 +225,23 @@ static void ibex_plic_irq_request(void *opaque, int i= rq, int level) =20 static Property ibex_plic_properties[] =3D { DEFINE_PROP_UINT32("num-cpus", IbexPlicState, num_cpus, 1), - DEFINE_PROP_UINT32("num-sources", IbexPlicState, num_sources, 80), + DEFINE_PROP_UINT32("num-sources", IbexPlicState, num_sources, 176), =20 DEFINE_PROP_UINT32("pending-base", IbexPlicState, pending_base, 0), - DEFINE_PROP_UINT32("pending-num", IbexPlicState, pending_num, 3), + DEFINE_PROP_UINT32("pending-num", IbexPlicState, pending_num, 6), =20 - DEFINE_PROP_UINT32("source-base", IbexPlicState, source_base, 0x0c), - DEFINE_PROP_UINT32("source-num", IbexPlicState, source_num, 3), + DEFINE_PROP_UINT32("source-base", IbexPlicState, source_base, 0x18), + DEFINE_PROP_UINT32("source-num", IbexPlicState, source_num, 6), =20 - DEFINE_PROP_UINT32("priority-base", IbexPlicState, priority_base, 0x18= ), - DEFINE_PROP_UINT32("priority-num", IbexPlicState, priority_num, 80), + DEFINE_PROP_UINT32("priority-base", IbexPlicState, priority_base, 0x30= ), + DEFINE_PROP_UINT32("priority-num", IbexPlicState, priority_num, 177), =20 - DEFINE_PROP_UINT32("enable-base", IbexPlicState, enable_base, 0x200), - DEFINE_PROP_UINT32("enable-num", IbexPlicState, enable_num, 3), + DEFINE_PROP_UINT32("enable-base", IbexPlicState, enable_base, 0x300), + DEFINE_PROP_UINT32("enable-num", IbexPlicState, enable_num, 6), =20 - DEFINE_PROP_UINT32("threshold-base", IbexPlicState, threshold_base, 0x= 20c), + DEFINE_PROP_UINT32("threshold-base", IbexPlicState, threshold_base, 0x= 318), =20 - DEFINE_PROP_UINT32("claim-base", IbexPlicState, claim_base, 0x210), + DEFINE_PROP_UINT32("claim-base", IbexPlicState, claim_base, 0x31c), DEFINE_PROP_END_OF_LIST(), }; =20 diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index e168bffe69..30dca1ee91 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -149,16 +149,16 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev= _soc, Error **errp) sysbus_mmio_map(SYS_BUS_DEVICE(&s->uart), 0, memmap[IBEX_DEV_UART].bas= e); sysbus_connect_irq(SYS_BUS_DEVICE(&s->uart), 0, qdev_get_gpio_in(DEVICE(&s->plic), - IBEX_UART_TX_WATERMARK_IRQ)); + IBEX_UART0_TX_WATERMARK_IRQ)); sysbus_connect_irq(SYS_BUS_DEVICE(&s->uart), 1, qdev_get_gpio_in(DEVICE(&s->plic), - IBEX_UART_RX_WATERMARK_IRQ)); + IBEX_UART0_RX_WATERMARK_IRQ)); sysbus_connect_irq(SYS_BUS_DEVICE(&s->uart), 2, qdev_get_gpio_in(DEVICE(&s->plic), - IBEX_UART_TX_EMPTY_IRQ)); + IBEX_UART0_TX_EMPTY_IRQ)); sysbus_connect_irq(SYS_BUS_DEVICE(&s->uart), 3, qdev_get_gpio_in(DEVICE(&s->plic), - IBEX_UART_RX_OVERFLOW_IRQ)); + IBEX_UART0_RX_OVERFLOW_IRQ)); =20 create_unimplemented_device("riscv.lowrisc.ibex.gpio", memmap[IBEX_DEV_GPIO].base, memmap[IBEX_DEV_GPIO].size); --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081105; cv=none; d=zohomail.com; s=zohoarc; b=Ipwh1nxOebNwmYQN/jO9Tcd0UTurJCYMFCVSsE+nEXWVyOc1GdESNXwONMZ39hEFoqj59KGkR/wJdKMi5aE2IIM6Wu9vGh6wM9bJoGm1yncqgRWN7/mjBs74E+PiuMCAptp1H9POO/vfBzasClCWUh0ILzhbnpUB9zv6xe3yOz0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081105; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/aes3AJXxWBmrgvi0CmoTewG+HC4XCrBsIrZHwfMS5I=; b=Ms9P8Va3wAFC6K3fmPIEdWPrnJ2cSCtwXbJM72Q+qt0MxflhMWa6eWsMJuRBOiE8cIfOQDjCAZyxHNhY6chXHAkGeF3suHkw8yq3LjlqHqaXS4ka91OIFLjpewHleZq03Qy66IVif2SzdBRAAzVowOC2AEsOYtJw6Uz3+1obawA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081105172840.0935050825453; Mon, 3 May 2021 15:31:45 -0700 (PDT) Received: from localhost ([::1]:59954 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh6N-0004xL-Pd for importer@patchew.org; Mon, 03 May 2021 18:31:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53068) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgq1-0005TU-J2 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:49 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgpv-0000Fd-QL for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:49 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:32 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:43 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:31 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080083; x=1651616083; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=otQOSwcYVr7RAj/nWvFHEWoMMJh10b7Yi4YNSpL0/3M=; b=HZW4bT8Kps3zNY1yPjGMpGIBYmmxPHrl0C3p5YHcsvKEapNGQ/vTpU/z cIdxRdt8Tv+LNU4HxsHAnc1tPwI2ZtNaeACq2uJQcbI3Qq5HMrHec+vY1 wlHP2X0zi8lT7QUDhIkDhH3yp7WGM2belUuNNTSGwZZWp2PWPtms/aCiP jE+hGUuxoHWXQ+1NY/83WHkW4kFT2/WOnlX7wc2Ufz9pPxOqSiPsKOwWP 29K3cWFQco2bO2qstVqSuSh3MbPSkhwNRF7/eApMPM85d7bDQlk7KGLvd CHzZejR1hade39hqO2jGXaeFDFVMccdtDb/bKkAORjU5N+748dmPNDRKX A==; IronPort-SDR: S4Lt132GpipHo1B1UT9peIseUPS/TdCkI4pp2jTzeNG3lFoD1TItVD0zcann5pUjiDmiBeBG31 d0To+BWQcP38xUOkzeOXTNqFo8QumN7jbgtQfHHaOnm2c27YeDUl5nK9RlDLf/+VVTxktUFi8/ P8bax9PgwUJEyen1t4AX4XxLG0ZjBxNra7zN+TWbzi31hFl2A0D4LSY3COHmWYaRQej3GFXcGk 6QjVBwsgbDyDTfPx7Y8GzpHtLOUCjo8QYXFYpHkb+WQTyRPSPSXHGa5QH1Mq7Xg4NG7zSu1Q5D PAw= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114645" IronPort-SDR: WPhHsu3fdp66lZ2FwLPVESwyluPNjzdxvKrT8E4vOspkZgnbb0wESs+DQSS4dkb6oZTclIF/p2 66a/YgqO3GSagWBkSwU5BQ3DzMFvUchuWOREvkwmLF1Nm0Tkay3ETcCrw3Zgx0Yicc6IljTsWE Ln9kfUHYY1VIARVye50QgprdX+8Piy3L+7vd5fl2alKZOdb0qBsT/bhIwITL5LzFoq9BMAbc7e f0is3dqUFoT7O7xp7SV81b5S5YW70cNsI3br73mJ53k8xY+af2la4N8amQ3avFK6OAsYV23zAu 6oK3XTgaaGH3uP3jsnG3vviq IronPort-SDR: jjt9oolv4Ft18GEShAEtiodEeNbDLUiXK8zc8twZtwWp/7zb6vtITCq1UvB8L2Xu6ga2Q5OskI +5LQz/5NqpxNlUvnBx7G3bwbyUOV1AferyYrtpxniN7cmCLA8eRMbjzlrHNIKaiSJBpypXQsaI uiQLcvkNCklEEceYoEpIsEUrUXUHuKyIIfJWbdAg2YM/FkkdO9Hqj0T1Ax070G0v79RwgYBUXa c+JJk+gYaK90AovQ1J+S8ts2ny59ukfxk4We4uJfDD3wH+rZ8FHQKdoR30fRYmijYOvDBLripT ppo= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 16/42] hw/riscv: Enable VIRTIO_VGA for RISC-V virt machine Date: Tue, 4 May 2021 08:13:01 +1000 Message-Id: <20210503221327.3068768-17-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" imply VIRTIO_VGA for the virt machine, this fixes the following error when specifying `-vga virtio` as a command line argument: qemu-system-riscv64: Virtio VGA not available Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 7ac26fafee8bd59d2a0640f3233f8ad1ab270e1e.1617367317.git.alistai= r.francis@wdc.com --- hw/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index a0225716b5..86957ec7b0 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -32,6 +32,7 @@ config SHAKTI_C config RISCV_VIRT bool imply PCI_DEVICES + imply VIRTIO_VGA imply TEST_DEVICES select GOLDFISH_RTC select MSI_NONBROKEN --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081017; cv=none; d=zohomail.com; s=zohoarc; b=AbC0GGWh/M5qc+xuMVSpr1Pmzz3Ei+K0xnYPF6a29Np1stDiAQzckTpU0MFk2mMSHQLj7BPFVmAvPZw+5NTaWSgY8hgXUEf+3AjSdpQ550fzRb6LpVcv/G3JS9s7RgjeKElcIU02TfQGFv8tZkRvzJFpFyswxZlCD6EbUFTf+Hs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081017; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Rt1K8hINK87Cebb/8S82P8sSdudhtLjv59Mckrd1jPs=; b=KHdZRFCB4RFIOGhChvwMQUuTb5arFtnDGlvFBOlPeT173Sl6xVNqeon2aDtEPsIAvW1p9mUKLDPhY3nHMQOGh09u5MuIAk3a3SGP8yx5DMO5n89dMdY+O/XlWrbcL/X0CGrrYabbxtLYqcvSA4L9ELMliru8dGlRFLH0SEYK49c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081017527601.466114615045; Mon, 3 May 2021 15:30:17 -0700 (PDT) Received: from localhost ([::1]:56858 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh4y-0003h8-2P for importer@patchew.org; Mon, 03 May 2021 18:30:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53096) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgq6-0005d7-2v for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:54 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgq3-0000ID-3J for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:53 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:36 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:47 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:34 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080090; x=1651616090; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=yFRLTCdAcyqhfcygvlqGQ7lXNGX9GsANpwxchwLWEg0=; b=Mclb+qd0uSu6q3sZMFcdF3Y3G81oZrMCkUbDPfOKV68krpkZDC6QujBU iS+jYDEEV3YbSx5ta1f/nxe++g5k4GAKlirKLoKrToXFvuiTLe9RSC4W7 sokIut/V+0b/xqPHp02YyL4mh+lEu5CcmuI/ekGF2LhkK7JFhOJYDULY+ 7czs0RU7eZjcIbGDWo/4eRr9r6iWw7RVEeQdBuTlB7Za5s+QnQYmrSvvf mI2PuK2hEmjXOPx5Q6RPHIOiDiXqtEFE/xXZJkxuXBmeIbpIGD//bbnZT DO0LZO0oID+U5hQ3Fa38RI3T/ti3azHPDT6MC2r6xnDMeXzpGYZIf/PYO w==; IronPort-SDR: K3+HbnuYs6iOAAEcmfCcjRjpriSSB8O9kgK6Z/6LkQnF06k8PcbVyi4WYsTslD8iFFviYv/+6R qN1aHMjlyuz0j2E3dLJ5vPo4wa65672GYOU0jTnbdMEb5qj5XjCScwVw+efGcFY10yOXJn6P0t 7u/rSP2L7VTJfKbIFLMypfcs/Hd9rWpIcmwykgoxACqSn8O8FSo3roJG2saSPmYF/X2K7HkAq2 GNojdeWOQHGeAPZtpJNwTw2Y7CPBpVRmbivM9YjT7AWmxJez1ZlVzYgcSSF1S6j3T8b1bGSW67 flU= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114651" IronPort-SDR: UKkESx0pBesdjXCDxLPmCZbCLvFGEIGLPDNSgxrAHa4xQJSyE40xNMItz6mkuU34+lYZPmGW/B o517kLiqANpSgJTtipUcuzGZ/YfnZApH5AELUUaP/sZ4QiUrcYthYDMQUgFsGYpCp9ey01B6Zz N7mbt4A+0Y6e1Ql0g8CugP7KxMZ7oIoHj+04aWMUGdFsT19yhIPbfnFnJ+9ki01f+xbOGJHA3R 1l5wE3UUl4YvFXs6YQwo6YUVdN1QBckEl60fZBNKzYBANMqW/TFcY57FblyK5VpTvfWnvmQEPw QePMyvNmbpMCQZ3SGPJvn4g2 IronPort-SDR: 0MHO0whaCFb+2tNJWSgaV//7CpI8Pb4brRaAEwE0dWcerfEcbiZVyW9hTRvWf4rBQhCNYy+7Gm r35g9rGx692gjouGx2TPTfnnK1vaTtef+hni4lw/CccY7w/iYJjEIhWl4KzxFUhjN/ionMKk3+ 3z0UPv/Da8Gw4gqt1OSNKGcnZvXDqNirLiZihezXAmWdaEl5Ie170g9Mn5KDlNeBFGsH+TWg68 LKePJu+dP5hIRbTy79rcWfQmrigKul1RWDgFmFm3CQf2kyTRFr+t8c1x1neuk2uT6DOwHfuoib II8= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 17/42] riscv: don't look at SUM when accessing memory from a debugger context Date: Tue, 4 May 2021 08:13:02 +1000 Message-Id: <20210503221327.3068768-18-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org, Jade Fink Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Jade Fink Previously the qemu monitor and gdbstub looked at SUM and refused to perform accesses to user memory if it is off, which was an impediment to debugging. Signed-off-by: Jade Fink Reviewed-by: Alistair Francis Message-id: 20210406113109.1031033-1-qemu@jade.fyi Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 99cc388db9..659ca8a173 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -342,12 +342,14 @@ static int get_physical_address_pmp(CPURISCVState *en= v, int *prot, * @first_stage: Are we in first stage translation? * Second stage is used for hypervisor guest translation * @two_stage: Are we going to perform two stage translation + * @is_debug: Is this access from a debugger or the monitor? */ static int get_physical_address(CPURISCVState *env, hwaddr *physical, int *prot, target_ulong addr, target_ulong *fault_pte_addr, int access_type, int mmu_idx, - bool first_stage, bool two_stage) + bool first_stage, bool two_stage, + bool is_debug) { /* NOTE: the env->pc value visible here will not be * correct, but the value visible to the exception handler @@ -416,7 +418,7 @@ static int get_physical_address(CPURISCVState *env, hwa= ddr *physical, widened =3D 2; } /* status.SUM will be ignored if execute on background */ - sum =3D get_field(env->mstatus, MSTATUS_SUM) || use_background; + sum =3D get_field(env->mstatus, MSTATUS_SUM) || use_background || is_d= ebug; switch (vm) { case VM_1_10_SV32: levels =3D 2; ptidxbits =3D 10; ptesize =3D 4; break; @@ -475,7 +477,8 @@ restart: /* Do the second stage translation on the base PTE address. */ int vbase_ret =3D get_physical_address(env, &vbase, &vbase_pro= t, base, NULL, MMU_DATA_LOAD, - mmu_idx, false, true); + mmu_idx, false, true, + is_debug); =20 if (vbase_ret !=3D TRANSLATE_SUCCESS) { if (fault_pte_addr) { @@ -666,13 +669,13 @@ hwaddr riscv_cpu_get_phys_page_debug(CPUState *cs, va= ddr addr) int mmu_idx =3D cpu_mmu_index(&cpu->env, false); =20 if (get_physical_address(env, &phys_addr, &prot, addr, NULL, 0, mmu_id= x, - true, riscv_cpu_virt_enabled(env))) { + true, riscv_cpu_virt_enabled(env), true)) { return -1; } =20 if (riscv_cpu_virt_enabled(env)) { if (get_physical_address(env, &phys_addr, &prot, phys_addr, NULL, - 0, mmu_idx, false, true)) { + 0, mmu_idx, false, true, true)) { return -1; } } @@ -768,7 +771,7 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, /* Two stage lookup */ ret =3D get_physical_address(env, &pa, &prot, address, &env->guest_phys_fault_addr, access_typ= e, - mmu_idx, true, true); + mmu_idx, true, true, false); =20 /* * A G-stage exception may be triggered during two state lookup. @@ -790,7 +793,8 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, im_address =3D pa; =20 ret =3D get_physical_address(env, &pa, &prot2, im_address, NUL= L, - access_type, mmu_idx, false, true); + access_type, mmu_idx, false, true, + false); =20 qemu_log_mask(CPU_LOG_MMU, "%s 2nd-stage address=3D%" VADDR_PRIx " ret %d physica= l " @@ -825,7 +829,7 @@ bool riscv_cpu_tlb_fill(CPUState *cs, vaddr address, in= t size, } else { /* Single stage lookup */ ret =3D get_physical_address(env, &pa, &prot, address, NULL, - access_type, mmu_idx, true, false); + access_type, mmu_idx, true, false, fals= e); =20 qemu_log_mask(CPU_LOG_MMU, "%s address=3D%" VADDR_PRIx " ret %d physical " --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081215; cv=none; d=zohomail.com; s=zohoarc; b=Yh5LKZDCHtBUcT+OdeMmgSJ7knAu4dQ8OdIy2fz+z2KzuqIh5uyRduYQC4mi0/GkefRR/S9WO/ITMnMPAblPCkUyO4H49YpUA6dVRESlnnRq2ncsU3+7k06dvmoyUiuOs5JSeMjlp99E5zPhz080gwyiOYbLOkbk3CeBZeUH7Zs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081215; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/vOurlA3z9/CGAOd0/OpoSDGU450NAibZQtKBeb2U2A=; b=SlJCD1csSCGcg2O242mkEk0aaqa+iMdR+i2GG68JSCsk9NCmKthLxqO7h128etV2pIBV7sANf7C0yAwxjyWiqB3lgYQI43Vwwxq96fuuZSn2Gnm91WtA7CEQdFUuDM3dnhOw4NQF4r7kRND2o6YZrbDqlkFrH2obRHxtotpWWJA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16200812158601001.3367145499367; Mon, 3 May 2021 15:33:35 -0700 (PDT) Received: from localhost ([::1]:37406 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh8A-0007Lu-Px for importer@patchew.org; Mon, 03 May 2021 18:33:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53116) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqA-0005eW-2A for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:58 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgq7-0000Lb-SA for qemu-devel@nongnu.org; Mon, 03 May 2021 18:14:57 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:39 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:50 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:37 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080095; x=1651616095; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eBNCyqtOfzNeogyxUlf2PGSAY8yQsrhavKYqjK6n7uE=; b=XU5eDlYsV1sEusIRNGjrX19CNHM0KlD8Ik2igfR+tdMU7J44CAiCjfpi wpPVADqBOU5bopTSd8Uoq3a2iAUke/B/hXjX1nrCXWIhaJEl/Y4+jZSXa BZ9GkyQ2xdAYWlPsfsVx3NBo5UNpoWI9xthJ7VmJlJrUu5N3KWatw/KzT sh5FTArk/o8hcHxTpJykkcqhvXuN2vxHVLIEKanXqHzcfHYK/UkLYb7hx XnuKtgdH8dDpczOthikJGwsyCcj/3znSyAgUeAyPWlI+e8BZyppG2vOm4 2kLsRJ64OKpr6F/aRyv0N5OJosx4I+00LGn/RHnh2rnvh50BBxsHDcGz4 w==; IronPort-SDR: UvREXA6C58M5X9uJl+XMJ1egzzG4wvUp85mDghOrFWo5UpXS4nR0NSlhI7EVpMp5SHfvuJY5Tn urb0y05dVMaWGAzPfvnwpzwqZwffHA8f1vvQdpDP9PK4vrVtn5KYdkLC3ZUXtTQYc8/HxyhBa9 HmDQfYPsLbeF2rNYHXq+pcfj3qyS7Y5Nsy7O96fpNdVnHA85D36wFNtNGSV16sG0rIr48b5sxQ Pyaz3JQWlNzBshQ5OmXhRX2YwB0Fa+T6hiejVU2xA5DRT31zUOvE80x7+V6LD4BHXa5Y7qk78r c9k= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114656" IronPort-SDR: pnJCW32WTjqoXPeFsin478KNfJm2MfeXVqFWJbaxCKLpHiiQN3dfyeLlt1SRG8sJ8a4H4XIpJx RW+6BXGmuUuwvgUdyXNf210wSaYwhFiMxk2dHJ9ZGb+AABvUrfdkH4XtWkngXZE2TnPwwcH5dX iNCtPx2cUH/gUlycKHgNiheWFKt608huc6900Qqg6qnpl2ybSUr+rFle1seu/FAxNrlzi0UGOF yInZoybzqQhAmRIPjpxqMLw6nOoIRgdrUZEX+1d8Kw25Vgnsvk+cZ8c2dAHohIZyZVYyWFI6vq NfOZ0w4ipKpLieiv/5WjlJVL IronPort-SDR: Mchhq6J3dwFt4POqC7yMzPWFznSajfk0XI8fp+PIW25Q4sn1/nMsMnCkkOGl9z58FD1yVjD2Gk +/Cfsqx7WGKaiMxOSdqL5+5p4UCQAE+axgXlSPpoAuQEVc2BXE1k0lJQDbu56KJbATI80Mux1O WwK4rgh2dpv8iTHDze/ifhuGKd0mWELXhgHBBzTjY7YVkvnpa0aIn23OrCGE5Dc3NhLU/DsXK2 I9p1bEjJUv/bSHYrecV8eGZbT/ydh7rzECMTVPiSQYyWkwcG4/rIYvkNU0kNDRuetcPWGAtYN8 oqQ= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 18/42] target/riscv: Fixup saturate subtract function Date: Tue, 4 May 2021 08:13:03 +1000 Message-Id: <20210503221327.3068768-19-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , Richard Henderson , qemu-devel@nongnu.org, LIU Zhiwei Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: LIU Zhiwei The overflow predication ((a - b) ^ a) & (a ^ b) & INT64_MIN is right. However, when the predication is ture and a is 0, it should return maximum. Signed-off-by: LIU Zhiwei Reviewed-by: Richard Henderson Reviewed-by: Alistair Francis Message-id: 20210212150256.885-4-zhiwei_liu@c-sky.com Signed-off-by: Alistair Francis --- target/riscv/vector_helper.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index a156573d28..356cef8a09 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -2451,7 +2451,7 @@ static inline int8_t ssub8(CPURISCVState *env, int vx= rm, int8_t a, int8_t b) { int8_t res =3D a - b; if ((res ^ a) & (a ^ b) & INT8_MIN) { - res =3D a > 0 ? INT8_MAX : INT8_MIN; + res =3D a >=3D 0 ? INT8_MAX : INT8_MIN; env->vxsat =3D 0x1; } return res; @@ -2461,7 +2461,7 @@ static inline int16_t ssub16(CPURISCVState *env, int = vxrm, int16_t a, int16_t b) { int16_t res =3D a - b; if ((res ^ a) & (a ^ b) & INT16_MIN) { - res =3D a > 0 ? INT16_MAX : INT16_MIN; + res =3D a >=3D 0 ? INT16_MAX : INT16_MIN; env->vxsat =3D 0x1; } return res; @@ -2471,7 +2471,7 @@ static inline int32_t ssub32(CPURISCVState *env, int = vxrm, int32_t a, int32_t b) { int32_t res =3D a - b; if ((res ^ a) & (a ^ b) & INT32_MIN) { - res =3D a > 0 ? INT32_MAX : INT32_MIN; + res =3D a >=3D 0 ? INT32_MAX : INT32_MIN; env->vxsat =3D 0x1; } return res; @@ -2481,7 +2481,7 @@ static inline int64_t ssub64(CPURISCVState *env, int = vxrm, int64_t a, int64_t b) { int64_t res =3D a - b; if ((res ^ a) & (a ^ b) & INT64_MIN) { - res =3D a > 0 ? INT64_MAX : INT64_MIN; + res =3D a >=3D 0 ? INT64_MAX : INT64_MIN; env->vxsat =3D 0x1; } return res; --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081495; cv=none; d=zohomail.com; s=zohoarc; b=h0H38DMbLKNGLH432cMXdgKLl8L9Bfe2aSrM5hbbfoFLEcRubhfhD4qR41N4NBAVGQqZqWmtFD9AALYM/o03b+VfdiDeue02gPqjeYfQm4+sCdUX6jHqkI2suQiRYCPNdyLO/HC19ia5H4FufFpz2DS8W1EmMv2ZjuO8wxMnrf8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081495; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZyA95ZZhndtEWaTGoVLaLmWZzGK9CS+cxnh80At+Cc0=; b=efoPb4BtaSUrgSaWLWImCUReaYmqJf03r4+6nwq2vcOsI97BUjksBmy4eSWDkwROmGqDC2ds+K5cCb7gpRJryw1Xd9cykfp2U8U1eXV7QOAuQGZzDCu2tGSUPCyYOXK4NNyjUy81cZSGmAmJ0I5dyCpeO2pTl6iqxxFAARODjYo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081495571302.80439690869343; Mon, 3 May 2021 15:38:15 -0700 (PDT) Received: from localhost ([::1]:49264 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhCg-0003rM-FU for importer@patchew.org; Mon, 03 May 2021 18:38:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53130) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqF-0005k5-T1 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:04 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqB-0000Fd-US for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:02 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:42 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:53 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:40 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080099; x=1651616099; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=H0ei1bMRBG6Oy5NGIpqoEne41CBpqzCXYEnQdZ/sbE4=; b=Q0o7Y5/7g1chlnIlRFF7k0yHbDf3P5Oylx85ep/pnZnZY8OCVzvmfYOH 3D8sFFAERKugfz/aXFt4Hhu+Q8/P7UNAcajFHDWpf9CTwxLkPcb1pBGoI 4zb6oaVnlvCL8273EG/a4U5WpNTSH0nRatv7mifd0etaOGE7TeoW5R68b N6HEzk6Mkvlzb16VRm3pZdBBHS247spclXG4anTVnLTUkBJiXZ6FYytPw Yw1H7avc9nmeTIFW9boRxLfBl9V6AufvR7OAXcdVNEGuna3yA6RbgejBF K1EH4o/1qsDPfjBQV9M8sT40q5p+aJxuuEP3iPDPbyKeQUJZiKaixs7d2 A==; IronPort-SDR: wLBFRWPORpg08O93sNfmdF9J4ruRorf0PARXcQS9R7qBQNUaibY5nO/57lo37W7DjNzlyFgxzI XOgzDGMmLpNsqilooFukdyAY4+cXADC3F+OOaACN/lJhP675i2XBCFYJDYjgtLJKLIg/WBgiUE BmncU/tCNOfc4lCPVoibel+xxLfuQYcPV6NcN7z/1LW2H4QTJYnIGD1vWJ/GAGbeuVwTcxjKzj iA6zVLvwYOjeVrNT/7r4+12Mm0ezZoOPDoc1pbpbUjnHPTHVWvxf+AcA1V0JkjldXqaStzzlMt aWw= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114661" IronPort-SDR: Q4ZBt7Cfvyss8OhTpDk7gZzisZpwFrR6HexDyt3Hj3f9PQOXhs9oOc2oGCOS/s7psLjIXvN0MY snqyPTCUMGybJ5FJBhJ062ERHmb3ru/D23MOv4goGEBKckY4HmFSjn7ANS9DtmJ0JLqIAbPXnw oQa8kqyMKTYm/SwzhI6n+pgwVyWk8yoAO8nziKSqUZo7lX6Y+DS+u4rYQyNowYVZY9TSjhuwsj +FqgIqVmKHo72JwUQ3MuPZ9H3nVXtxMC5SpDvqtWflD0eSmOEYKFoccMCSjIXBHLHn3vEKG7Ce kOzrvO1MUvY9el14ZGeS8ymz IronPort-SDR: hyp+MhIcNIVI8Bgegsfd1HDFjBeJ3ylPCBd5ShzDGCewxX6qeYpebChIs6ghLfLW+lCSj+rkfm xIKs2H/Fqc0OCczB+qabaaz8cLxhheGHxSN8JmHhdskiGuuniumPVPkSE6z7I1SvqvfEyfvfT0 oGodYO3IjlT6PyGTYSmkaZSZI+oPeXBWuEAcEVtLZOTNHTP12AwHhYE3zI437PKyGP/spmmuaJ +Emkp53gMk7YJIzsgmbQ8rR2smRRIdDQka2wFI9NSZ9SYZKU8DN9zFke8T13S8RaFwonGbWEmc ojU= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 19/42] docs: Add documentation for shakti_c machine Date: Tue, 4 May 2021 08:13:04 +1000 Message-Id: <20210503221327.3068768-20-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vijai Kumar K , alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Vijai Kumar K Add documentation for Shakti C reference platform. Signed-off-by: Vijai Kumar K Reviewed-by: Alistair Francis Message-id: 20210412174248.8668-1-vijai@behindbytes.com Signed-off-by: Alistair Francis --- docs/system/riscv/shakti-c.rst | 82 ++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 docs/system/riscv/shakti-c.rst diff --git a/docs/system/riscv/shakti-c.rst b/docs/system/riscv/shakti-c.rst new file mode 100644 index 0000000000..a6035d42b0 --- /dev/null +++ b/docs/system/riscv/shakti-c.rst @@ -0,0 +1,82 @@ +Shakti C Reference Platform (``shakti_c``) +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +Shakti C Reference Platform is a reference platform based on arty a7 100t +for the Shakti SoC. + +Shakti SoC is a SoC based on the Shakti C-class processor core. Shakti C +is a 64bit RV64GCSUN processor core. + +For more details on Shakti SoC, please see: +https://gitlab.com/shaktiproject/cores/shakti-soc/-/blob/master/fpga/board= s/artya7-100t/c-class/README.rst + +For more info on the Shakti C-class core, please see: +https://c-class.readthedocs.io/en/latest/ + +Supported devices +----------------- + +The ``shakti_c`` machine supports the following devices: + + * 1 C-class core + * Core Level Interruptor (CLINT) + * Platform-Level Interrupt Controller (PLIC) + * 1 UART + +Boot options +------------ + +The ``shakti_c`` machine can start using the standard -bios +functionality for loading the baremetal application or opensbi. + +Boot the machine +---------------- + +Shakti SDK +~~~~~~~~~~ +Shakti SDK can be used to generate the baremetal example UART applications. + +.. code-block:: bash + + $ git clone https://gitlab.com/behindbytes/shakti-sdk.git + $ cd shakti-sdk + $ make software PROGRAM=3Dloopback TARGET=3Dartix7_100t + +Binary would be generated in: + software/examples/uart_applns/loopback/output/loopback.shakti + +You could also download the precompiled example applicatons using below +commands. + +.. code-block:: bash + + $ wget -c https://gitlab.com/behindbytes/shakti-binaries/-/raw/master/s= dk/shakti_sdk_qemu.zip + $ unzip shakti_sdk_qemu.zip + +Then we can run the UART example using: + +.. code-block:: bash + + $ qemu-system-riscv64 -M shakti_c -nographic \ + -bios path/to/shakti_sdk_qemu/loopback.shakti + +OpenSBI +~~~~~~~ +We can also run OpenSBI with Test Payload. + +.. code-block:: bash + + $ git clone https://github.com/riscv/opensbi.git -b v0.9 + $ cd opensbi + $ wget -c https://gitlab.com/behindbytes/shakti-binaries/-/raw/master/d= ts/shakti.dtb + $ export CROSS_COMPILE=3Driscv64-unknown-elf- + $ export FW_FDT_PATH=3D./shakti.dtb + $ make PLATFORM=3Dgeneric + +fw_payload.elf would be generated in build/platform/generic/firmware/fw_pa= yload.elf. +Boot it using the below qemu command. + +.. code-block:: bash + + $ qemu-system-riscv64 -M shakti_c -nographic \ + -bios path/to/fw_payload.elf --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081336; cv=none; d=zohomail.com; s=zohoarc; b=fpLrVWUDoNqjsTUcKNhgUP/BRPREIyevMdD5ols6Wzns7NNUATzoJQmZCghmiam86CoWt7/+kTItZWF9ny+fviCJKszwCx3fuo4APf508AH/+vHX7t45wcBxJJhuG5583vtRxNFcv2k9bjMmZC/NC/93Tiboud9/dPEmusvgayc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081336; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=G9vP8WJLuAHZWPrml59JhAxfgKeXrNBdy7rZHaIzKVA=; b=hRXgOh4+Hq38QiYukdf288IPzfrXNi8cisS92Co4k168+bF0hBoTb0LXZAg69GyWiYX6wm1FOgryLI9IJwrJDKYtKyUU+FPwjACwK3DHw3F2oPGIKAVZMCWQQDwUf8GNZ+FRT4WoRRUyaN/OlwXKDjJ5bjnAuEQxG4mmS6Isxys= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081336522597.4608661029497; Mon, 3 May 2021 15:35:36 -0700 (PDT) Received: from localhost ([::1]:40472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhA7-0000Az-6M for importer@patchew.org; Mon, 03 May 2021 18:35:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53144) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqI-0005ms-TG for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:07 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqG-0000ID-Io for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:06 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:45 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:54:56 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:43 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080104; x=1651616104; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=d+NPft2RyN4RxgurmCoyTVD5EaivC4NQIQYrLmDjJmk=; b=LOdWZaOVGV8pNmELCju0JCm0OSsU3F6cFFzvdfSQcUifvXzjDMsJA7kT pSz14q8MzI3aU0jXw1pW3YjjxNCbDZlOkew+Oycz8GxYzHMmeBognWQ6w 6pU2QlbsWOz698yAosZ21f0KZtWDpbZqbwtDcsV4ouLBMZIMs4jyIg4/4 sCzXHEYwLfd38B/AxU25TxVduYrbceZ03fuYvbs3zNk8RgnZxYBQGvBk4 CK6PNcmtXx5ULix024EjaClE4X+7wagABPPIL3/FWdFGDeSi5pUjZwDiN WXjR2nwkfEp7N/8AalfSogxsS/U2Qw/A3AzJwmOtcwdfbmEgklLv6KbDf Q==; IronPort-SDR: M1vo6uFfzFUZqHwB2FZLDPaLsPbleiWAEh+fc4UiJ8hxJY5z186UFY1FcwW4GQYx0iycHOxvW5 IggRXCEo5tPZnb+fhjTxpgO89oVHs3y7+jwivwgoM5g4chZL1L4OsCyTyRdGEfRtx3Xgu+JKJJ T/yq+rsKAOsRcAS+Q5z50nIt9PG13QBoWpiBaaK4j7r4pelDXuZWiYRb8QQVdACZerK9o1DAm6 K+XzB+5pvJEMHTdOCfepOVK1CKEYMme4neK0ZeP4Mtjnq9KKrI4k3qkD7hjS02Ev9PuA3UQoY4 WYM= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114665" IronPort-SDR: 83fW4R19PSdr9UP0xrnPej74VmeiFRMykG/Zgz6WJ0bLwdNWFc1wLjvJtz0tfu7/sFCKWz6GeK 3zys/H/47mA4qLX78Md7aW9xqyisBxPA4zzkJn7cJm3Ls4dq4w/t2bq3zHQWJ8Y/cczMPzo/4T TNeR6TqRrIsDaYIuX6KkPYlAc70x0aAwi+RHJQKuihBMfk9/w7KvrZTj8mnt2wQjUxH0UjQ15W PK/qj0b/pvNzALKEYQDtNTJaxFuzMzFMMUDeEuP+QhHM3hb1IYRUo1UaJeNhceNkkJbBmQDl1j MYuAcxqzSNhQcvWsRbY2ANgd IronPort-SDR: isNXFv2o64U0vZySkXDmMqhWk9I5xRVu7myIBC9zUe3g+q5GCNoAFPwzK41DwEB2zSeLGuCffW MgG7+oy+GfVhs8R97xrlQmGH8eeQMHwOKSK66+BFx6LDbEpQg0JfgLHfYwlWA21nN3uEbCkrFE vCPFIfm8TZEpIKvotjm+NLxGnS9FcXSdvKzeKeqShqCL+wkm0RN52eXdb2hdEmxjTC3orj0dT/ H80HeOTQaYPWaBQFv1BQtCdgq45DofDENjT/mPO2mOHgw+Y/Jr++9XuGwlgDvcFwvhNNmWgwop i4Y= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 20/42] target/riscv: Fix the PMP is locked check when using TOR Date: Tue, 4 May 2021 08:13:05 +1000 Message-Id: <20210503221327.3068768-21-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The RISC-V spec says: if PMP entry i is locked and pmpicfg.A is set to TOR, writes to pmpaddri-1 are ignored. The current QEMU code ignores accesses to pmpaddri-1 and pmpcfgi-1 which is incorrect. Update the pmp_is_locked() function to not check the supporting fields and instead enforce the lock functionality in the pmpaddr write operation. Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 2831241458163f445a89bd59c59990247265b0c6.1618812899.git.alistai= r.francis@wdc.com --- target/riscv/pmp.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index cff020122a..a3b253bb15 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -59,16 +59,6 @@ static inline int pmp_is_locked(CPURISCVState *env, uint= 32_t pmp_index) return 0; } =20 - /* In TOR mode, need to check the lock bit of the next pmp - * (if there is a next) - */ - const uint8_t a_field =3D - pmp_get_a_field(env->pmp_state.pmp[pmp_index + 1].cfg_reg); - if ((env->pmp_state.pmp[pmp_index + 1u].cfg_reg & PMP_LOCK) && - (PMP_AMATCH_TOR =3D=3D a_field)) { - return 1; - } - return 0; } =20 @@ -380,7 +370,23 @@ void pmpaddr_csr_write(CPURISCVState *env, uint32_t ad= dr_index, target_ulong val) { trace_pmpaddr_csr_write(env->mhartid, addr_index, val); + if (addr_index < MAX_RISCV_PMPS) { + /* + * In TOR mode, need to check the lock bit of the next pmp + * (if there is a next). + */ + if (addr_index + 1 < MAX_RISCV_PMPS) { + uint8_t pmp_cfg =3D env->pmp_state.pmp[addr_index + 1].cfg_reg; + + if (pmp_cfg & PMP_LOCK && + PMP_AMATCH_TOR =3D=3D pmp_get_a_field(pmp_cfg)) { + qemu_log_mask(LOG_GUEST_ERROR, + "ignoring pmpaddr write - pmpcfg + 1 locked\= n"); + return; + } + } + if (!pmp_is_locked(env, addr_index)) { env->pmp_state.pmp[addr_index].addr_reg =3D val; pmp_update_rule(env, addr_index); --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620080869; cv=none; d=zohomail.com; s=zohoarc; b=EJHv72oytlIVhx/cv+M41kCthA3hjSi0AzBi2+8oxVbzNb23ZUSBfFzh2e6XoThDqnQHXrS+G/Axmzsi2DG7J6lQA7BozSwrb4vVvutUBEplYoA8xcyE2dA5SMXBSAcFqiKoZBCcTVQEmhDy3h2xVX0WRfCD5yieAhBfDCMXGW8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620080869; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mcpGXVepJqKiv5oye0A0bHjR1wMylxNH/I1SWj9Nsn0=; b=EYdail4qQC/zwp7RBfhxkR57yhOGpYbahC4g4MnqVIyhoc9beyra/0aOlC6Al7Jp3VcBaIGKURBQYxym0vTSfW11MMqIqFErEAQPJBigSNlPKrtyxXAcs/x6LYzzKtPX/giRg3wSAwbdhFBHwg6sAWBGuFkSfL9DbshmH7E0Scw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620080869241657.4464644025982; Mon, 3 May 2021 15:27:49 -0700 (PDT) Received: from localhost ([::1]:48616 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh2a-0000OV-6m for importer@patchew.org; Mon, 03 May 2021 18:27:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53232) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqX-0005re-15 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:21 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqK-0000Lb-FR for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:20 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:49 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:00 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080108; x=1651616108; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8y3Un5Hxd2E2PcjnIHIP4w4G78fYCc51KoJUltBBqoo=; b=kH/U3IekPzR+rzGLOkTDH+fwUjtsF8vxItk1OLC9INIuFdMLKurWfYGR bVRXPEO1S6JAeBpsDy7Vg5FST4otKTCmbILe0Bpm9DnIM+e35VXqKcclz pGj86Cqug5Exv3M+EjkWuRt5ZufMKvyXDS2TZTijIJzLI0fWF48Bj2/pD qWcQ+pKoyF2crXeS1ErOxe+tD8ZqmGCIFaum5UBab0meNU2haNeU1UO8l fX0liM4Zm3pg5NnmYJ8fxlufT0VNSzCF2BhbZgMVhIoORiMTNb0osBowc BmKBQM34P2BHZoXP2RS5pTNE79WRAzLmW5YrIOQk0PHVtwT8ZuGfQXq8D w==; IronPort-SDR: xF4eJQjhJcETVvcNeBLOwM+gJ0wbII6nzs2Iq+3eORSV0GAmus5CC5rk5zoF2ycS7ezAdBtz7K HI0bHaTOA35hWemkPz4E08VtZv9fwfjhet+wRJHzrbHAx3v4q09ARTmhoA5VYb39FY/ye+meQP nYEnDJeB9KUBy/71HHz0IY24zGFJJBMkg7Qv+ty0j1i2ZvPEnlBVTb/EhGuQPVfNmFXkxmgyHn iKJcQr3p+g/wpybBJ0T2kf385jhZm6rlakWqFPQSvdA1pyONLTrGkEdQm0wHxQXns0bKQMNh0Q 8Qs= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114670" IronPort-SDR: xCBlGIecFNx54I7VT4Du2JgiY2fky+LZYtgU3X1IIsBUGZt2IkkwGUSw3OcEHWB/EfQaneoxY5 6CPKpY9cGrcVN6/ncNMVuhxGyJroMq0Y4TFhqpeLovTE1T7NitWKHzD/8oWWpu1SemPHEyaGrV U3WsjXnoeMhqds/1/d9BG88RBYUJrpIb5vmHv+jmNDYfoMGJzrmzCf6WJRa10pM59Cs386EQV7 /HO1WxeIDrSClzlSPqp0ZQhpE/P7ozz7jlTfvGwl1fpmnsm0A08Srw+1AlniqtbyLmbFV6EvYz A1NiLANjwI2w0Fc4wX0jCFx/ IronPort-SDR: MRwISYcwAtNMzaU1b7cwqFi5fI1tjsp/yxlBfOD6kLpNC5yOP4CwQvHkWvp+73LYKa+Z4PDBKk ioD9xKdSUNpicoR9aNxf6Lj4QD06r4pK5/1wWRNjTbbyzfpv744orXfveQGOzbRt4d7RWUD0CK rLtZLEEZfFlp9kfnaIz3D6azocUbrCa1Bn7icihrQbQkyYO6T40RKcVpgRLjbwWKco+8oauVPn 0/JM0NWWcV/n5DHMXE21EGkhY9WK9UvRrZQcPVtr1JWSYz8uw6O0LGfBXxXBlEh6j6UXTawsvX NPg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 21/42] target/riscv: Define ePMP mseccfg Date: Tue, 4 May 2021 08:13:06 +1000 Message-Id: <20210503221327.3068768-22-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hou Weiying , qemu-devel@nongnu.org, Hongzheng-Li , Alistair Francis , alistair23@gmail.com, Bin Meng , Myriad-Dreamin Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hou Weiying Use address 0x390 and 0x391 for the ePMP CSRs. Signed-off-by: Hongzheng-Li Signed-off-by: Hou Weiying Signed-off-by: Myriad-Dreamin Reviewed-by: Alistair Francis Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 63245b559f477a9ce6d4f930136d2d7fd7f99c78.1618812899.git.alistai= r.francis@wdc.com [ Changes by AF: - Tidy up commit message ] Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- target/riscv/cpu_bits.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 8549d77b4f..24d89939a0 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -220,6 +220,9 @@ #define CSR_MTINST 0x34a #define CSR_MTVAL2 0x34b =20 +/* Enhanced Physical Memory Protection (ePMP) */ +#define CSR_MSECCFG 0x390 +#define CSR_MSECCFGH 0x391 /* Physical Memory Protection */ #define CSR_PMPCFG0 0x3a0 #define CSR_PMPCFG1 0x3a1 --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081219; cv=none; d=zohomail.com; s=zohoarc; b=itSdKiVLwAl943AYEwUdzfl7yGMcQe/KDADgQ43UWVHoqSaIdxafyETQUqwCr0ndW3nrrdPTR6mvO9FyRd4351xqdVTmQ66scc7yIXEDMVS/OxzoYvugA0GHrEAYc5h8VUmfvza0oPbKnsMwOSMJ+9edJfoUM7pjNW8sk2BCOJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081219; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BvxJBsYRxOolKmesuJaBDV9AhmyG0aTopXKpk+LX37s=; b=FrVsVOlZgyZqvwXu8+um/DXc0SJMWWAKMv/ceSSxwwj+//SEokAH3hhMxJE7i0TEEwBn1ASjlCRQPrPdMl73P0DdEUEdfWJgIL5NpluhhQ3hW3dKGcyTRo68u5UHf4Nphhdx0pIrf9kFXm5oaoMv8eU31olgdAoYuV6L4UVwJRE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081219439119.7458053173118; Mon, 3 May 2021 15:33:39 -0700 (PDT) Received: from localhost ([::1]:37750 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh8E-0007UD-BC for importer@patchew.org; Mon, 03 May 2021 18:33:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqZ-0005sT-7k for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:23 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqQ-0000Fd-N9 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:22 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:52 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:03 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:50 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080114; x=1651616114; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=NHvDFXBaWN2j3izad2FF3XGWNvtRcgbhcimmn8MDmLE=; b=g12gp04SMmTI4uUgCFqAL1v/apKhBpuLw1WuaZvmfZ7qBnQZ7I/SXdF8 Bxi9GYziJidfhoP66J4VaBVixYKw6WsCpw/ShmvhsFOGE+m5MSM8kp3nM szB00iB081n/bpVC2FNPve/dQ15o9gXjcWMeYeYGXVPviZNzZY6/efYG3 226+4kmgkJfLeuiFYITR3GfWlGei2pov97SvAnxnoXbKg8FXafQymuwOw GFz+b3cNQopQtoOS9pVItQIo6/CbrKRfpGEg93vEm9vYnyJy4khCT5Hh3 viseOtA54JIdLLu22aoW04GxxspnlJ+N0UxA+PNi8siSU34zPQV2+XVMk Q==; IronPort-SDR: z1vI5YoxzAzA+1xNXbV5otXgiiPhRuV9HZ/5v3DhPiZcma+EYz/ZW47/OQsT+eht+AShhnNu+Z 770ODfk92WZzM39/1bga43CC25tBJ1B1wolqghN5Bx4bm+sjfkfGpREuOcdkZMlE8WSwu0W/LE 5xF9hOTOLDFJoXeCOdwvgm/4mza5fFTBMnxrzgrglITzf1um+pPzdxo36bbk9KjxFIcZk/IU5Z y8kFN4d9wgvBcUNpfOdKeEcWLpfNVgiyIe5TZGlWhWPhKa3T3H+Mjy5b3OYN32U9ghxjLOJnFQ uZ8= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114673" IronPort-SDR: gpMQS/MWIvnEqyd/Zqb8A7n/Fd8Nu0qf9cpcHsZxTCbHAWYYNAYv975GUC6Fm7WNNg/mcEZqNt usUjvUhlWp3PdrbSgLusn/UyZLHstgvT68u+YRKp+xJ0cqzRHZ/IAvRlySqpYi7hGUkwaiK0pD lBCtmtI3w1AFWDG8KxTcReVrGcG/3iUmVGuuy3fDfbmXWy3xzKeTrLxAOxXV2IZ614OQj22qxX inM4dfh3cjoYjo027AsLJZ68o2jGh34oEDk5bqnMFIHhDnq+2aGRNTLqA93nlGoyPzmW0LJjIQ 7EwHPf+tNqkrB9QXqWplf2bX IronPort-SDR: uiSX9FoXaAol1gkf9R71Y+UJ+R064FWNZczHr2tn8qcOOfC+lYbmyuuU7YeQTBEV0t5UIyMJ/b h6N7HAQ99asYNaDN+UFNL4BkXYHxAsZoGCagsAIeUZxo8nwBHO9gACbs7MbLohX/Lua8dc0LjS ePtkCbMpkww/oRNG0lofchl7PeNJP5qfy+mUawXUkw4ix2BYVF4kG0Dp+kZv/OXgkEaURnpAOu VEuiwv5SbuasMnvjhcOmCing3zwonYuSb9ZyF6HcENIv6txfw7o0hX4JhNq9GWUp2HowMyxWBI GIw= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 22/42] target/riscv: Add the ePMP feature Date: Tue, 4 May 2021 08:13:07 +1000 Message-Id: <20210503221327.3068768-23-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The spec is avaliable at: https://docs.google.com/document/d/1Mh_aiHYxemL0umN3GTTw8vsbmzHZ_nxZXgjgOUz= bvc8 Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 28c8855c80b0388a08c3ae009f5467e2b3960ce0.1618812899.git.alistai= r.francis@wdc.com --- target/riscv/cpu.h | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 842d3ab810..13a08b86f6 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -81,6 +81,7 @@ enum { RISCV_FEATURE_MMU, RISCV_FEATURE_PMP, + RISCV_FEATURE_EPMP, RISCV_FEATURE_MISA }; =20 --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081030; cv=none; d=zohomail.com; s=zohoarc; b=gdVfQP/MvaTO2Ik1FstCyZQkqyuR9BglmZdtI5oRAXEp1JtP34SW+HU94xXZDBPp5IYzY+jWJ4nM81Q8X6/8DsKE3z0imuQgMF/oC3nlDJzWIF631Sb57XVEz5IY3EsXgQeSIW/dg3jxpmoOFfNf5MD4NCBorVMz8860MIAbRP0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081030; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2dTecmbD424LIpruXzM7H3RBRTFhWqEJM04Mmu/pWTs=; b=e3g3P7DkcNGMEJHtb0uW1N8gSCEdHnzp+R0/1jmwsU33oVX06kaHRZ3v5VdwbgcnTBlFT1qJHXvuGRRHJrxJzAMb2zZLurbJBJ69N8UibwPqdwEkIAaINuwngVCi0DijqLm9WpWcjaf+72/xJYDBwH3HG5/rNiY+DmmOdVgL4Mo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081030208939.8642534093754; Mon, 3 May 2021 15:30:30 -0700 (PDT) Received: from localhost ([::1]:57168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldh57-0003oq-OJ for importer@patchew.org; Mon, 03 May 2021 18:30:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53234) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqZ-0005sR-6t for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:23 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqT-0000ID-7P for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:20 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:14:56 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:07 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:53 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080117; x=1651616117; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=U7W9/97cV7S0MeqIjKSK1ip9SWpr6IUZRTVpdh1xCzQ=; b=IWJFf9cXL31TOPm4HvwAPEfzXXigmJdP54bA69c9adBCGofGPThM6rOn dBGpTnYRhO0amBi8aKac8Mm3+KvqkXTruhRPP+GVxFXwyBxDQhhg2xCdZ Y8X4Gsbd30bZaHkJ9D0+JgDOKax4fvJ+PSkpuiqt4ncBkJlBCYr9jyc3n yPFJ1XPYT7rsv8wAsDm7y7bbw636z8136N0MvJvAW+wt88aZLdpVxpcia jVbveAGUVh7Uaeqi2iz98gDIkqb1L/y5RwnaBHEF8qg+mIFlHHEqVt2Wc IYATBcAU+ZMCOfyZxKj1Un+ZgBI890bJxOW8qMiQr/usIE6n/+3zkvWax A==; IronPort-SDR: /L3DqBCiyhkXGDtgSHEb4G33yKI48bfrDb1abWtutQedg+pxIPjJng5fEfGBPuvQ3cxrSbSXkE PTjPkmGy/WEm1Yyl1sIZ6raTIaTEzOmzcqxMAkXz4NIfGiU88BkUO1GNOqdXFTePgVGBvgoDaT x81vSDSx0q8nHqvAB6EIbGTl4nnIdybPyxuo/oFnq9XpRmMidMRXKwVLiJ89nBJCoFKsdjnSKK Qo8FY0zY01jRzSIGlNAGHbWVh4G0ka8SmI1UsBHpS43Efm3++esOXiWMmwnETirQAyiBSd7TlX ZRc= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114675" IronPort-SDR: ccn0UOwW/uA8xaU7Do3ZWtcSXwH6jchVgkTJmzszcOcpX1WEhB6wWNkWHa680ocbdbemwADHLO 5CsUHylU1ZYBCV51biIkntZ/bp02riXoFAzE5XNr/OwVctZgrvC5OIiqr1ut+a/nWflkzYWxjT 7++M1c/YuW2jrz76LLnKbuDTV90B8fHIRH9g84kE8iMfCYcBOJmz4ScN5SvPHZXrhj5mPG1EK1 uJ+tnS8sSlJE65QB73jCVm3xremYqxMzrw+LGkEH9YPQHzQe/mt3xAZu7rRUPw1lEQiMAWCQ2I QV3kPDs364mKAowZWmOPt/lf IronPort-SDR: Kd+mYpDbGBGl6VdxxQXq6b3XpmgV+i0RIPW09gqMKD4zZmS7jNgCkqGpI7DFOwDKX2XSQZ+wgm BfR+Exo0X+jetcnVOLVCXeKPajleEaTawygXNvXyaeJbrt7rFyQwXNUkzJHl4jYh+c4CXRK/E/ 0WDML0WHXvNYUuK6y2irNF25ri/37liclDc9iVDL8cXXMG3/WamvkCsLcoWnBFbWGuG73yjDb6 86pqjlY76EFeNP3aUgWy7ngiJjMIt5RuqHuv2KlUVgjDEDRbuziNiY5NQkFu28kRYVHcLGHqBB 9sA= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 23/42] target/riscv: Add ePMP CSR access functions Date: Tue, 4 May 2021 08:13:08 +1000 Message-Id: <20210503221327.3068768-24-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hou Weiying , qemu-devel@nongnu.org, Hongzheng-Li , Alistair Francis , alistair23@gmail.com, Bin Meng , Myriad-Dreamin Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hou Weiying Signed-off-by: Hongzheng-Li Signed-off-by: Hou Weiying Signed-off-by: Myriad-Dreamin Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 270762cb2507fba6a9eeb99a774cf49f7da9cc32.1618812899.git.alistai= r.francis@wdc.com [ Changes by AF: - Rebase on master - Fix build errors - Fix some style issues ] Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- target/riscv/cpu.h | 1 + target/riscv/pmp.h | 14 ++++++++++++++ target/riscv/csr.c | 24 ++++++++++++++++++++++++ target/riscv/pmp.c | 34 ++++++++++++++++++++++++++++++++++ target/riscv/trace-events | 3 +++ 5 files changed, 76 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 13a08b86f6..83b315e0b2 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -230,6 +230,7 @@ struct CPURISCVState { =20 /* physical memory protection */ pmp_table_t pmp_state; + target_ulong mseccfg; =20 /* machine specific rdtime callback */ uint64_t (*rdtime_fn)(uint32_t); diff --git a/target/riscv/pmp.h b/target/riscv/pmp.h index b82a30f0d5..a9a0b363a7 100644 --- a/target/riscv/pmp.h +++ b/target/riscv/pmp.h @@ -36,6 +36,12 @@ typedef enum { PMP_AMATCH_NAPOT /* Naturally aligned power-of-two region */ } pmp_am_t; =20 +typedef enum { + MSECCFG_MML =3D 1 << 0, + MSECCFG_MMWP =3D 1 << 1, + MSECCFG_RLB =3D 1 << 2 +} mseccfg_field_t; + typedef struct { target_ulong addr_reg; uint8_t cfg_reg; @@ -55,6 +61,10 @@ typedef struct { void pmpcfg_csr_write(CPURISCVState *env, uint32_t reg_index, target_ulong val); target_ulong pmpcfg_csr_read(CPURISCVState *env, uint32_t reg_index); + +void mseccfg_csr_write(CPURISCVState *env, target_ulong val); +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); @@ -68,4 +78,8 @@ void pmp_update_rule_nums(CPURISCVState *env); uint32_t pmp_get_num_rules(CPURISCVState *env); int pmp_priv_to_page_prot(pmp_priv_t pmp_priv); =20 +#define MSECCFG_MML_ISSET(env) get_field(env->mseccfg, MSECCFG_MML) +#define MSECCFG_MMWP_ISSET(env) get_field(env->mseccfg, MSECCFG_MMWP) +#define MSECCFG_RLB_ISSET(env) get_field(env->mseccfg, MSECCFG_RLB) + #endif diff --git a/target/riscv/csr.c b/target/riscv/csr.c index f0a74f0eb8..97ceff718f 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -200,6 +200,15 @@ static RISCVException pmp(CPURISCVState *env, int csrn= o) =20 return RISCV_EXCP_ILLEGAL_INST; } + +static RISCVException epmp(CPURISCVState *env, int csrno) +{ + if (env->priv =3D=3D PRV_M && riscv_feature(env, RISCV_FEATURE_EPMP)) { + return RISCV_EXCP_NONE; + } + + return RISCV_EXCP_ILLEGAL_INST; +} #endif =20 /* User Floating-Point CSRs */ @@ -1343,6 +1352,20 @@ static RISCVException write_mtinst(CPURISCVState *en= v, int csrno, } =20 /* Physical Memory Protection */ +static RISCVException read_mseccfg(CPURISCVState *env, int csrno, + target_ulong *val) +{ + *val =3D mseccfg_csr_read(env); + return RISCV_EXCP_NONE; +} + +static RISCVException write_mseccfg(CPURISCVState *env, int csrno, + target_ulong val) +{ + mseccfg_csr_write(env, val); + return RISCV_EXCP_NONE; +} + static RISCVException read_pmpcfg(CPURISCVState *env, int csrno, target_ulong *val) { @@ -1581,6 +1604,7 @@ riscv_csr_operations csr_ops[CSR_TABLE_SIZE] =3D { [CSR_MTINST] =3D { "mtinst", hmode, read_mtinst, writ= e_mtinst }, =20 /* Physical Memory Protection */ + [CSR_MSECCFG] =3D { "mseccfg", epmp, read_mseccfg, write_mseccfg }, [CSR_PMPCFG0] =3D { "pmpcfg0", pmp, read_pmpcfg, write_pmpcfg }, [CSR_PMPCFG1] =3D { "pmpcfg1", pmp, read_pmpcfg, write_pmpcfg }, [CSR_PMPCFG2] =3D { "pmpcfg2", pmp, read_pmpcfg, write_pmpcfg }, diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index a3b253bb15..e35988eec2 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -419,6 +419,40 @@ target_ulong pmpaddr_csr_read(CPURISCVState *env, uint= 32_t addr_index) return val; } =20 +/* + * Handle a write to a mseccfg CSR + */ +void mseccfg_csr_write(CPURISCVState *env, target_ulong val) +{ + int i; + + trace_mseccfg_csr_write(env->mhartid, val); + + /* RLB cannot be enabled if it's already 0 and if any regions are lock= ed */ + if (!MSECCFG_RLB_ISSET(env)) { + for (i =3D 0; i < MAX_RISCV_PMPS; i++) { + if (pmp_is_locked(env, i)) { + val &=3D ~MSECCFG_RLB; + break; + } + } + } + + /* Sticky bits */ + val |=3D (env->mseccfg & (MSECCFG_MMWP | MSECCFG_MML)); + + env->mseccfg =3D val; +} + +/* + * Handle a read from a mseccfg CSR + */ +target_ulong mseccfg_csr_read(CPURISCVState *env) +{ + trace_mseccfg_csr_read(env->mhartid, env->mseccfg); + return env->mseccfg; +} + /* * Calculate the TLB size if the start address or the end address of * PMP entry is presented in thie TLB page. diff --git a/target/riscv/trace-events b/target/riscv/trace-events index b7e371ee97..49ec4d3b7d 100644 --- a/target/riscv/trace-events +++ b/target/riscv/trace-events @@ -6,3 +6,6 @@ pmpcfg_csr_read(uint64_t mhartid, uint32_t reg_index, uint6= 4_t val) "hart %" PRI pmpcfg_csr_write(uint64_t mhartid, uint32_t reg_index, uint64_t val) "hart= %" PRIu64 ": write reg%" PRIu32", val: 0x%" PRIx64 pmpaddr_csr_read(uint64_t mhartid, uint32_t addr_index, uint64_t val) "har= t %" PRIu64 ": read addr%" PRIu32", val: 0x%" PRIx64 pmpaddr_csr_write(uint64_t mhartid, uint32_t addr_index, uint64_t val) "ha= rt %" PRIu64 ": write addr%" PRIu32", val: 0x%" PRIx64 + +mseccfg_csr_read(uint64_t mhartid, uint64_t val) "hart %" PRIu64 ": read m= seccfg, val: 0x%" PRIx64 +mseccfg_csr_write(uint64_t mhartid, uint64_t val) "hart %" PRIu64 ": write= mseccfg, val: 0x%" PRIx64 --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081463; cv=none; d=zohomail.com; s=zohoarc; b=kzsorA4w4Q+p4bYg3SNpBeUT2Mxd5HagT6kQGHj1UHrG/1Y0bG6zeG0a4ovsnLcUxBFE1vc26DbP4lssmsiHiqI11LuLfBFC2dLuZIyqpK89FEUBA+xq7MnVgXbE2qamAMQeykf8/mGjFEm02GvMYCe5mLpGIX94LDA0dK1wdBA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081463; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0tv6iSxRMpsPrmxSXZinke4/7rT4ADgkC7S8rEBhUp8=; b=i7uyBcTbkjX5BPArt28b9zxy4C5WUrYdhBu7dgbcbO7bke/cc/qjF9dYgdfX1R6lEjU0MxY1L4flGbaNEqv7S1Eup5x0E28+VsOvZpaY09IMfz/YZLhGQdWQLDPm1ZnhDie7y6GHZ2RozltzD5A5itLZQHD6/zKQXOw70XvAVCI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081463466773.7622144539528; Mon, 3 May 2021 15:37:43 -0700 (PDT) Received: from localhost ([::1]:46138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhCA-0002bS-AT for importer@patchew.org; Mon, 03 May 2021 18:37:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53286) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgql-0005yZ-92 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:35 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqi-0000Lb-TF for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:35 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:00 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:11 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:14:57 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080132; x=1651616132; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=pBBAC61+EEfqzPyFG9Ss2AtmUcGJb3aUIYDnVeOutq0=; b=Rwi9s6S0zJ6++Cf70hZeluS0GVfXXu3hV+gOM/xDTGXoxZjAvTyYILgY gEgpE9fKnNXdUky4Tf/YR4VPTYpMg729EymQ0T8sxQZz7Hfw6bPLnVVPT zPrmlWI0Bn9bFFd44e/KhNzVNaFXfc0KGHKNCtXXwekFtQnVhvMj5mOoJ LPDJY/0tnM9Ke769JeQzERLpt0PgY9HA+lzYre2W0RPjj9/aAydppj8SH FDFqKPKxxbV9fB8DXpeiNVdvFWw+ZxJP9ACj7Uq3VBn9pabLk9Nxpgprs tNrgAGxU7mHoSlGdOEQOrOD2fETsYqbo3HyKaCsst3uulgQodt7TL+7BW A==; IronPort-SDR: ZjBqXrgIFoQswBAH5IDoaz05N2/lvXAPj+pb7JMslRPBh3R2bJfTr7MQFC3UPyz9uRKHagEaYn ddVa7c/NugOAC0ktn3T6tZx+a6IsE4QUUonJzu1ilp18kWaO+8BhKK3veLE5kYu88hHy6CGIdi HQ9yp0EXjmCppgok2hv+YAa8x8kqYA9Y/4uLzNHKcgKdqvJO61zYtoU4O7lq7Bqzgy032zxKRO aC058KW2+i7RmKJHVcWKJ7L+4y5VyFSPEFjPP7NwF7uOnECHAH+wkT8YP7w8t5QhPUXRKHgSLT TlQ= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114679" IronPort-SDR: cnH5ylWN3w7XLzeiV/gJYJ7yIhqlKVPK93xGAycPixEjaIO7/FrRoN75UykOrOD60H3nYdU9dA GXwten97n+XCjnQdRbKsC14uX+Z3OsHznuCq8UtWYwqV6HtL/yf+DAHu2J/G6R6wz5oGOJ+0yd O2qcukamL3NUISUH0UhrIw1Qlde4BsXa/gc2+O9aa493/i1D79pjvxfQT//QQd8MmJfVdguKgB YrhoVB4xlUWfxSEzndEVpBt4pxN+qKpNhX4Ek+mzPzFCiU6RAW32qsGyig0ewv3ft5I3K/fnoL UGmUFuhiWbiD/nZwkya359bZ IronPort-SDR: ujAK15fQhhZGGquDXOjJ10CMLu+dFqY4WqaiOlP4DsXakeluqacYRrZR8BXSG6WarSsPTSjo3z I1KWnVjMfo4lBfa+YV30JCxeQu/2a6uFI+8s62rPxxYDSbBp9Ltn2ChfRK6zPAymujqISWKTLg tMC8wvf8INCkk1ila14ay+xNoFvnmK5sXrSOxvr0THb17AkXHXu3Gay8In+Eq3GiuzR83Iais0 D5rsYCa9YOYQ7BNx6DSIGeXgWcumSAz9oRAhPRgqRec90tCwlPt09kpUKUUZKvshpdN8itncyi 0lw= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 24/42] target/riscv: Implementation of enhanced PMP (ePMP) Date: Tue, 4 May 2021 08:13:09 +1000 Message-Id: <20210503221327.3068768-25-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hou Weiying , qemu-devel@nongnu.org, Hongzheng-Li , Alistair Francis , alistair23@gmail.com, Bin Meng , Myriad-Dreamin Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hou Weiying This commit adds support for ePMP v0.9.1. The ePMP spec can be found in: https://docs.google.com/document/d/1Mh_aiHYxemL0umN3GTTw8vsbmzHZ_nxZXgjgOUz= bvc8 Signed-off-by: Hongzheng-Li Signed-off-by: Hou Weiying Signed-off-by: Myriad-Dreamin Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: fef23b885f9649a4d54e7c98b168bdec5d297bb1.1618812899.git.alistai= r.francis@wdc.com [ Changes by AF: - Rebase on master - Update to latest spec - Use a switch case to handle ePMP MML permissions - Fix a few bugs ] Signed-off-by: Alistair Francis --- target/riscv/pmp.c | 154 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 146 insertions(+), 8 deletions(-) diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index e35988eec2..e1f5776316 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -90,11 +90,42 @@ static inline uint8_t pmp_read_cfg(CPURISCVState *env, = uint32_t pmp_index) static void pmp_write_cfg(CPURISCVState *env, uint32_t pmp_index, uint8_t = val) { if (pmp_index < MAX_RISCV_PMPS) { - if (!pmp_is_locked(env, pmp_index)) { - env->pmp_state.pmp[pmp_index].cfg_reg =3D val; - pmp_update_rule(env, pmp_index); + bool locked =3D true; + + if (riscv_feature(env, RISCV_FEATURE_EPMP)) { + /* mseccfg.RLB is set */ + if (MSECCFG_RLB_ISSET(env)) { + locked =3D false; + } + + /* mseccfg.MML is not set */ + if (!MSECCFG_MML_ISSET(env) && !pmp_is_locked(env, pmp_index))= { + locked =3D false; + } + + /* mseccfg.MML is set */ + if (MSECCFG_MML_ISSET(env)) { + /* not adding execute bit */ + if ((val & PMP_LOCK) !=3D 0 && (val & PMP_EXEC) !=3D PMP_E= XEC) { + locked =3D false; + } + /* shared region and not adding X bit */ + if ((val & PMP_LOCK) !=3D PMP_LOCK && + (val & 0x7) !=3D (PMP_WRITE | PMP_EXEC)) { + locked =3D false; + } + } } else { + if (!pmp_is_locked(env, pmp_index)) { + locked =3D false; + } + } + + if (locked) { qemu_log_mask(LOG_GUEST_ERROR, "ignoring pmpcfg write - locked= \n"); + } else { + env->pmp_state.pmp[pmp_index].cfg_reg =3D val; + pmp_update_rule(env, pmp_index); } } else { qemu_log_mask(LOG_GUEST_ERROR, @@ -217,6 +248,32 @@ static bool pmp_hart_has_privs_default(CPURISCVState *= env, target_ulong addr, { bool ret; =20 + if (riscv_feature(env, RISCV_FEATURE_EPMP)) { + if (MSECCFG_MMWP_ISSET(env)) { + /* + * The Machine Mode Whitelist Policy (mseccfg.MMWP) is set + * so we default to deny all, even for M-mode. + */ + *allowed_privs =3D 0; + return false; + } else if (MSECCFG_MML_ISSET(env)) { + /* + * The Machine Mode Lockdown (mseccfg.MML) bit is set + * so we can only execute code in M-mode with an applicable + * rule. Other modes are disabled. + */ + if (mode =3D=3D PRV_M && !(privs & PMP_EXEC)) { + ret =3D true; + *allowed_privs =3D PMP_READ | PMP_WRITE; + } else { + ret =3D false; + *allowed_privs =3D 0; + } + + return ret; + } + } + if ((!riscv_feature(env, RISCV_FEATURE_PMP)) || (mode =3D=3D PRV_M)) { /* * Privileged spec v1.10 states if HW doesn't implement any PMP en= try @@ -294,13 +351,94 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ul= ong addr, pmp_get_a_field(env->pmp_state.pmp[i].cfg_reg); =20 /* - * If the PMP entry is not off and the address is in range, do the= priv - * check + * Convert the PMP permissions to match the truth table in the + * ePMP spec. */ + const uint8_t epmp_operation =3D + ((env->pmp_state.pmp[i].cfg_reg & PMP_LOCK) >> 4) | + ((env->pmp_state.pmp[i].cfg_reg & PMP_READ) << 2) | + (env->pmp_state.pmp[i].cfg_reg & PMP_WRITE) | + ((env->pmp_state.pmp[i].cfg_reg & PMP_EXEC) >> 2); + if (((s + e) =3D=3D 2) && (PMP_AMATCH_OFF !=3D a_field)) { - *allowed_privs =3D PMP_READ | PMP_WRITE | PMP_EXEC; - if ((mode !=3D PRV_M) || pmp_is_locked(env, i)) { - *allowed_privs &=3D env->pmp_state.pmp[i].cfg_reg; + /* + * If the PMP entry is not off and the address is in range, + * do the priv check + */ + if (!MSECCFG_MML_ISSET(env)) { + /* + * If mseccfg.MML Bit is not set, do pmp priv check + * This will always apply to regular PMP. + */ + *allowed_privs =3D PMP_READ | PMP_WRITE | PMP_EXEC; + if ((mode !=3D PRV_M) || pmp_is_locked(env, i)) { + *allowed_privs &=3D env->pmp_state.pmp[i].cfg_reg; + } + } else { + /* + * If mseccfg.MML Bit set, do the enhanced pmp priv check + */ + if (mode =3D=3D PRV_M) { + switch (epmp_operation) { + case 0: + case 1: + case 4: + case 5: + case 6: + case 7: + case 8: + *allowed_privs =3D 0; + break; + case 2: + case 3: + case 14: + *allowed_privs =3D PMP_READ | PMP_WRITE; + break; + case 9: + case 10: + *allowed_privs =3D PMP_EXEC; + break; + case 11: + case 13: + *allowed_privs =3D PMP_READ | PMP_EXEC; + break; + case 12: + case 15: + *allowed_privs =3D PMP_READ; + break; + } + } else { + switch (epmp_operation) { + case 0: + case 8: + case 9: + case 12: + case 13: + case 14: + *allowed_privs =3D 0; + break; + case 1: + case 10: + case 11: + *allowed_privs =3D PMP_EXEC; + break; + case 2: + case 4: + case 15: + *allowed_privs =3D PMP_READ; + break; + case 3: + case 6: + *allowed_privs =3D PMP_READ | PMP_WRITE; + break; + case 5: + *allowed_privs =3D PMP_READ | PMP_EXEC; + break; + case 7: + *allowed_privs =3D PMP_READ | PMP_WRITE | PMP_EXEC; + break; + } + } } =20 ret =3D ((privs & *allowed_privs) =3D=3D privs); --=20 2.31.1 From nobody Sat Apr 20 05:30:30 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081492; cv=none; d=zohomail.com; s=zohoarc; b=kXjvKDaRShDJ4i+kxCYiIWKh0Rx99EQJip8LhsjTIHB/3FKZv5ZnRDxptC5rtkYbuZyfojjYPSDk4rJs4ywroClvM/CyvyHC442g2wz0TPLSvxUWuKGP+cvGup/878vPpvU3U+za2QpvC2SNoVFJbiuuXrShSGuPRt0AYOn45KI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081492; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=E/lM9Hl7/zEXx5SN4vwATfk0kVIRHZN7K477utvrFwI=; b=MSMicQ2UEOyEgLT35pOn+BuX3F/YaJ7Bu5zX5XUysAx7wcc0RIA+zHFZh3btaXW6SlFLPHp+UfjfdGzNMgC2oDYC4Xo8lFZLWwMoz22e/KSbwzB/7+A/axcS7VgE6aW2e4FSo635wG3hEjUlxK0vqFdq3cma/35kpvfEcCeBenc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081492874144.36689069169302; Mon, 3 May 2021 15:38:12 -0700 (PDT) Received: from localhost ([::1]:49042 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhCd-0003ln-On for importer@patchew.org; Mon, 03 May 2021 18:38:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53298) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqm-00060B-2u for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:37 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqj-0000ID-TA for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:35 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:04 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:15 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:01 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080133; x=1651616133; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eY64W9JB7jnGvaakjv5BADNjhl2X/P3bfdlkpxmil/8=; b=mAWgYDolKL0Dz1DUgS61XIyER3fHsYK3efjh6CgvJaivZAqYBvoXFx7h ShsL7ZUvwxvFtslJ9aGm0qCE4gxJtYi9qk8i1DQDNW/YDeNtfmoDxK1R4 z0HwwXmMWe6wDrEG/9NSrOUuqlhqOE+H4uqFyO0yvmhZDmH7hOf536Fdj xoUBYZQTAI4/1ra8tFFxdlNtvlXLlGU9H9tQaSdisSPQX6WJzamk/1Aeu ny143nAglEP1EdK+XgUbe2//YjB7aNwg1Mo/xZKIZDlR0/UIZd9DGeNFg AaPT9OgtuBLuim0AKxNLDV4HxBCoNAznJAbjOiNr5Z5NBUx5g7bVu11m4 A==; IronPort-SDR: FyGcpEC8KIpV+MRmhOjseNEpNzzNnkbqnGV4rdPzypaXVTeadwhUh2hawNj1iFkZguNYt8VYov j4asi+GlKPo57YUGcQmLw1OXOsmjpw7M4GC32y1V/da8Q/HFfZbp4ut6OGdHwoCq/rV1bxY/Mm npWlXW8rr1bfoaefv4KLr39YwLwuo/u78karScKrC0VjnbySCzodzazoMC3nhg8PHlbJFfZI9k 49KyupnFGPr6nn88yhRUogFRUQY06cVcEPQ6O13XTLSYj7UMeIMncpDu4qqss/5sT3ciLSufdT rUk= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114681" IronPort-SDR: IIkieemVzKODqFwfisi2/MGlwQHDd0mj5JbezBVMeFQzmZ5Dg4QUqJdLFn1ZfgwJaJtFtdki68 vqkLnohum+b9WC+7JagAQK/r7IP0ZLGZA+YH7E00Cxqo14SV7kxIQijcEBjbvF6A5wbg/2xb99 Y2N0dys3hYUSha8GQ9vRdqWf0NipQG2JMRYYyLsHV2kPC0mkFpqydX32SKJOhTF6z/dJlnbSwR kOXJMGjLS59tXbS/BMm5m5CoZQgA+9nfeq7GnAhnzmtifVfL92HaZkS/NOM0Atw76QKtK5/95N BYLaU2+ty7e4YI0j9O8QI/pd IronPort-SDR: 5usfdQ4BQo0E4fGX+1QuQ2z3/4Ly4CGsQ7YkI3Em9/0qe9fiZci2YxNvZPcxVPQH+UE3dn/ihN fV9ozQvLS/gh4DvLrE0z0/Bz0fjh/cQrEObtwvoTplUjPEUc/IDRaRBzrUtqEFEZZpsPWBDX8u g26d/F+263DZUJGQXPadtiK1yC8M33cwBwDCYc9swUVKXTE7kd+AxCs5rhb1FPUwQHscuM9zom Og6x560Xq6z0vtLEswso1PjWSZd+48dCRviipPPmg4S481q7HruJN0c9Gjak0KYCz3Lbwbvwjj tko= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 25/42] target/riscv: Add a config option for ePMP Date: Tue, 4 May 2021 08:13:10 +1000 Message-Id: <20210503221327.3068768-26-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hou Weiying , qemu-devel@nongnu.org, Hongzheng-Li , Alistair Francis , alistair23@gmail.com, Bin Meng , Myriad-Dreamin Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Hou Weiying Add a config option to enable experimental support for ePMP. This is disabled by default and can be enabled with 'x-epmp=3Dtrue'. Signed-off-by: Hongzheng-Li Signed-off-by: Hou Weiying Signed-off-by: Myriad-Dreamin Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: a22ccdaf9314078bc735d3b323f966623f8af020.1618812899.git.alistai= r.francis@wdc.com Signed-off-by: Alistair Francis Reviewed-by: Bin Meng --- target/riscv/cpu.h | 1 + target/riscv/cpu.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index 83b315e0b2..add734bbbd 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -304,6 +304,7 @@ struct RISCVCPU { uint16_t elen; bool mmu; bool pmp; + bool epmp; uint64_t resetvec; } cfg; }; diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index e530df9385..66787d019c 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -412,6 +412,14 @@ static void riscv_cpu_realize(DeviceState *dev, Error = **errp) =20 if (cpu->cfg.pmp) { set_feature(env, RISCV_FEATURE_PMP); + + /* + * Enhanced PMP should only be available + * on harts with PMP support + */ + if (cpu->cfg.epmp) { + set_feature(env, RISCV_FEATURE_EPMP); + } } =20 set_resetvec(env, cpu->cfg.resetvec); @@ -554,6 +562,8 @@ static Property riscv_cpu_properties[] =3D { DEFINE_PROP_UINT16("elen", RISCVCPU, cfg.elen, 64), DEFINE_PROP_BOOL("mmu", RISCVCPU, cfg.mmu, true), DEFINE_PROP_BOOL("pmp", RISCVCPU, cfg.pmp, true), + DEFINE_PROP_BOOL("x-epmp", RISCVCPU, cfg.epmp, false), + DEFINE_PROP_UINT64("resetvec", RISCVCPU, cfg.resetvec, DEFAULT_RSTVEC), DEFINE_PROP_END_OF_LIST(), }; --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081673; cv=none; d=zohomail.com; s=zohoarc; b=bl1Sq1DpH3iklkAOHl+Whz61xOP0Ku6GJ5oV4YjKydh+F8HprEsblixAzU7V84moODPR6SJNgy7zhUM7lBfCO/sntWalOvlgPkRWsK346sQr1JPH5ZgQ5mi8nrBlDuY7Uu36JSwSAfcMZMk4wnfA4HDSKG2nL4tme3Xc37BuiXo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081673; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XS3BN55w5LrGbyo5POxRxjwGemu+O8n5yxoLz1hwcak=; b=NvXrZbe7uZOQFySHVwBtaT1569Sgeg0UB8EgDBxA7TogV8W+pXJN2ocgRJS6BcUqXlYifvdW8cHa9g4NyiC3f+6bOhb1NGSgXmbaza8pnBr+DsVl9+/wkcKwXc8KAg/3/zsWrus78brZx5hADyB2iUD99KPbXYPhGVKrE2w/WZU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081673273685.2057306397429; Mon, 3 May 2021 15:41:13 -0700 (PDT) Received: from localhost ([::1]:57596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhFY-0007KY-8N for importer@patchew.org; Mon, 03 May 2021 18:41:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqm-00060b-L7 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:37 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqj-0000Fd-TG for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:36 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:07 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:18 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:05 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080133; x=1651616133; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WzI8U0Vh2iFMSVxjJhHwv+fox5ZJja+nCtlrHq7wrso=; b=rgkW7tyuaMnSL7Da5EZgxZhpb2tBVSv8HGNdm6VISS+Mt9jHdlb77PNh OUn11w1DLACEg4JyeGpv1UoRYFbxD4+i4tNZPJh9nMPkXe/rPTzAFj3hE 5cRhzxTzn8y7LrmwdfgZr4RfF5xGyXfvnkVaDDLUh84Eyy9V3M79yzQM7 6Mkt6MFNfi0O5dfEKoZALDi9IBS5qHNyJSZc965fGXPbWn+kkhy47p1Vl RVtfyUOPgnDG4ScH5n8/5MGgLT4UDa1/eOt0IYivZeYAKVNYLSJ61l7Z3 lbP+AM6pA+ohxQYUzISS6d/glj4L1AMpQ/Vofqd2emli+rxmLFAaX/ssO w==; IronPort-SDR: 4eHC8AMnbfLktzBsdzdcnrj0VGh9WucDSNXZs8BWuljTajkQ2fe89Ajc+ysh8cBrGu2hQZc+ea VjwwGJEfrku5rSGFjxfzPHIk7c7k80RmmcRUJ6YtcZkvnUD7To3rnL88sbtZ5VmaHrEr6sJ3Gw A4TjuIC5nibG/j+3Cwhr1NHGz/tIU1SO3z3tOT1O8+J47avaEujsYao5DZ43sowVTzsC9z/BoS kpPIT5UEdVO8G8uoQ06IQzLJUHTGhAC6H3tXBYsX4MZcQCON/zuiqtzECz5vdXOQ+aVW3bYyXF vP8= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114685" IronPort-SDR: q1PyHuIiYevkfjogs7Ud7WSaPSjY59Ic1kMkO52D/Z3Ad/Cl82AZVXTxkykppEjEUwL91ZjIIf 2u+zNijz9Mlu8g8dCNXlXY3PiB/nN5VyGlL78Kfu8FuP0O4rovpGSgpmqGn7orWGXb943O+25O aHtWPDGRYeQHbdgromELRPANpwSxqh4zlxPAGsSymUDh6B8mpt9mBldYPHH6nq5MLZsfZ6RzUL pipiU7XeSPYrrTKeZjFqqCvtlZZHZY7+Ot/HstqrZMIP3PJN65nFCsxEAD6rY6YNaU7a5Copss FkHK9KpgHwUo4pG69EGWFCNG IronPort-SDR: AvQxDfzPXgt9yNVjEicNI3A2GrHXkHZXGbPO94mUlYEYiRzOQc5jVi4FrxGklE9tnt/KDpNMys LqKHpVX/GDLfa5q2MTLOJYr9qTrtehFhX1Fo+VGvtJuqEhNAmTQmHYWpXdwfG7rnNfYy5SsCGD k/LlhBs2o2vGgxt0uhpuREowM8C2gSpyRWUUiBEdJCX0hRlHBLi0FaM1q12cRxO3i7ytzFBYU1 a1eUTeaGEpqlbOoV6+Q0rAp+tCbLzjjHARcMrU38sRi+nq/ThWv2DGzOY6417F7/NMKFAKT6Mr QRY= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 26/42] target/riscv/pmp: Remove outdated comment Date: Tue, 4 May 2021 08:13:11 +1000 Message-Id: <20210503221327.3068768-27-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: 10387eec21d2f17c499a78fdba85280cab4dd27f.1618812899.git.alistai= r.francis@wdc.com --- target/riscv/pmp.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/target/riscv/pmp.c b/target/riscv/pmp.c index e1f5776316..78203291de 100644 --- a/target/riscv/pmp.c +++ b/target/riscv/pmp.c @@ -19,10 +19,6 @@ * this program. If not, see . */ =20 -/* - * PMP (Physical Memory Protection) is as-of-yet unused and needs testing. - */ - #include "qemu/osdep.h" #include "qemu/log.h" #include "qapi/error.h" --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081644; cv=none; d=zohomail.com; s=zohoarc; b=J1sD0bOwjbm4EP5nubfTZZOWUr8MQRJaJfmOWKc7c54SBqtCK3anPzM2bgNLhh6ia/uaVGtW7YtUtsCOQsmGaVGgNyxBP70z30B0Nr6DUMtU5O/wcx8NOmuXG4vaamYr8K1UnDxcTF8+WHG2yblyrTUf6rHmk620INBMC3TxYbE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081644; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=3Dj7dibxF8Uus4xhE3ctehsb5QPlqW0am3a7qegLXcc=; b=l7BnyidVe9id3dQ95up8VwJCY79Hh0HiU4FV9S91ze2PrkQRq0gv3p8dShIY+QMvwFFioem9k35WG9a7hmXK7VDdjsx00TBfarhfzkzN/f6jEMyi/iJYI0wHpiPKZDW9R11/A/wM0DLxH3aOjOLznw0wP2iV/J2BAfZuZv2ls4k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081644617599.6843874489134; Mon, 3 May 2021 15:40:44 -0700 (PDT) Received: from localhost ([::1]:54878 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhF5-00069R-Dj for importer@patchew.org; Mon, 03 May 2021 18:40:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53356) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqx-0006Ly-Vq for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:48 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqv-0000Lb-W8 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:47 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:10 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:21 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:08 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080145; x=1651616145; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=F35Wlg7ThlZkm1vRHn1Yuy4izpGJ5nEtQpXZGyOoRmY=; b=funyECAU6SjbitKP9B3jCP6yNjNYnw5OIbXSo/+A1d7pg+tRJUkagGby UI0VHWpl3Cjezd7VyEzB6QwbsbCGLz//RAlDALJ3tAP1SH7s8aNFAA7pT ZcCNn6o5Vdxcr8dnzcKePo14t54jSPNmOrbcHEvc2r3Di0JUwLbYsF78b cnT8f53bzimS+CWrl+/VLXsATA33Owr1uShQkFJTWK0C9CbO79dBQ3vDb tqQLvx9rAGyFUMJJK/WXUYz6M8tMXLq/5ENUPr+Cm4PhaZrXTXFnroOPo w/KtYTAJ+wOJitIGcAGQlRUK0Vwb/MKfqoWpt+IhIg7AEEtyJuieNw9kr w==; IronPort-SDR: F1wg6BBtJP/A8mL/JCleoMC4mbt/mDDR42S007g7ICzaSgihJgrQfBxK0Vrokdk0kVdQspwxJc IOLG6n5zFkD0QSTp9QxQLrExdeuSCQhq8DTozfZC7fBCoRQEn0cGJBke30MIIH5A0etcizFRzt CN4NQas2Rkm+qdbZXjV9mMUM/1tGlMX1igGXgUElYOD3F0XcWWJUvI6hT/8Y1vBYQKJNxw5bvs BrgwUQuMYZbZLATWwtOUw/Q+jZK21Ahn0mP61hNFly1tTldjcibh5/dXvEAcHr/P10AWCUxJq/ 2Tc= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114688" IronPort-SDR: 0DOg9z5W4Ub9Q/+i/Od3bTeUubJ7yWT89vE3F8201KRK1Icj5D2Xn4kqK4Et961250SxtOxwBq 4ar8H/eXxGaTPb0rNrPdxh877gBGjGO7fvisKNKrQ+SCLXprehgErkUbgU2d+lsDPW3Uk/n9y/ M772SDWbxoxUaD3ok9+tt+kJNHTlT/eKpCvhEn2ZsTcSQt8JC50wOkEvm9z1HLF8V72CVH6jHq LWWf/8WU/WdLFkZpNCf3/FyOcyfgxNJdDFdr2MoZSdGopJ75YlVklyVuJHP7VS6ulSDVttNkWs XxRxYmqWONxXyQi9hexhA/K3 IronPort-SDR: qEJWfysx1qzEOcJsjEzdv4f3GJzOTISNoiLfElJ+WdyjHvgg/XEyqfLZ1eQTLBVzNdAmoxK59H SQahVSR4VuMow0m7uDFtLneZcBahll4+PSWkHcb3OzyR7Ja9Adl8H0aG+1+0hKeDO6VqC3YcIM 6jdxWy1i34rfvVszgnpMhKhMF67uuiWrSxfQ40FKRNn6ggmB+pQtKHIVzvjERTGgI2PwabUS/M Kca2g+xNpbhhHiVgQUZVAbodQlKVFHY0ihQBcDGZwB9QJCNgLoFRPjH406lak1Yrf7cLeCuVhU VQg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 27/42] target/riscv: Add ePMP support for the Ibex CPU Date: Tue, 4 May 2021 08:13:12 +1000 Message-Id: <20210503221327.3068768-28-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Bin Meng , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" The physical Ibex CPU has ePMP support and it's enabled for the OpenTitan machine so let's enable ePMP support for the Ibex CPU in QEMU. Signed-off-by: Alistair Francis Reviewed-by: Bin Meng Message-id: d426baabab0c9361ed2e989dbe416e417a551fd1.1618812899.git.alistai= r.francis@wdc.com --- target/riscv/cpu.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 66787d019c..4bf6a00636 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -202,6 +202,7 @@ static void rv32_ibex_cpu_init(Object *obj) set_misa(env, RV32 | RVI | RVM | RVC | RVU); set_priv_version(env, PRIV_VERSION_1_10_0); qdev_prop_set_bit(DEVICE(obj), "mmu", false); + qdev_prop_set_bit(DEVICE(obj), "x-epmp", true); } =20 static void rv32_imafcu_nommu_cpu_init(Object *obj) --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081829; cv=none; d=zohomail.com; s=zohoarc; b=Vtn5gh7vlRdxIKW4hfJSnXpd/zvRmay2frJpEDhMPEQEIePtLprO24efWt/R1nMSZ2TP3iIyp03PGUuA9huWfBKa0O6m6MD6MoI0MJDVsRSeqm7/yMrnBi/H56RXk7HLuUhRfTiYCfCTDogAicFnPaRkxes4IC/HuPMm4FDEUwI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081829; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=w7W01WPquuQ6NqRcsmADBLVWP/nbEqECish+hcCTgjQ=; b=HQRy7zGHBVDJAkX7aqFG7RyAX9XLBj6HDhf6RrqHYW7wEeV64RXx7/kUwYetET71DqZueURBbVpktTPpjot1Td7idnRSxfA4K/QbPYDuay1bfpvUUNtOXF7o9h1b+V+EeVMrH58y3xw7RYFBvOfVGJnNv7OjZO5qcBA7ujzvkbQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081829893756.4681983639679; Mon, 3 May 2021 15:43:49 -0700 (PDT) Received: from localhost ([::1]:35346 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhI4-0001Hs-OP for importer@patchew.org; Mon, 03 May 2021 18:43:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53386) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgr1-0006U5-2z for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:51 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqw-0000ID-Fi for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:50 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:13 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:24 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:11 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080146; x=1651616146; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HRFnRKpT6eIKGkJmmSWcNkwahgPJ7f2r03ru00s2A0o=; b=ZVWZvrYRVNKfDT4kBDSbt3TGwz9PQtuwr6j/o5LiJTY9J4ndMFdED5kR zSFJ/sxhMIQ+IHi9/PNe/MTr86CiY+lYglDhZB3hmAD3u1wFW85PvrdfO jmlKlmvX/VZoELxIuIwitq05+wPHZWOSyMreTXxe/eIv4Gh6FcsL7TfqL IOX+HpkEYnZD+9G8upeUKJ8FV26qn1DpAMsaS4G1JTXps5qunXp37CQYt vBJPxMZCUCxTN660mdDdv8Hni4OAGIlZ1Q8q20fBztOd0Ew8roaA5DiA4 IqCmPtbDwCyQH2FAGpXDs+taZ2+YiBk//LbUJh8UegMfeWzu8Sq4IJZy8 w==; IronPort-SDR: cIesQ2HCxVaslFOLu5/RqWdxbZIy0bpn32RuYPvtMUTJc9DX0bkM8dH7ln72VVv27MmQfMJVQ4 CQrVUagwbyNMAdeidd09XAGEJQ8VlIvuqoLYJiHSj9dTm3KyOg4ubuK5xUSOOVF1QVgR2yAPb7 biks6GZhdYxf268TOsPzd+AAOoDvbK5h/6SnU9ldq3qv9YkTSLt4oZWmpRzQ11kholReyVAJdJ Ukai4qAskytSeF4gF38jE4x23/uNFhNDP4dxS4Z2N9gC+2XHfjBromyQvGrfJe29rKIYx39C1P Nco= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114689" IronPort-SDR: bWuwaNmqbk0ljbhCQcNNhU9xqWDU92foIzCE6ogSwYCGtYtnFyNSRkwJ7Q3YV4WEswwQmtYOTL JTY1OITOb8hJ2e7bamCPi9AD1PGiUUnIG/zs9HnqQWq2ovWkP0j8K7RqwpGqeClh4rgnxHyMKN zbrjBItSsn5SzOqD76atufhL6COnyRxihAPZWbdn0dEQqQ/nlLJaSfeOkCeg/s94j5Buir14aI nKALqTdrCkkZxPlQrngzQzag6M8U/29Tf//DFbjqZqh/rx6FwyaxBEvzJgjwtGaxGMM8JyD2hP wawEqjGalcCf72RKIK4zn+vy IronPort-SDR: TbwpdVMz8kmfE0VlQ1eN9CVC3kQLaA8KuB+XBL5FUODCJhpsgOk4cE5+bRZ6bHraEQ7rDzy0b3 mAruNVUBP5rgRlBI5oDesMe1r1mvfvv2b3z1J+zo3kSN+n7Q+baKhipHkONzphGB4fB1i0ITrV x2NkwfLfYu+9rdYicaLCrQkCDJhEpM7ACHezy9whGObCF4XqRZt81q1j1BrRmmgC+x8GMOZtFY pfMS3xPNo+pgSGXkBdec1MC2TNcjTolq+RpPE+vzeizmzuvpKeuMltYwGWNH38KftdJOVcCXyl 1eY= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 28/42] target/riscv: fix vrgather macro index variable type bug Date: Tue, 4 May 2021 08:13:13 +1000 Message-Id: <20210503221327.3068768-29-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Frank Chang , alistair23@gmail.com, Alistair Francis , Richard Henderson , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Frank Chang ETYPE may be type of uint64_t, thus index variable has to be declared as type of uint64_t, too. Otherwise the value read from vs1 register may be truncated to type of uint32_t. Signed-off-by: Frank Chang Reviewed-by: Richard Henderson Message-id: 20210419060302.14075-1-frank.chang@sifive.com Signed-off-by: Alistair Francis --- target/riscv/vector_helper.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 356cef8a09..4651a1e224 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -4796,7 +4796,8 @@ void HELPER(NAME)(void *vd, void *v0, void *vs1, void= *vs2, \ uint32_t vlmax =3D env_archcpu(env)->cfg.vlen / mlen; = \ uint32_t vm =3D vext_vm(desc); = \ uint32_t vl =3D env->vl; = \ - uint32_t index, i; \ + uint64_t index; \ + uint32_t i; \ \ for (i =3D 0; i < vl; i++) { = \ if (!vm && !vext_elem_mask(v0, mlen, i)) { \ @@ -4826,7 +4827,8 @@ void HELPER(NAME)(void *vd, void *v0, target_ulong s1= , void *vs2, \ uint32_t vlmax =3D env_archcpu(env)->cfg.vlen / mlen; = \ uint32_t vm =3D vext_vm(desc); = \ uint32_t vl =3D env->vl; = \ - uint32_t index =3D s1, i; = \ + uint64_t index =3D s1; = \ + uint32_t i; \ \ for (i =3D 0; i < vl; i++) { = \ if (!vm && !vext_elem_mask(v0, mlen, i)) { \ --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081874; cv=none; d=zohomail.com; s=zohoarc; b=gt14TTJisA7RRnag2V8Fr2Zo8lZZ4h4dPHAQoIBZ8NENcDaV7KyR68COq7R6Qvi/j1Wm7iVktVzU/T6oLe7CO5j5l5YunDApRArTICuzll7DTqwerL9ISbhIwW1i6A+WWzD14zBGBNLmd3DyrlCcbNQidWkUPqsjvTQiklOB+HE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081874; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=0oFkUJb2BbAoyKU3/UxyX077CYP62WrCPYd1ApuSw8U=; b=i5LmeVeaJnFrfLbYhvtI3naj1do/gbY1fNCGkFYINI+6CiCSa0g69tJingAnPYkLJFtIpkRRs5T/OBaOM7mEwlVZ0DY1ittLOvWE17YDWtplPpdDoo5aTAtErrxTGlxZMC3npm7r30SCo6q3qZlAhaLPIS8Hf9HOIHV2gmO5Aes= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081874833439.2404980691307; Mon, 3 May 2021 15:44:34 -0700 (PDT) Received: from localhost ([::1]:38006 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhIn-0002QC-PR for importer@patchew.org; Mon, 03 May 2021 18:44:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53380) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqz-0006PD-AR for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:49 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgqx-0000Fd-0B for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:49 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:16 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:27 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:14 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080146; x=1651616146; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XfXgYxiYX5i1x54fnTk0QzFVD6VSA4CU3S+I1f1IWWg=; b=UzEo4rJHk20hJ50gMdD8B1q53NKIiNfeg/9dwHwsub5gMOKycBol5/vf NU8JIiHaWsjtn4fB0yux67WgG5sj3AdnZ07C+yH+E6svw0s5QgmwNsuNf BOSlNPFygfF0mBSxPR3JNX3DKTJ4tMVz+CW9UILEefNVZF8DVOzSxQZ/C nJU7mBN7t6uYi3apBQ+zE7JurM9YB47Qs67M2QNU0b0d6uHeMgUfhm15f p9zyenBuyQlXywFxhwWsk0KOnjdQAGHXO7HaakP1piltNKb5pFw+PJgWs sCl7qaLZ02M4lmwMGdFzQOeDRKoSnMH/MN7HKB5exhJRJ4Utvw2TTRCec g==; IronPort-SDR: v+hZovra12CLn+TqkyH43MGpH8XXhtasFd5eDzQf13Wnl90U/9yCHj7KR+eKYYPgjIrELXJfq/ zLImeCwpMGn5Izg3wLDk1qmE8QetR1QMB0sIc2/LtJ6O6sy3Z6pSfZBWQFP+3sYlb8FUXrdXqP VPIMcHFodTYgJChgNb/JuARnNHrJvo5F5JSMMsbJ00znL6kEVMBlNwNV9bPPn1dGqE6BdLrDCn xDfq3iqx7P83rhEuryj+8cfZYshXO+j7I5h9csLnD13OZBHJCqSknhl6fm11CHghu80Ay5yIX3 HTA= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114690" IronPort-SDR: VZPN0Hq0nOhNhEHeERqNQn5zYhuJcyBt1u4sSQi3cgEQ+i59LD9u8uVsEH2+KyFGYJxnp0rLkW kFO+vKizXKV+mxTRyCTRKfiivy9O0AZXZPZZI68Vc9IxnfRv1WspvQy/p6II+NhkGpxLFFjWyX 5sYsEwdCUNFZ8qy9L4AQ8vRBPpFnRFbP3hxAsUYabdmL+aVYiWFOk9+W/iZbAHmFP7CZoyu9P/ u5kJWJwaT4FV7acruUT5h3DtwcPf4rFswStlY83CWb85kooQtO+FljWfg32KPtn5ZqA1j1v00Y tBqmy/hZjlPhYsrcPaj6T7Ji IronPort-SDR: IQCzi7MJ3s6kq/BpPdfZEJeT6ne0gJ2NZIosFiraCRSfizHhnXNueB1D8CV+wIsR3szXrKTfvb 1BNuSBw8FayCNyblf/cTtvMWXTyxTzCPiOWRKDaQiofVk4dHP2bs7LpuiDnue38NhlMfmqBJqu Gnee/ZN+RLCI3lml/KlqVz75saT4aDUNAukdGxAu6b9rNqFhHP6L5cqU3ovtiXZ634nm0uBwpp atGVKjd/gRUaxAsJ5BBO05d6UQHl/01qGv7i0Bro0JG+7aErVerDGvyZJ+1Qlh58J/u1z2lE8a Uw8= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 29/42] target/riscv: fix exception index on instruction access fault Date: Tue, 4 May 2021 08:13:14 +1000 Message-Id: <20210503221327.3068768-30-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org, Emmanuel Blot Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Emmanuel Blot When no MMU is used and the guest code attempts to fetch an instruction from an invalid memory location, the exception index defaults to a data load access fault, rather an instruction access fault. Signed-off-by: Emmanuel Blot Reviewed-by: Alistair Francis Message-id: FB9EA197-B018-4879-AB0F-922C2047A08B@sifive.com Signed-off-by: Alistair Francis --- target/riscv/cpu_helper.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 659ca8a173..1018c0036d 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -694,8 +694,10 @@ void riscv_cpu_do_transaction_failed(CPUState *cs, hwa= ddr physaddr, =20 if (access_type =3D=3D MMU_DATA_STORE) { cs->exception_index =3D RISCV_EXCP_STORE_AMO_ACCESS_FAULT; - } else { + } else if (access_type =3D=3D MMU_DATA_LOAD) { cs->exception_index =3D RISCV_EXCP_LOAD_ACCESS_FAULT; + } else { + cs->exception_index =3D RISCV_EXCP_INST_ACCESS_FAULT; } =20 env->badaddr =3D addr; --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082017; cv=none; d=zohomail.com; s=zohoarc; b=SDRTc32BAY8SW4sbgNgGaygWOL5ESHNXv5KBw0MjLnmZzPS9bVDQfESvIthQGvTWVYGjRqA6jtxabkGAQXq2zoD+FCpjKpHKWpEQakLVwAQEQY8NwyuQWTQseMJ7lkPLy2Dd2D0UJK0vqJjDmCxdIGDG+mRWnIUavohm6Vigz+Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082017; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=hxfQG9i+QvNCddHi00S+/1NxQPn9lwBbAzFOqUcboIA=; b=gcsMvapYbNFNWPkUeG/zTQjg+Te0JT17NdrPjw751T0nKZdmgO+8riQonw/2920QFo/52qPYD5vUzCyOwWChd1t4RCa1NwY3CZvCHy+ehkUJXguL6If0cpZ2CiEBrTYPCq50hrRQoPvq6uSi93K4diGUVT5pSyg5BBXaea8n72Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082017470101.06482005396651; Mon, 3 May 2021 15:46:57 -0700 (PDT) Received: from localhost ([::1]:44138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhL4-0004vY-Tz for importer@patchew.org; Mon, 03 May 2021 18:46:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53404) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrA-0006lr-2i for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:00 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgr8-0000Lb-9f for qemu-devel@nongnu.org; Mon, 03 May 2021 18:15:59 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:19 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:30 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:17 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080158; x=1651616158; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=4cB81cuCi7CF61xWNyzUpBRYweYXQ5ONP/FYfOtczs8=; b=JVZCzCxO9NE467FkCuYt8GW8OmpJXx8TqnRQ0yDui0vuEMKizHW4+AEf K8kI8JRVVZ396jVZh8F/s98QFt+DIlpbXuh8ybJ1exEaxAhap4HjLIaKI 3H2hPZBIcdGYxTYZMD8HowIVp30Xocv/Ch122bDXOh7BrIELCwtkC3tk7 EjD+xK6rjNoe93r/cqex3JIhmaj/uATfrEC/Mc5NwJ7smuubQZUlJC4++ cudlWw9Gy3l/6OnRkX4xGle9lr8ejpSrKoaItzyp/IUNAPBLsTAgbZQmh ylT3lrhe2M8hP2Q60SjAH6yrUppnsz5z1uWj0LneV05S8680SKmA+Ybqm g==; IronPort-SDR: 74tHSHQTZoq+W0vDun0wR3nCuRBy/ALfL4acufsmovhvk4uGoiDxWZVv6yJR+76zhOa7HU8n93 NEvXgi1kygJ6rdN71AEmXkFcK0vVphW4bMuy0wo42cTvCOVD9gwuxHr0elKz9qGTnBkmr8lOcb 1GIvEZWcVJKPn3aAQ73driJEXKFc2+AulSDiKbZ+6ReywIPilHg6QkDg9+BvS77rptAOVB41ef Rt8rErusD6MK0OkcLzIRSHp+4lA201EnXxR9zhNktUPAkTGdugr6N3bHXh2Bmp0VF/BmLP5PH9 p8g= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114691" IronPort-SDR: qrbLmROfeD55eFTepWEA38n7WHMzery2gBpLysjCLtw1SgHBgcD2uIntasCA1w98oXUMU25+mk A2Mm3y1ffzjM5IsYIF4orCcZ5rTTHAYVP1Z2Kl+ozbQjJFx4C14vy+E6r7Hx3jTisBTyMb7USe fMBwX6zTADIWebbPbuGi8r8hRdoEIPt5TTBvve9qpx0kYmYVrKUg0dcBt6wuiXcS8qALULQyZ0 bWnPwnVNZMztHrLdvA7wZoLsMf6Kcn4WGpC7uWtAFsNIG+8//dOm4ghdqYR+UbzE76IfNZ3m2l S8nYFCyfYRWLL4wFFLY51W0m IronPort-SDR: hCwYAs7t/5LcLG2jbw9EPANJnAHgPe5fehf6aWh96lSDaZpXIqsLQPtB8jkLPwJDF5e4KNjVM6 hZdAybw1j/gDjoMgeP/VPaprab3jCPeIte4JQ67L7704KUqzHw9F965FuSrEM6hgSVkdPbL4yZ r7lTp7qugDy1aPyTPfmMH8qvhYhR7T4yE8/u27PjfZ0eMbZUQH2eU02hP7J+urTLj+h4SH4+0/ lrIA1XQv2CKLzOHpcrcw89VVgE1vk1NITdspM1ATtyJEhyM1py8idxOtWXfjusNOv3a5sCmgr4 0yg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 30/42] hw/riscv: Fix OT IBEX reset vector Date: Tue, 4 May 2021 08:13:15 +1000 Message-Id: <20210503221327.3068768-31-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org, Alexander Wagner Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Alexander Wagner The IBEX documentation [1] specifies the reset vector to be "the most significant 3 bytes of the boot address and the reset value (0x80) as the least significant byte". [1] https://github.com/lowRISC/ibex/blob/master/doc/03_reference/exception_= interrupts.rst Signed-off-by: Alexander Wagner Reviewed-by: Alistair Francis Message-id: 20210420080008.119798-1-alexander.wagner@ulal.de Signed-off-by: Alistair Francis --- hw/riscv/opentitan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/riscv/opentitan.c b/hw/riscv/opentitan.c index 30dca1ee91..ddc36fc8eb 100644 --- a/hw/riscv/opentitan.c +++ b/hw/riscv/opentitan.c @@ -120,7 +120,7 @@ static void lowrisc_ibex_soc_realize(DeviceState *dev_s= oc, Error **errp) &error_abort); object_property_set_int(OBJECT(&s->cpus), "num-harts", ms->smp.cpus, &error_abort); - object_property_set_int(OBJECT(&s->cpus), "resetvec", 0x8090, &error_a= bort); + object_property_set_int(OBJECT(&s->cpus), "resetvec", 0x8080, &error_a= bort); sysbus_realize(SYS_BUS_DEVICE(&s->cpus), &error_abort); =20 /* Boot ROM */ --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081676; cv=none; d=zohomail.com; s=zohoarc; b=CjhbouF/uNJS3pQJJQnNJwyEgHv64eBlfawJGQAzgkeoL2GtNekbIOsvV9dzrdrKfsk+3hJt3o/bRCpQtOPvwViehjo7lmuEvdxaaZ4tqc50Iiieo8AriNM6TmBfW2r8LOKy1RwYSv7Q5zWWm5QeAVEb8CFBzy96O+GEtnqzTpM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081676; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=x9cN/89O1Xz3PEf3mKlVbZb4wQiCJUnX6r8LTOBh3fU=; b=L9hrGEI5pGqRujK5d5QTM1lpOpLEroUvhM/tkffAyPLqw0PopVdH8Bs6xnXx5/6GShSou/Itd6pT43gxUzRWzgrFzzWFIzsudpmS8G2QCtz/LSEZGeh8lpKqImtjgQ7YdneWT6KnUzhfLgYcYAdk6C4nJdewWCJxugWG6UvLkx8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081676804311.6820043748097; Mon, 3 May 2021 15:41:16 -0700 (PDT) Received: from localhost ([::1]:57956 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhFb-0007T4-He for importer@patchew.org; Mon, 03 May 2021 18:41:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53418) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrC-0006mt-Fg for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:04 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgr9-0000Fd-L8 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:02 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:22 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:33 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:20 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080159; x=1651616159; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=AqdonLUuZyYbToc+r7mOqmQfOKiL5G8dfgQnAVG1UWQ=; b=oTv82hnoTHIIFlhGuYIQBlAQnWkhQRglwrPsBMc7Blli5SKy/HoW/BVn nFN7/G52CmjTLEhmck+7K2tTHKn1crV3F4WaMwTpwIzZBPeezlNLzNBIz kwLxDdJWv8uIXWmk/uByeUdZ2fnLJafTn6uCSsdpgZIPWxbaq3mZwss6v P7wu+j42i68WRKKPRjryGLpOoah3HayJTWu2iRmbgWmLgBbNXkxgj8/WM rYrmJCbfGVpmmh6nWQJFimBVxmrZfESReEGEaoxZ8WpTPB7ACVv+boa33 sMjVMekASNvEwCezQ7pVf6LEqTuYJCVRqqyDQEMLuWRgssoIQ7g7tVvgw g==; IronPort-SDR: E6n5JoCxZaMgvHQQ/x0kaMD1wPEX59Ssh7v43/zcaYRgfroUCKPf1Xq/FSDtxyaCz7Ci8Yg8h8 B0GB/oql8Y10bkT6un7A1bDsMUWEwdYvPCdrfd3CdrKDZD+IruRYUK8WIZXVc+Vv1QcGxvvl3z cmPzWCdm9I2R+aBT8v9aBur293tLrHMbo8z0xBvBq6uBmcwPMliRpnLl0FQSxOON4seOl9EGCm 20+BZFXeuQN4v5L3Q2tQWp+dJkY4nvnumvgWQ9mEq3bHmfxZQoc2oOMEeFB6yY/tI2YYRjuCjo opQ= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114692" IronPort-SDR: nWI2WxLkfDcc7tx3OcoUq4etoYOvqnFo4VpFd9l60/YAMRyjgYCptKPjzkWD/5p/RW8vZslqTh r48iUz6lpgNqTVY/HWxw5K7yNJz6c0I/aN/+WMADgxCqV5KlYuW4BacZX/H/upfd5V+9sfc99T I1sjGSMIOq4vvaSdry/pmxTrpdgu6BgykC7oIPAifzfTSXHWabOV4EMUuOlC8Ibtlz8BdHlhH4 hpZgq7o35WGL3o4dDaKerv4Mcvlq9jtN16Vki4J+y/pDgKysDrCHZhaD6/10p2s2ltog4Sto6E O6EQiW1CpVHPQl6gQDo6HQq4 IronPort-SDR: gCXRcWANiI733h/w44fMIRfLNalp7gUFna0b0Tj6vjTmKwqJ8XpjZLlk70GJQnbATzPpvzpO5S cqlQz15+t3n5CdBs57HjUtCmvE24WzYL9rhOem2c29vuGxmm0pLRt/tmZK6HmSACS6cu4nLM0y +6md3iNE/6mzh75FkbCS/sIs0UCg1sdwIce0vzj/wei94pE7hf2jRU70fgYWBCd+2lUhLk7XIp xlEuBWWBCkdMR6EjAq6IcjRWqglfaRmKqS8NugOVOCVU2ote+n8dL5HgLHPhuypxFdlPwrvS3y oRg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 31/42] fpu/softfloat: set invalid excp flag for RISC-V muladd instructions Date: Tue, 4 May 2021 08:13:16 +1000 Message-Id: <20210503221327.3068768-32-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Frank Chang , alistair23@gmail.com, Alistair Francis , Richard Henderson , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Frank Chang In IEEE 754-2008 spec: Invalid operation exception is signaled when doing: fusedMultiplyAdd(0, Inf, c) or fusedMultiplyAdd(Inf, 0, c) unless c is a quiet NaN; if c is a quiet NaN then it is implementation defined whether the invalid operation exception is signaled. In RISC-V Unprivileged ISA spec: The fused multiply-add instructions must set the invalid operation exception flag when the multiplicands are Inf and zero, even when the addend is a quiet NaN. This commit set invalid operation execption flag for RISC-V when multiplicands of muladd instructions are Inf and zero. Signed-off-by: Frank Chang Reviewed-by: Richard Henderson Message-id: 20210420013150.21992-1-frank.chang@sifive.com Signed-off-by: Alistair Francis --- fpu/softfloat-specialize.c.inc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fpu/softfloat-specialize.c.inc b/fpu/softfloat-specialize.c.inc index 9ea318f3e2..78f699d6f8 100644 --- a/fpu/softfloat-specialize.c.inc +++ b/fpu/softfloat-specialize.c.inc @@ -627,6 +627,12 @@ static int pickNaNMulAdd(FloatClass a_cls, FloatClass = b_cls, FloatClass c_cls, } else { return 1; } +#elif defined(TARGET_RISCV) + /* For RISC-V, InvalidOp is set when multiplicands are Inf and zero */ + if (infzero) { + float_raise(float_flag_invalid, status); + } + return 3; /* default NaN */ #elif defined(TARGET_XTENSA) /* * For Xtensa, the (inf,zero,nan) case sets InvalidOp and returns --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082180; cv=none; d=zohomail.com; s=zohoarc; b=UQ3LTr5Vn47yDOMU86WBpkG+3jGNnIKOmFOaU0ydl3tUyhcWQVYfL6gaTvZV22KO6DC1V/ODzs+wi2QoY7F5wLeJQkpwd/V+plunCW56EjcmOIDo7NN0xibouJ9iALua+DTpvX7nDgqr4bDFLtRP8lJGZub+5IyvaMC/hajttvc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082180; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vwO3f4+PKlInoAzT2NnVRAdkUzL1TLLclRZn2lCAJXI=; b=XU+gXywWIz35mYLf7wfNnA9/Dw3y/AjRZtHzT4ZHeQl3pw5Gs6DeKEwHSUC8I3ZoPPUWPgwa2AaDC6P4lpDlFtqMjwLuOtfSkbwqqS0Nsg0J53sn57MiQdL5djlAyd6o92OTzLwudB0up39uCND3bNiGKvGFi5XTpE3g9sfTNJo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082180627694.0677006378406; Mon, 3 May 2021 15:49:40 -0700 (PDT) Received: from localhost ([::1]:52676 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhNj-0000An-KW for importer@patchew.org; Mon, 03 May 2021 18:49:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53428) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrG-0006ng-3w for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:06 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrB-0000ID-DV for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:05 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:25 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:36 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:23 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080161; x=1651616161; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BXqWpLcc7+g4pGC4+WkIHTkL2rsoYwibHzP3HV8BwNI=; b=PmMxyIcts5FUlCGR3luS0M225ofFJLsDjYzAZBLa5HTBadmlqt7SZk5g ewp1ouJYw9LxntjxFkcsHtklBG0LMn4RCnVtloSrl1asy5nyAde2nKj3F TJQ/efeVDhd8xJAM+5RxmYePohKN0FR04/KvnlrQQLOq1P3LaH2utst8g Fj0AoAmevSEXCufM+F8kLNKUsyi+uLPBn5s4il1lPqzj0hqvCEKoXx/Fe 6ywuBsyC4CxB7Q72TIi8K9+Ec2Uj6agc9fl6k4wP4b8TwgVllO46qIQW6 WyvMgVGmt6Haejn/Ht8WcF7v/2zekIAgRi1nhFD17mH8N8WhwLapVTVX2 Q==; IronPort-SDR: jWS0xlC19R4oa4bACbqlK/zubcedTyH40E3MOR1wsPub3J26q9yecik6+YOH5z1Urb6Z8pQCur gTQ6mmkW/UjLH/p6hIEDijbEN+RWTAD+x2a/jzux6+4H7mZKIlsA/N8nMRGOW3A9SgCuOCAL0V xYRTKoVPlqZmHE69+o6eS3/i9RvNSHws2oCJbNY/5ULcP+L2PwfdkKWAvuS7INzx1676fwiSyy oxRIs2IFWmVj+YDcMT9AzWrHdp7UtRF2qWDQgJEXpxn4P5WJijxYQZEAdApb8WzQNh5t22X2Ac XDY= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114694" IronPort-SDR: jKCqtsH4pVwRExoe5t7L33Bc4wNCDwOU5kqGCBIkFL8kBJkX/tIMwgZO786Msy6pcTZy1H743h 5u0d8IjAfbCDypTj8x3e6ZDaNiNtF5HIZIWZeH3cLf3bRz8zglu/QjVOl+sNaxjfzqvmFTvfez 4k9aW2tlhrptwHO4dKwVzWs9G0seY2CXoljKGb9nZe+bBOKDlNNdrgQLTJmx4vlhpYz1bxs+1v pOdRnc92toE2GXuCUqALtQf9h/YdQmaId9RNm13bZN4YIzWgBXGx363KsrYDqyCl+ApDSubCUs mOAJmu5z80edeZx+J2XA8b8X IronPort-SDR: YGR8ZbEHMoOdNNK2zjJtAWKW3Z36mVWa2kzQHTNU2I16Up3cq1YlFnKAvmx3qm9Sgi/owxBGwf PJqsmr8pdNsHRnGeEGIFOPCAd88mvzK20QgOy06BQsXhMGaDvTl9wEGqyLMbeE4zcernd6HT7u XSyk/VAOg9TEJacWXdvd8wQ2VrZHpVDIgWKzRLopF89thuOCk8sLaPAPFWtzexxSsV+GfJ2o2Y KOUzLqkfEVprmRrDyr7Rj3mRH96XN4q+NAqAhq8OcBKHRDqycacOegTSLtVpJc+33FY9JBpHxA 4Jw= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 32/42] target/riscv: fix a typo with interrupt names Date: Tue, 4 May 2021 08:13:17 +1000 Message-Id: <20210503221327.3068768-33-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Alistair Francis , qemu-devel@nongnu.org, Emmanuel Blot Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Emmanuel Blot Interrupt names have been swapped in 205377f8 and do not follow IRQ_*_EXT definition order. Signed-off-by: Emmanuel Blot Reviewed-by: Alistair Francis Message-id: 20210421133236.11323-1-emmanuel.blot@sifive.com Signed-off-by: Alistair Francis --- target/riscv/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 4bf6a00636..04ac03f8c9 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -88,8 +88,8 @@ const char * const riscv_intr_names[] =3D { "vs_timer", "m_timer", "u_external", + "s_external", "vs_external", - "h_external", "m_external", "reserved", "reserved", --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082378; cv=none; d=zohomail.com; s=zohoarc; b=Fanx/fFc7OGYNOZSZvJxHImj6t+W9iyorT809ZehniwtYWMn8D6nKTn7eHPq/jDW4TSer2a7pUINvLjl/Wy68V2oyatphdB01QkPHF3vgRNleHjhcchIBN8bFNpQtPWn5om1Sonsp++yxlo2BHssN1AwnE2wGgSvzsDq/DQucJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082378; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4TzY9VYq/NNaJ71q+iIt+D6ikRECV+QsI3DIkexsuEQ=; b=YS38MBhG4A93nkDpNtTBjQd85sOw3i36RDw0sQI0/EK0DfqV1IhxK5gJtR4qSY/0Kgwa9eWqP2v0wC22hIN0XqXsYxsRLGuKPqVGVyUBbuQ22YBqgvO7HUyY2kgxITjPtZuLX9G0lJp5kj+ZmptZe/99g6QDtPnxpxHqMYuqav0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082378660502.750467444473; Mon, 3 May 2021 15:52:58 -0700 (PDT) Received: from localhost ([::1]:32812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhQv-0003iA-CC for importer@patchew.org; Mon, 03 May 2021 18:52:57 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53446) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrN-0006sO-P2 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:15 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrK-0000Lb-EN for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:13 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:29 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:40 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:26 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080170; x=1651616170; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=JgM/gLIjni+dyO7wx31lSD4YXhtJoi1y1oqkheC/Erk=; b=UiG4GaF3uhl5mm6when3R+01U11QCQrRhi1mI/it1+jq+ws2c4UNTCt2 sxbnApJ6HvolAEpRy/rF4XL/uJzJbHGxSC+E0YM4yeHrwd0pLTDXxI6Hf kBgjPzcOQnq12vyosDKfdKpAzq3trkj/SEGsoh5jzVqKs+rN0Wxd/ALyC iAga70KLv4A0cEleuXJhtgj2ty5ovofVwzKzHFqpkXM7PXDvrwa3cdkVe P3M5F5w3Nh1Go1Vy6C3V3Kp/gh6zCnrZ+jG5nDCy2X6rwX22a42Wx0oqb Mz894NQhA0DEqwVhYES4GstfU2FNLgAtbbod5QQw/Vvk2SssdKNi5ta7y g==; IronPort-SDR: x/87JM7IN0X0oa00AMCDNy3FMpbDVwj2gfMYnaPnJPBIWuw47TLSnCNb0Z5ym1KArajvyYzH22 7sMePR/dRbhYD8msduAbQTRWcRYgcTXOAIpsh+SLZVtBTCU6ky9+KL7gs253KwG5WiKZykiRGI oudEX2V8wsxf4GWCNVnUW/D7RBBroKerxAPo0jnYy7WbbsAjpy6KWyPZ1D/ch7saKzmtvIo99F AfGk6+4j2bkYz/8scJ0wYGvWPQO9M5UaRIuA6nAySMTqU6BZ3ytLHOgFf2oEJorMNeCwXgQR/G dD8= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114696" IronPort-SDR: Zqr1A2gceLc65W+M2LNMUa0A+33WjAoZGLzYLSXC8rfpHBGlPIgXurWzFcGNqSLSVPb61y9jWv GU0UM0iywhM8wyU/sEtjWOrImDrrXF3NxgjrUqtnyF4Fr5l+pZIhg9jO40pX19zOf9YB2zcaew LHLupW65VL+3M2NCfuaDgH7t6A9YSObgFtXwAHG1S79e9Pqy25uD0PoJUBAHLgGz/1lvT0jP0D ocm5jPDkRSjJ5IzlHdPD6/Gti1z4pKXt/g6uQLPpuAfitw+vDLbHSqvW9DvEenWR8Rg2et78/Q Lny2ExLOZQU3kMscmtA6rdsF IronPort-SDR: 7ot5pyN8EDAQWEhaE5lcYHzoMn63Yg66xGE7bPr7pAbc/iyFV+A8OHApA92dYkXdNYQ45i49Jy 0cgzoe3grb+lfeO8j9ykk7mAYyWhoGpIHM/LEhfW3/kHhKP0PnKVPK222UD5KqqG6gcNwhRfZh gjAgYGq6pHt64PKQhglglH1rTya/dYXsQKmqwz3k+TjRODUl8D/rXZThK7Of1Fe9U5W2UQOP22 RruqK7n1i0f0/pLNJryy9/g/fomdAEY7vSVwr/vINxuHf/NlU6nucexS589g0zg/1dTCrbyyHF 8jc= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 33/42] target/riscv: Remove the hardcoded RVXLEN macro Date: Tue, 4 May 2021 08:13:18 +1000 Message-Id: <20210503221327.3068768-34-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: a07bc0c6dc4958681b4f93cbc5d0acc31ed3344a.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu.h | 6 ------ target/riscv/cpu.c | 6 +++++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h index add734bbbd..7e879fb9ca 100644 --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@ -54,12 +54,6 @@ #define RV32 ((target_ulong)1 << (TARGET_LONG_BITS - 2)) #define RV64 ((target_ulong)2 << (TARGET_LONG_BITS - 2)) =20 -#if defined(TARGET_RISCV32) -#define RVXLEN RV32 -#elif defined(TARGET_RISCV64) -#define RVXLEN RV64 -#endif - #define RV(x) ((target_ulong)1 << (x - 'A')) =20 #define RVI RV('I') diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 04ac03f8c9..3191fd0082 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -147,7 +147,11 @@ static void set_resetvec(CPURISCVState *env, target_ul= ong resetvec) static void riscv_any_cpu_init(Object *obj) { CPURISCVState *env =3D &RISCV_CPU(obj)->env; - set_misa(env, RVXLEN | RVI | RVM | RVA | RVF | RVD | RVC | RVU); +#if defined(TARGET_RISCV32) + set_misa(env, RV32 | RVI | RVM | RVA | RVF | RVD | RVC | RVU); +#elif defined(TARGET_RISCV64) + set_misa(env, RV64 | RVI | RVM | RVA | RVF | RVD | RVC | RVU); +#endif set_priv_version(env, PRIV_VERSION_1_11_0); } =20 --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082531; cv=none; d=zohomail.com; s=zohoarc; b=BfNPSRpdiPs0AsM3PdqNxRErSQVVmZUryTNuDUsoawvYng7aWe7GGZ4HQQKQOYfeDv2PFpvRXcPAbqI0HutXHGx1eaP9zcvvorVlyG+6vLVeERXub4IUBAL6NCpBjRTfn58IQAcpv4eRYipfFIWVkwxOLAj6JpThrB2bD1s3NX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082531; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=SjrcpuJh6aAPV3Tu+URzElLxxUnS7VacfzQG+ZyfNE8=; b=n+R+BE56stuIzzdhMeVYt0chfw9xjLaldMqyQtXhTH3YaLoOiEq5Ppi24qB9Zdq2vA2HtiY50LbAhNj3F1oxDWEGIok022uwNnr1fwp01/LA6Yl942BESDgnF5Jk1R00iVHRF+kToSIbLbpakvRPa91IZwe661gNrltKsDpiT7I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082531670283.9148480805925; Mon, 3 May 2021 15:55:31 -0700 (PDT) Received: from localhost ([::1]:40694 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhTN-0006y7-U3 for importer@patchew.org; Mon, 03 May 2021 18:55:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrR-0006tX-NU for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:19 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrO-0000Fd-3b for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:17 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:32 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:43 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:30 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080173; x=1651616173; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=kX2Xv9V0jg3JpeHNNRl1F4kvINea/oqMxr6h/7opXw8=; b=XK7P286LGq8CiyuBuha+9yAJNsZ+YDn62L8HS57nzWhU/5FBXoCRVRfZ RbAk40UpR+RuxZpmbxlAHqKXmDtkn4an1jUWEDaJU4PZ2rX6CCfurtoAq LpkZBAJeL83uWjpNUuyGNIlZQ4razfQkVm1ZWAXWOpSqsiKi2v1hZUkZ2 2bAGABgM4eAxKgo3TwwaN7Sc2lqx4snN01gf7hWjNkybU7NybHUqK1ydW Gzv8l6euy2Z+G5x/2wqc82McMmS0DXGOM8qz4d2glVW/D3qRCUdNCIlOU xkWVaSPUHdaxLc7smHx9tqjjb/xxpoEVw647ydwA6UwiaUVHHpO1vr1fa g==; IronPort-SDR: W6o5+pNofbX8IZ/YGJOoWtycmQkfpboYkvhNcb7lDp6pwWqxi1E4wDa/EdcGt/TN6vEb8DPGlp Ka7X0tW9uHmwNEzLu5mkTRl1whJrxi2LesLndY3BPVHiit6qNNomKWV6Nw9sUHLVnzvkY4qIAf jHX0/AwS6tcNVw5AFK6UY6xx1uQGRptsEeJCJ4LLecZubPMijNx7GLO0N4VCKADTX/Zdfleyqc 5nRaDIH31+4WekM8kCqJSCgY9gRQJTa7GgSjvCMzmwlr6OXJLdTq1UEMPI0FvY7YcICLZFcPPy 3fA= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114698" IronPort-SDR: 8Tnm7Qc24tHgutaSgwFS3JSYEE/jG2BlYHhl5H53kL3WSP3qoiD9V1DSXH0nzIbpWGg+PXu+uS XLpZMnNlJtN/fxY4hFmud0ZKahUSRVLLIwZYgl08ilkZoxN3QH0Dm7vrw5zTNdTlUQi8w/x3/f 7BWb3zK0ZguiDNVvXnmdsxYEYxvyLZaAsSp5GuCa0yvO7JNvlPU1q8w1me0Bk5IuHEK/Yc9e/a 7GEJpN0mEn0ucZF4EGuSfsqm4CkfSlWYFJTphVhY6IB9Ha3ksdjZkfWPQfp9EMUlVTcGHEwIFj U9toIMiTBhH1NxXjN3GAh0TQ IronPort-SDR: uBzgMU4GxsYmB5Sfk2OTaQ5l2jy7zkvHPZs3DlteohUdpVAuXjftfZkOb2+fSPchHpoAaYAHFU /xhNVNzuJeISxRfK/Hv72fyNphF+o3JmYKpV9VBjrKDgxOD6YghXv/79ksjNM8wc87o9xaku6b +gkss8zR1ALQhCfWUgwAxzkfa1lXLEQ0PHbi0XvYymOya6C7s3YTt4STSJ0J2nxNl0Hv4w73KN FPaWVDh6AQ35YlNIC2jbdY1D1NxUyst0zG9iJvkycdjAVoFfO93gDCzQWQ92cd9DE7baoJZkbB 8gA= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 34/42] target/riscv: Remove the hardcoded SSTATUS_SD macro Date: Tue, 4 May 2021 08:13:19 +1000 Message-Id: <20210503221327.3068768-35-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This also ensures that the SD bit is not writable. Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 9ea842309f0fd7adff172790f5b5fc058b40f2f1.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 6 ------ target/riscv/csr.c | 9 ++++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 24d89939a0..3a0e79e545 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -403,12 +403,6 @@ #define SSTATUS32_SD 0x80000000 #define SSTATUS64_SD 0x8000000000000000ULL =20 -#if defined(TARGET_RISCV32) -#define SSTATUS_SD SSTATUS32_SD -#elif defined(TARGET_RISCV64) -#define SSTATUS_SD SSTATUS64_SD -#endif - /* hstatus CSR bits */ #define HSTATUS_VSBE 0x00000020 #define HSTATUS_GVA 0x00000040 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 97ceff718f..41951a0a84 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -459,7 +459,7 @@ static const target_ulong delegable_excps =3D (1ULL << (RISCV_EXCP_STORE_GUEST_AMO_ACCESS_FAULT)); static const target_ulong sstatus_v1_10_mask =3D SSTATUS_SIE | SSTATUS_SPI= E | SSTATUS_UIE | SSTATUS_UPIE | SSTATUS_SPP | SSTATUS_FS | SSTATUS_XS | - SSTATUS_SUM | SSTATUS_MXR | SSTATUS_SD; + SSTATUS_SUM | SSTATUS_MXR; static const target_ulong sip_writable_mask =3D SIP_SSIP | MIP_USIP | MIP_= UEIP; static const target_ulong hip_writable_mask =3D MIP_VSSIP; static const target_ulong hvip_writable_mask =3D MIP_VSSIP | MIP_VSTIP | M= IP_VSEIP; @@ -788,6 +788,13 @@ static RISCVException read_sstatus(CPURISCVState *env,= int csrno, target_ulong *val) { target_ulong mask =3D (sstatus_v1_10_mask); + + if (riscv_cpu_is_32bit(env)) { + mask |=3D SSTATUS32_SD; + } else { + mask |=3D SSTATUS64_SD; + } + *val =3D env->mstatus & mask; return RISCV_EXCP_NONE; } --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081879; cv=none; d=zohomail.com; s=zohoarc; b=AAEolHC+4Nc1p2ZG0fztmbzzHAGVWtvm5yR3gOnzNfhw5xgpIawO0w+nbZZk2LbCA5Uyd1kkrmWqL4BA0545Ik9sXscURdNVjnZvCX+GucBxl2pN2EstK2aaF/oeKUEGIM82MpcDvoMrlAdiz7tXkz3XjktdCq9iUBRx5hPWcJQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081879; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Patr0XjV3GdIV6L4ojA+q6aEsz83UCKgR1G6jfVc9MI=; b=W6+OpmFWCjJN4YL9B8Yev5MkgwV4+KT/29soFicdiFwM481o07T0C2bpWsfS2CVHkPy0jIpahPyeZuYUVj3mZqAUfhawsIkC9eorMMI+jQnJnz//OcTIYei3ItegzEs97LYaFUBdVycGzlWoMsWWZL4vlemAycHIhYQkismSQZI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081879638786.4220135231618; Mon, 3 May 2021 15:44:39 -0700 (PDT) Received: from localhost ([::1]:38504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhIs-0002dF-Je for importer@patchew.org; Mon, 03 May 2021 18:44:38 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53508) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrT-0006ur-SU for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:19 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrQ-0000ID-KQ for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:19 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:35 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:46 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080176; x=1651616176; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WQcSS1oSxULsvx3rcazGUleTjavqMGxioohI8At+Ha4=; b=eG1VzidPzcHk5bFBWj632XVIxDpRl9W9oh52DLkr7PU2GuxkDvE5NlTw BwswVcul7h4hSxdqBNSee+PVbtVUCywVsthaa/3UuwRqcdrTGZmwwORyW lpFv2v/hS+YqntWNIQ/qZ1pRGLUz2lM9Ak20QSs64LmWJlkPDQYOBD54s ejFvgJ2wKVV3mNQMKYdwhOreKG9+hWeyuGJzdYM+gaclg0mB5Tti8IlxM XjOiGeO/YFSf/u/+zjQSTqfw3usBymFAheERwCTYWt+itxCqs5ls0vh5F 1VEGjQnz2b+ar4JR6HB3yta249AsbF2oh2bRuzjbRjcj1IkPappssFYgX Q==; IronPort-SDR: Cu1Wj/5tIN42rwSTABUEXPGw1WpHPkhYV6wOOvhgUa6Jt3nCwmfjB8pnqp1C1ivVz3io8qnlyF F09IOd7PIlOQilJE/y3uPUj704pmEYdQ16NQedNcMWS8bJFNYeYVhvUm/yf4fzfjghPW5YNVVg Pa5P5LWc2VPz82u8Nm/vdp8hrGiU/9aUJIB4xm7GIemXp21mVfr3yPeS0PrO/KlWgNi6QxXpCl BURDIU22O5ALzBGD/b+5cdBHbWk3SL7Wu700Zyy6JUCHFZ3sSyYySVMLDZ4ysm8nwNeEQQqN5z gPg= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114700" IronPort-SDR: aDSLIclS8Ih3/uPOuza5LBYrf4d8C5S8bnVN6iXZ9UTdhAyudB1uvZwTItWW6NabxFsK5wvk96 jcvbeyICMBAZ/HlXp4ap9TlqJX40wFlCsLHlIuOCLciiRtJEkkp54hLwovuPJYnN2XcHF97CAg tycgZe5XAuQRMS/Z/e87cl6pGwtBHJqFW7fcCysP1ywlWMYQVviUCdadtFnSC9OJSoWooeQ+hn nKdNePH/XCQIkVdkQUV1FCBKExNcUcAw8ge84w6HOt5l8reyx3CV6uHfJmB08GFLitCpI+yMPA Ol6I9ocDRGMZnlZR6iGTBXOj IronPort-SDR: XPQmYLeFzUXZPTmDR+7Y4iOHTxQxcHyUnrnkjwYLqXXteAN1D6l4J5K7pwCXvOPTSkq0YbeMyc UgrwwiT5muo7gHRUUoqUrbcDk6ARx2oXx5NyPV3q/WQkMUmPaGKOw4rLvF3BPtoYN2TsCCcgBs pRz8VJVtmzTVWaS4TjTghfyIYBw6+/gsURY4R1opEsRYe8I428Aek8rKnvuEpsiEtDT6F/vdkM qKN4BACyH8Gy7o13tMIjEgXR4855hM/T/8hP7/X60mBTUcPO8pQlOez22meJ03SkyGSio4vEKo gY8= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 35/42] target/riscv: Remove the hardcoded HGATP_MODE macro Date: Tue, 4 May 2021 08:13:20 +1000 Message-Id: <20210503221327.3068768-36-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 665f624bfdc2e3ca64265004b07de7489c77a766.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 11 ----------- target/riscv/cpu_helper.c | 24 +++++++++++++++--------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 3a0e79e545..d738e2fdbd 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -195,17 +195,6 @@ #define CSR_HTIMEDELTA 0x605 #define CSR_HTIMEDELTAH 0x615 =20 -#if defined(TARGET_RISCV32) -#define HGATP_MODE SATP32_MODE -#define HGATP_VMID SATP32_ASID -#define HGATP_PPN SATP32_PPN -#endif -#if defined(TARGET_RISCV64) -#define HGATP_MODE SATP64_MODE -#define HGATP_VMID SATP64_ASID -#define HGATP_PPN SATP64_PPN -#endif - /* Virtual CSRs */ #define CSR_VSSTATUS 0x200 #define CSR_VSIE 0x204 diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index 1018c0036d..d9defbdd34 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -413,8 +413,13 @@ static int get_physical_address(CPURISCVState *env, hw= addr *physical, } widened =3D 0; } else { - base =3D (hwaddr)get_field(env->hgatp, HGATP_PPN) << PGSHIFT; - vm =3D get_field(env->hgatp, HGATP_MODE); + if (riscv_cpu_is_32bit(env)) { + base =3D (hwaddr)get_field(env->hgatp, SATP32_PPN) << PGSHIFT; + vm =3D get_field(env->hgatp, SATP32_MODE); + } else { + base =3D (hwaddr)get_field(env->hgatp, SATP64_PPN) << PGSHIFT; + vm =3D get_field(env->hgatp, SATP64_MODE); + } widened =3D 2; } /* status.SUM will be ignored if execute on background */ @@ -618,16 +623,17 @@ static void raise_mmu_exception(CPURISCVState *env, t= arget_ulong address, bool first_stage, bool two_stage) { CPUState *cs =3D env_cpu(env); - int page_fault_exceptions; + int page_fault_exceptions, vm; + if (first_stage) { - page_fault_exceptions =3D - get_field(env->satp, SATP_MODE) !=3D VM_1_10_MBARE && - !pmp_violation; + vm =3D get_field(env->satp, SATP_MODE); + } else if (riscv_cpu_is_32bit(env)) { + vm =3D get_field(env->hgatp, SATP32_MODE); } else { - page_fault_exceptions =3D - get_field(env->hgatp, HGATP_MODE) !=3D VM_1_10_MBARE && - !pmp_violation; + vm =3D get_field(env->hgatp, SATP64_MODE); } + page_fault_exceptions =3D vm !=3D VM_1_10_MBARE && !pmp_violation; + switch (access_type) { case MMU_INST_FETCH: if (riscv_cpu_virt_enabled(env) && !first_stage) { --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082062; cv=none; d=zohomail.com; s=zohoarc; b=AZJWmVbWMKgV4IHg1V8sYwGz/qTFZAE7KPKBXXJ+H56KtgM037ObcBPdrLxiRcRwAC941BKkTJlhznLOFpEAoZbHe8tb4QzQZKiP5AlnGbzRLhwqza/fYdLtuq9+E6v8GyvXgk8GAUhQdGdA5/UqKAUff+iZOOy7H++sMlAVCtc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082062; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VG1d90RMcmfOl8P5c5K9NRT/RMjB4bimNvOdim/lkc0=; b=btPIf7jK1WMMxqQUCRk90q1/GuFHkUGTlqr6GVgFNmgy7sgkaeSPm+GO0DpXEYJUktNI+vnHO2mJ4jhhi4nc2Y9OCPGG18WKohLsqNsp8OD6Tx9qP5eO+G7PjpU8Bqm0AlKnxTWX3A4ek9redCG+CS51vzbjdmoEv8DwLtLBMGc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082062082301.03245896036674; Mon, 3 May 2021 15:47:42 -0700 (PDT) Received: from localhost ([::1]:47222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhLp-0006If-2x for importer@patchew.org; Mon, 03 May 2021 18:47:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53536) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgre-00073P-DC for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:31 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrY-0000Lb-3V for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:30 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:38 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:49 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:36 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080183; x=1651616183; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=T4xfBUHTz99KeO4XUesDnPxK/SiUu00qLVoeeLc7XQY=; b=Q2f0VHNr0vEQIhI/AqdT6h0Q9fauDeyGOMPcYhFmRuDHBZ3BBYpNYjb4 jqbgF/SxnWDPX5xmIHVvfz8KIhovAmGu6bpXKDW+2JU/11zWfaKxMIMtW M+8YE5tnVbgnPI82hZu9ToRRQGLyPKTcK9byeW+8tAqbLpE4w9C/b/ZfD PcCgSdbQAJx6q2v3RkSNzSx5qG7wzSk4Yx0IE8AcVmnLT3idQj9wChDyr NZaNLhuRywBrAOnCAXpBUx6g5V6UMt69XPjhGfxfw6TQsF5iE48Dh0b3W pNzw7U2ZZ/KwxBsw4sDu70RhtjEqMbO42WjR5LL43CGN2R0+R//5wd6NY w==; IronPort-SDR: 0KiY4NnkUAAZeJb00H4ec+dX/D/Kq/bthDrXVnrFoUer/hB706ZFVdQmjrt64HlAS1nxqd4niZ xVgUePWZ7O37St8Vp6IYuKc82BDxEU5USd9Ptx/aJx+2MpkHjbFus7zYz+SuPysPcbrsSagHBN 4Ei7ttePyS4DaoafO9fnC2vRiiFK5CH2Y7dQ1Lzl/B8X8txHpDQCAiKnz5M4/MphKtVIJkkSVa VqudONK49AZoA+lcmUmDVMLef2XI8F3hQtoIRx5HspzkKHrdjLLgpfq+u61ma0cS/LKssPJsCr Fu0= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114701" IronPort-SDR: g9MEy/v9G7ozeuS89IDXDYQI+QifGyk1OwpotLw/w9ASy8//UQSh761T9eYTWfB+716qcCGoow 0s0J5qeVFPhiMmMHdnMW0WaJzTQSw7shafnI9C5N3k+yej3grCKPPJ5OWO+CxskthoVTFoBs01 H46BRsinCtCnjlwV3V03MOEQYoh1mvtKv3OyLH1oPFTO670Y4OigHIO8ZSJgWC1jbVUyhEUlkX 0wdQuMIlZQEB78Jmzm5QXzmfqlzf5CU6Z6SQoOv6aUKuGwvtwzgMaRXhRj+mwQHyl1WY/mvkpv 4TGY4pksxXW0/oXb3bPT1s+z IronPort-SDR: orvxXZ4qTz3UC74z3SedsWqArsu8T2BgYr0sg90KU7NNjPUamIXfq2rOxiWUOXgj38nrIETCqQ Jq+o4WobewqU7MjNhcnMKGDQ9O/J4xt4WtAR5A0gjygTULE4OuqLGTBS+QOoRPHhBWUhSpubmu 35MVZhQRpgzcFeR4ZZwDpoCdh56pfW8k5o2XXBenpNxrMu2PsE31no8xTpR+JTcmrW52KwzCSd 9fnLR0hFCc6a+4ydt57/yDmVLNMdfWQd0Vz82q++DvoX5aPE7sgypiYY45/uidgJYuhaHCwxOG BxQ= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 36/42] target/riscv: Remove the hardcoded MSTATUS_SD macro Date: Tue, 4 May 2021 08:13:21 +1000 Message-Id: <20210503221327.3068768-37-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Message-id: fcc125d96da941b56c817c9dd6068dc36478fc53.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 10 ---------- target/riscv/csr.c | 12 ++++++++++-- target/riscv/translate.c | 19 +++++++++++++++++-- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index d738e2fdbd..6e30b312f0 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -368,16 +368,6 @@ #define MXL_RV64 2 #define MXL_RV128 3 =20 -#if defined(TARGET_RISCV32) -#define MSTATUS_SD MSTATUS32_SD -#define MISA_MXL MISA32_MXL -#define MXL_VAL MXL_RV32 -#elif defined(TARGET_RISCV64) -#define MSTATUS_SD MSTATUS64_SD -#define MISA_MXL MISA64_MXL -#define MXL_VAL MXL_RV64 -#endif - /* sstatus CSR bits */ #define SSTATUS_UIE 0x00000001 #define SSTATUS_SIE 0x00000002 diff --git a/target/riscv/csr.c b/target/riscv/csr.c index 41951a0a84..e955753441 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -538,7 +538,11 @@ static RISCVException write_mstatus(CPURISCVState *env= , int csrno, =20 dirty =3D ((mstatus & MSTATUS_FS) =3D=3D MSTATUS_FS) | ((mstatus & MSTATUS_XS) =3D=3D MSTATUS_XS); - mstatus =3D set_field(mstatus, MSTATUS_SD, dirty); + if (riscv_cpu_is_32bit(env)) { + mstatus =3D set_field(mstatus, MSTATUS32_SD, dirty); + } else { + mstatus =3D set_field(mstatus, MSTATUS64_SD, dirty); + } env->mstatus =3D mstatus; =20 return RISCV_EXCP_NONE; @@ -614,7 +618,11 @@ static RISCVException write_misa(CPURISCVState *env, i= nt csrno, } =20 /* misa.MXL writes are not supported by QEMU */ - val =3D (env->misa & MISA_MXL) | (val & ~MISA_MXL); + if (riscv_cpu_is_32bit(env)) { + val =3D (env->misa & MISA32_MXL) | (val & ~MISA32_MXL); + } else { + val =3D (env->misa & MISA64_MXL) | (val & ~MISA64_MXL); + } =20 /* flush translation cache */ if (val !=3D env->misa) { diff --git a/target/riscv/translate.c b/target/riscv/translate.c index 26eccc5eb1..a596f80f20 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -78,6 +78,17 @@ static inline bool has_ext(DisasContext *ctx, uint32_t e= xt) return ctx->misa & ext; } =20 +#ifdef TARGET_RISCV32 +# define is_32bit(ctx) true +#elif defined(CONFIG_USER_ONLY) +# define is_32bit(ctx) false +#else +static inline bool is_32bit(DisasContext *ctx) +{ + return (ctx->misa & RV32) =3D=3D RV32; +} +#endif + /* * RISC-V requires NaN-boxing of narrower width floating point values. * This applies when a 32-bit value is assigned to a 64-bit FP register. @@ -369,6 +380,8 @@ static void gen_jal(DisasContext *ctx, int rd, target_u= long imm) static void mark_fs_dirty(DisasContext *ctx) { TCGv tmp; + target_ulong sd; + if (ctx->mstatus_fs =3D=3D MSTATUS_FS) { return; } @@ -376,13 +389,15 @@ static void mark_fs_dirty(DisasContext *ctx) ctx->mstatus_fs =3D MSTATUS_FS; =20 tmp =3D tcg_temp_new(); + sd =3D is_32bit(ctx) ? MSTATUS32_SD : MSTATUS64_SD; + tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); - tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | MSTATUS_SD); + tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | sd); tcg_gen_st_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus)); =20 if (ctx->virt_enabled) { tcg_gen_ld_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus_hs)); - tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | MSTATUS_SD); + tcg_gen_ori_tl(tmp, tmp, MSTATUS_FS | sd); tcg_gen_st_tl(tmp, cpu_env, offsetof(CPURISCVState, mstatus_hs)); } tcg_temp_free(tmp); --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081465; cv=none; d=zohomail.com; s=zohoarc; b=CQnHa+LyiPr9wy3uD47C/em4UIfpqLykg4X2e2nLkYufwjyhbVnWIHCp9BLocNbxzAQKeX6FexzX5EiErm6XOJEdg0iPlQXvRpejNN3y32vIfsKx5mw06SK4biHz7Y/37z8HbL6EB6ZzPe0ojc90KdAwcJEia9Z+VBIiszoIcLw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081465; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=9u60B9NgPE4QBUqdcUmGUoVdCUl8Ikhe1mcK8qOl6Ro=; b=Qr9ij2G4gaMalaWwbfkXqAJ1eVlqduj+9wTY/T4GI/xx8e1wc+IncJ7Ydpmr89nwrGq+vlrmxay1JE3dT4sF5pUc+/ZZb/g9oy3LoruhGYASpVhg+EznyGPJE7J/WMiU0BBlRoYX4/Nfb0Hu14tipE8Bv5QMTVRh3SdZ1kqEhj4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081465783710.2847975488453; Mon, 3 May 2021 15:37:45 -0700 (PDT) Received: from localhost ([::1]:46410 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhCC-0002i3-O5 for importer@patchew.org; Mon, 03 May 2021 18:37:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrj-00073w-PQ for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:35 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrd-0000Fd-9o for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:35 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:41 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:52 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080189; x=1651616189; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=w0SdTRmqXHH5oPpVmfVR5fdaYUPfuZPdbmGEgavaDUo=; b=AjKe508wzTsTEedsRblm6CIJ1N8StnSelRNWlAF+hQVuX/YhBoQ0zK+q jCtyqPFUYK1mcsj3Umnb72aQF/VkTKRMhuSTw52J3Oqblv/o7fupb3x98 uS1elbRk71akaE105HdPaiNtvKvTmNXARHOFQhzsY66D40ZExtnpIIE+p KrtR6iqGfLM3LgmRX+g9e0Qed3Qv1UPMdxddTOlJrqsSx+0+doljebUvW motBiEybkWY8w29pOjt5E3/pABa1ib/sb13UCnYxcEb2zFXIO1u3kfyOM FSJbJegJpPOxjfv8/LBSnP/dgA4cpcykXD1fTWVBxf8/Aq+j5VEOJZH1S g==; IronPort-SDR: smq13QI3w8rS831y0/jKq3WLRnQCvsTNslDSYDUU438TC+1CJQxJ2p1NpoTO1tUjuZquDC104t cWkGecRFjrRvKC3Z2I7efSlYHSgI2zgilP4bdIMd7vtvXrFflzeKQqx4h/G2v7EvfJJlr5/Wqp YCA6DtrZoJTlLtApPRcml8NHRoPdmrOHG1/Zw5+6nqIFUarY7x7dwvZIAsvXGdYFvD00YALbnI LR86da2GSGeIJZb7ww6/uGYphErPNmjKQDfwM/UvuDeAiXntAfBJujRugttkeh3UCqW6cK/ywG RRA= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114703" IronPort-SDR: KqyvzXtGmVVShviaf2gKE98EhapxLCnS1PjbcK++Uz9tR/sQOSqPgb0TTwavrxnjeKuyG102Is U+uGMIYiBHy6ycbNTvaDbAoMno/dwMG9ZXKJrCvOYUYMDPj/7qSulWdWJp/Y/aWGvafkbjV0I3 ULqiETjxm2It9eOrkuLe6+OyquhxCGXjlvP6kLpAg6XrDto457gqrMq6Zk+p4W34X+GeAIj/18 5aL14UXCy7q3wHgzDFRryHLfF+7Gc/VKJ42RNKNuTC77kmZ5YUn/BD7rauJ+vlaeDSRupw1SoZ jGf2LpiIsrPMr0M7uCDC+s/Q IronPort-SDR: 3ZejuRDz8n0i/lhI5b7o/sVY3pkBO7husBnviZ0QpOTPBtTSQltBVsQgRIC+whVAjN23Fr8Xg6 dBqPsLto0e73tR6t/hQdtO57ccaAWZa8Wpyk2XZvRMO5wZ4DWkayg9EOOQEUWiSsNrD8HNQXh6 BudOfKWbITXqX9A8z/K3t7+yy9amIFtxK9Kw8DZ3tU59nPLZq7fYQh1lVpjqxbXObKwoa25kld D9hK3m7atyIlLUMVbGg/1pFmCCxL1Zs9/be9jMahf4KUzJsLvBD2CxMLEMTYMGrHPYRZSVw82w 0eU= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 37/42] target/riscv: Remove the hardcoded SATP_MODE macro Date: Tue, 4 May 2021 08:13:22 +1000 Message-Id: <20210503221327.3068768-38-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Message-id: 6b701769d6621f45ba1739334198e36a64fe04df.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 11 ----------- target/riscv/cpu_helper.c | 32 ++++++++++++++++++++++++-------- target/riscv/csr.c | 19 +++++++++++++++---- target/riscv/monitor.c | 22 +++++++++++++++++----- 4 files changed, 56 insertions(+), 28 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index 6e30b312f0..d98f3bc8bc 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -432,17 +432,6 @@ #define SATP64_ASID 0x0FFFF00000000000ULL #define SATP64_PPN 0x00000FFFFFFFFFFFULL =20 -#if defined(TARGET_RISCV32) -#define SATP_MODE SATP32_MODE -#define SATP_ASID SATP32_ASID -#define SATP_PPN SATP32_PPN -#endif -#if defined(TARGET_RISCV64) -#define SATP_MODE SATP64_MODE -#define SATP_ASID SATP64_ASID -#define SATP_PPN SATP64_PPN -#endif - /* VM modes (mstatus.vm) privileged ISA 1.9.1 */ #define VM_1_09_MBARE 0 #define VM_1_09_MBB 1 diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c index d9defbdd34..968cb8046f 100644 --- a/target/riscv/cpu_helper.c +++ b/target/riscv/cpu_helper.c @@ -405,11 +405,21 @@ static int get_physical_address(CPURISCVState *env, h= waddr *physical, =20 if (first_stage =3D=3D true) { if (use_background) { - base =3D (hwaddr)get_field(env->vsatp, SATP_PPN) << PGSHIFT; - vm =3D get_field(env->vsatp, SATP_MODE); + if (riscv_cpu_is_32bit(env)) { + base =3D (hwaddr)get_field(env->vsatp, SATP32_PPN) << PGSH= IFT; + vm =3D get_field(env->vsatp, SATP32_MODE); + } else { + base =3D (hwaddr)get_field(env->vsatp, SATP64_PPN) << PGSH= IFT; + vm =3D get_field(env->vsatp, SATP64_MODE); + } } else { - base =3D (hwaddr)get_field(env->satp, SATP_PPN) << PGSHIFT; - vm =3D get_field(env->satp, SATP_MODE); + if (riscv_cpu_is_32bit(env)) { + base =3D (hwaddr)get_field(env->satp, SATP32_PPN) << PGSHI= FT; + vm =3D get_field(env->satp, SATP32_MODE); + } else { + base =3D (hwaddr)get_field(env->satp, SATP64_PPN) << PGSHI= FT; + vm =3D get_field(env->satp, SATP64_MODE); + } } widened =3D 0; } else { @@ -624,14 +634,20 @@ static void raise_mmu_exception(CPURISCVState *env, t= arget_ulong address, { CPUState *cs =3D env_cpu(env); int page_fault_exceptions, vm; + uint64_t stap_mode; + + if (riscv_cpu_is_32bit(env)) { + stap_mode =3D SATP32_MODE; + } else { + stap_mode =3D SATP64_MODE; + } =20 if (first_stage) { - vm =3D get_field(env->satp, SATP_MODE); - } else if (riscv_cpu_is_32bit(env)) { - vm =3D get_field(env->hgatp, SATP32_MODE); + vm =3D get_field(env->satp, stap_mode); } else { - vm =3D get_field(env->hgatp, SATP64_MODE); + vm =3D get_field(env->hgatp, stap_mode); } + page_fault_exceptions =3D vm !=3D VM_1_10_MBARE && !pmp_violation; =20 switch (access_type) { diff --git a/target/riscv/csr.c b/target/riscv/csr.c index e955753441..fe5628fea6 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -997,16 +997,27 @@ static RISCVException read_satp(CPURISCVState *env, i= nt csrno, static RISCVException write_satp(CPURISCVState *env, int csrno, target_ulong val) { + int vm, mask, asid; + if (!riscv_feature(env, RISCV_FEATURE_MMU)) { return RISCV_EXCP_NONE; } - if (validate_vm(env, get_field(val, SATP_MODE)) && - ((val ^ env->satp) & (SATP_MODE | SATP_ASID | SATP_PPN))) - { + + if (riscv_cpu_is_32bit(env)) { + vm =3D validate_vm(env, get_field(val, SATP32_MODE)); + mask =3D (val ^ env->satp) & (SATP32_MODE | SATP32_ASID | SATP32_P= PN); + asid =3D (val ^ env->satp) & SATP32_ASID; + } else { + vm =3D validate_vm(env, get_field(val, SATP64_MODE)); + mask =3D (val ^ env->satp) & (SATP64_MODE | SATP64_ASID | SATP64_P= PN); + asid =3D (val ^ env->satp) & SATP64_ASID; + } + + if (vm && mask) { if (env->priv =3D=3D PRV_S && get_field(env->mstatus, MSTATUS_TVM)= ) { return RISCV_EXCP_ILLEGAL_INST; } else { - if ((val ^ env->satp) & SATP_ASID) { + if (asid) { tlb_flush(env_cpu(env)); } env->satp =3D val; diff --git a/target/riscv/monitor.c b/target/riscv/monitor.c index e51188f919..f7e6ea72b3 100644 --- a/target/riscv/monitor.c +++ b/target/riscv/monitor.c @@ -150,9 +150,14 @@ static void mem_info_svxx(Monitor *mon, CPUArchState *= env) target_ulong last_size; int last_attr; =20 - base =3D (hwaddr)get_field(env->satp, SATP_PPN) << PGSHIFT; + if (riscv_cpu_is_32bit(env)) { + base =3D (hwaddr)get_field(env->satp, SATP32_PPN) << PGSHIFT; + vm =3D get_field(env->satp, SATP32_MODE); + } else { + base =3D (hwaddr)get_field(env->satp, SATP64_PPN) << PGSHIFT; + vm =3D get_field(env->satp, SATP64_MODE); + } =20 - vm =3D get_field(env->satp, SATP_MODE); switch (vm) { case VM_1_10_SV32: levels =3D 2; @@ -215,9 +220,16 @@ void hmp_info_mem(Monitor *mon, const QDict *qdict) return; } =20 - if (!(env->satp & SATP_MODE)) { - monitor_printf(mon, "No translation or protection\n"); - return; + if (riscv_cpu_is_32bit(env)) { + if (!(env->satp & SATP32_MODE)) { + monitor_printf(mon, "No translation or protection\n"); + return; + } + } else { + if (!(env->satp & SATP64_MODE)) { + monitor_printf(mon, "No translation or protection\n"); + return; + } } =20 mem_info_svxx(mon, env); --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620081646; cv=none; d=zohomail.com; s=zohoarc; b=S1FjC6crjD5PvY2Hd1hinl2kF19isNVaQFKCzkIAubDA++/xyAMQYnn0iq9YT52ZY52CcQ1PV1RicT2QaeLV4YJk9mmzFV3xczd+BIFFVJuwDhqsITSGr31Ke0GwMF9Zgam44Ca+NFqmL1NpfIzdlyHcoLe6dYkz+ika+TVfefw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620081646; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=59b11ldlPsga7kQ1Oxgpd66qPGFLCMNEZ5quFXr5j7U=; b=lCjgfOqzmc6/LQC3ab01MpnP3k5RopVGInn2Sh4rmlAoVYwupPJJOa4EAwh7S+1LMPQh4fFzU3wnPx1YvbMJM92E9ga1wTIifqMa23fzcNpgYyYewmPExdg7Mty9JbFD57QqgAkiNBqT3pTN8rwqmOR25sZ7L9QBbyvvzGnC3pE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620081646235766.8992758809715; Mon, 3 May 2021 15:40:46 -0700 (PDT) Received: from localhost ([::1]:55072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhF7-0006E5-29 for importer@patchew.org; Mon, 03 May 2021 18:40:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53608) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrr-000766-A1 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:44 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgre-0000ID-6i for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:40 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:44 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:56 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:42 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080190; x=1651616190; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=k8AB1GhaTYWteYEraUA7OHerw//cTNnk2vKdIJFK9EI=; b=K2OVuXzC0dt2VWxgDbbH8MJcm35VYzDr7a3kmeL8u2sfL+Vcd9dpfX9O qU5hEagyMhTlSjXIpmimW9odOcr9M+hgKhkbzPOM6UTXgHxoO7hOARK1n vpnuVCR6n8pktItY9B/G1O3bO+0aYcgWyznHbr6qOHeiFs3uVNyJCO48I sUbpNQebAKinMh4WCQhmmQsjTwuo5+co4hoafM9EyBGjK64xuuwsrGDMo d4y/fvKcXsp5bNphzFl6R4l/GG7gLBORFCtv0Vi/63sdCiLN4E9YnRUvp sGyjLoxj5IPk4ACp0m9/e73gO5wQErBjIKMcPDQwpbZtAjfhXzhyMZVc3 Q==; IronPort-SDR: XoLrALefcUbb4hHjPr4xUBg3pvanDjNSTde3pdiLFH7MRbHE7EEdiRz6IFcGi8A4jb+eMUfyOV 3II8LIfzTmkeniyMDuaIKiG5EDMmC46jsz8ppeI5TW7JA/GFy+YLCJUjtHWipPDnq3lJXr7i26 hT5Da/tCPrL7BHxUcg+UqvayhZKGkAEmgReIhn/4JxFIWXfdIQwffAbmzTbA91SrynSOjgw0Du d8sV/9WxYzs40bE9uRMkA0NVnikpbRyidmkRO+rlOvflUwrJUP+hm7yfcJUiWjfOt8Ddt1fNo7 3D4= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114712" IronPort-SDR: SBeLuzx0yF8liXh4BXyh67rOiQZDQ8qzJQDiv5kse1qSprvx+2hX0nQ0rPh+/sOirFnfJgiCd0 9pKpSI/yzaYilB4JZ4cwzpKSYbXo59aQ8aGXhtR5HmkZVz7HF0SW4MsNhSAQIueJa/rVuFWgI6 +wygyTVr/cJqIPNPteNLDhe0NhrNskY0LQU2tAsc1KdyfvgyRnSz0xuCOzWHkkup7HaUxdt59e NXVZiJmJHHKxqdOxWX7n2y0WocyGlfdziOscLhHtiUbebMwdlw4NkOmmEKZspquEEyw6X16yAk 9WTpNKiiP9tn6bk2ryopMDhg IronPort-SDR: hAAcGt5y5gmIKbIE2YjJk03LT1cyfxKc6mFJ5+42r3rLw1vxkHVqZoYSvyaKah/7pHwNTDu9tM LvlRxqo4Wc9S8l8hhx1VLgQaIqqNvLZTvOiRqrHjh2ZIIlyGFEAqpAUMYZSq1czYaqpGZEdqhw JeX35OtqwHAo+MtF9DQC76LsmfahFBIherm+ADLvLFueHlxwu+DvwF17LJ/YmFYgV2QR99L6SO Gas9IhMIFvCgJNB9IS8i4YeJ/P83HJTAJXMRBVLtVNMoxsALxtW+m/07+4ZBA0aVlHrNDCJnhC Iag= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 38/42] target/riscv: Remove the unused HSTATUS_WPRI macro Date: Tue, 4 May 2021 08:13:23 +1000 Message-Id: <20210503221327.3068768-39-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: e095b57af0d419c8ed822958f04dfc732d7beb7e.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/cpu_bits.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/target/riscv/cpu_bits.h b/target/riscv/cpu_bits.h index d98f3bc8bc..52640e6856 100644 --- a/target/riscv/cpu_bits.h +++ b/target/riscv/cpu_bits.h @@ -396,12 +396,6 @@ #define HSTATUS32_WPRI 0xFF8FF87E #define HSTATUS64_WPRI 0xFFFFFFFFFF8FF87EULL =20 -#if defined(TARGET_RISCV32) -#define HSTATUS_WPRI HSTATUS32_WPRI -#elif defined(TARGET_RISCV64) -#define HSTATUS_WPRI HSTATUS64_WPRI -#endif - #define HCOUNTEREN_CY (1 << 0) #define HCOUNTEREN_TM (1 << 1) #define HCOUNTEREN_IR (1 << 2) --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082724; cv=none; d=zohomail.com; s=zohoarc; b=RgtXsVEJ0jyRdqXnXuy5GvkneeFUAxdQC395omJICGbDzlQRwJcv8FZ5S0bxqZsea+P2a28v3nzjkVTPOWdhOERgI3uyOLGWd1F5+dzIwyoWjsQ/OrvmVjN3VGSLi/xY6Lny+qL1AcU9dfw6DItD8f1GuRBrYmlNdZuOMCijn4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082724; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=+Y8ZvVhuHtael6/S/jv8bBeAW/9ShXyxdSP48Rg/DWQ=; b=YK7s0DYXXeM+ed7AxApaYit+pPddF0VNHIKpeWqt4crMUJ/aJ9+IIJBIT2ObvdTMOSzMbDgjeSYTNtGz973EsocSCX/t1QYP+qAMEnPdGrIJQLT/jW68JiZGJZqYqBRgV2spN7xWcpiRyZPDjch3d2HhkVoaod6/ZrllGHGeU64= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082724497592.0817297853266; Mon, 3 May 2021 15:58:44 -0700 (PDT) Received: from localhost ([::1]:47494 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhWV-0001Tv-5L for importer@patchew.org; Mon, 03 May 2021 18:58:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53642) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrx-00078W-Jz for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:49 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrp-0000Lb-DK for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:49 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:48 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:55:59 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:46 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080201; x=1651616201; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PH9mV72E9bXrh9R0MkptPiiHh1DAnrn6j54hAeX+lmw=; b=MuxcdntBv7nmz+zjdf9yaCYyl/2n0a12FmtFUQvpGkb14w1nja4VyR8b YHjxOkLmlVPVvv60JmVFwO9ildghfxe9cWop87I2ta3UUcrjXB3ww3X9a P4KjesHCAOL4OoKp9ea27/YvRJJVZ33PmX9O7jgqUZMJazpX7McEe/85W G6otcaXWAEvfG7iHCaubRMLLupUfZ9zK013Iuo3DTxiVHZMWPtJ0DiTom FK7kAkSgljgV2fFNklXzpmXR19Eo3WpOm/o1IQ1+wrBrF5Woz9djgWC2W Hli+2teK66rjbKkLpfVyWJC1abnR5mgzzT/ETxZYJwBXKc4x4LEPMcbbd g==; IronPort-SDR: AKGI2rBNvqy16hMFDEA1BctmxliqMA8/w1O/6sf24WOfPyhhcVK7ypapYNM3kN4uuSZbq0PwEc 4yCilQGsVO5TEKPm6sbYG7uDCuMBzk233KQffThhYXdMatoZchC4K/dlG7DxVhOk2W4pOttN7A pbOWsnYt+izwKUPpGOhYhkilanudThTSX7djBjv6LBesRzqadA599HjaTK4XtXpbx+Pua1pgnb Kz8NOxqu2yERFlWd2JcbR47Nvh2rkusZg4xby1iVasXYHIH0OMlse8bUXJijK1S4OYEi92NXfD bzw= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114713" IronPort-SDR: Z17uqleBi9TRgV3RBokLruqTAs/o3hrksmY/maXJfglUADACw+2LUCWVzwOhgzUcdygkGqB8W4 kUVp6FZ2bSilpT8Jav1yfrCkxtVc6aP8JMTV4LzvpRuloe7Xr8hedYbQBHSx+QBVY2rdX3uSbp xuZthjcuczryDRhjewwU0qbi3akL3BAlKYVagJq2ZmAwJISZh5yizskyIsZRCr4QyKZlSSAgve Peq2cKWaDVP1IymPNf0qNU33Xz4j3R1koOKwKPewpOMkrMtZQ5P3Tqfdz8t2fdrhKl8/QYj4XL xfjiM6JOAYhdHNyehpjO24j/ IronPort-SDR: P7WVLgGgKLi2qRSErX0SzLNbZks/Ed+tVcVZDoaA7+jW/+arYKN6HDBYOlD+MhqPsGfsHoQpbN cq7fW5Ls+jZ41JO7L5NjqGclrlM8g0O4vcSRb8y1RpcMaE3O+beWVX+Q0V2p2vT9MbZ+e5jzUI 5q9OY+hir6WgWWeaqFMucwJlhfg8DUeVs0iYYyaBfPm/fAMsghMNuo7tRqUIDah1LfAxIbMWVm 5qX1V3M4P5r5tPQy4zDjsY6sxWb+RVeEorfJ+gtoMBttUtOiJIovBvftsfDIPeC4WAPAlAKmSV iwg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 39/42] target/riscv: Remove an unused CASE_OP_32_64 macro Date: Tue, 4 May 2021 08:13:24 +1000 Message-Id: <20210503221327.3068768-40-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org, Bin Meng Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Reviewed-by: Bin Meng Message-id: 4853459564af35a6690120c74ad892f60cec35ff.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/translate.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/target/riscv/translate.c b/target/riscv/translate.c index a596f80f20..a1f794ffda 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -67,12 +67,6 @@ typedef struct DisasContext { CPUState *cs; } DisasContext; =20 -#ifdef TARGET_RISCV64 -#define CASE_OP_32_64(X) case X: case glue(X, W) -#else -#define CASE_OP_32_64(X) case X -#endif - static inline bool has_ext(DisasContext *ctx, uint32_t ext) { return ctx->misa & ext; --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082140; cv=none; d=zohomail.com; s=zohoarc; b=f7H1WEOYec6FYsqWapYuAWaJdZip9CFy8QfYsANPAx++QFxIPfVhcbhZ6hk25Lkb7SXo8j274DUQAriZDYPAXb7sPPGLIhwPNsPJlaNYUQgiuaBH1r8mKGdd9O6r/0tqrrglmQsPdndjrHsrIrLJ6Dv4hDo61bBWEA2BDD+eIws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082140; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wNwMsEP+VegkBiyL9269NTUFqlR1L489qct8E2BV5QU=; b=DClcGw+3Ry09iuUY8VzmJNZBVGCj7adWkSYvv6z/jOBNNTW+n/EGSPNLoqNzwoBauWgucDpbP4FYRbHwP2OvVcSHBYxXogerhN5mCMTAWiboSwLOYFdj/3RcrwfQFdDEaDQQnxAZJySoYMQMi/2y08eB07QFBPlS+ajbHW0DLgs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082140323273.03407950641713; Mon, 3 May 2021 15:49:00 -0700 (PDT) Received: from localhost ([::1]:50090 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhN5-0007T2-2k for importer@patchew.org; Mon, 03 May 2021 18:48:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53678) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgs5-00079T-9s for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:57 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28394) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgrv-0000Fd-Fj for qemu-devel@nongnu.org; Mon, 03 May 2021 18:16:55 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:52 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:56:03 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:49 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080207; x=1651616207; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=se8lfUOqpnCd33IAE3PZjy5dFjxaV2X6rgujV44CGDs=; b=j2CPKG5FWjlD7D44vexF5iS870X0kZsEniEij32VDCW3ODrjBpAioatQ R2NAfeoGd3CV+76vMX3LD9/tshMDWSkWcGN3QsfCoa49DaZZ2Kgf7ERQQ jT7XBzVo7pqJdviGOa7WUPEeU5+7G8AoI/C1+bgq4ZbzTSJ47AcOR2QYF l3inHwiRmGkf7t98gAg3rSFrgmPK13+Ph6cuE0Sv6u2tGkuxCVeUNvajk 15Dk05xQruBPTzJ6J32sQmzhNNqlj/nnY6nvdTYPpE4lzd0ZLmyQnjKKr U1kDlun7hybo4d2mrfV5/JnI3f5NnYld/yg9v/3FA9aCf+Vxqz5ni96Ji g==; IronPort-SDR: JQxAmqO6XsqZ7ua1c+l8RzoJVesLdOuNN3KYYikqMRq6HWYNhGcUsSjQR3NJXggP5dAOvAL49e PlUfFHl5d4G8WB11D36mVatUFhBpPt+sdzMzjPwKxJ2I1Fvc8UK3PbOQ6Te7eKumx6QT1RICnO p1t3G7MKoszCfRlGm+YEOJeTjXmxxR0ZhuHZGDnJatczeJiYZcRzAVMUX6GJHXlNSj7msYPl1w HUnz4n5ASI4YtwYmRvD+LJj6KYZeZ+mumL4HoxR61TmrvgM0stPswKYv5Ku7jtX+R2FwqLg1UD 7ow= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114717" IronPort-SDR: /vPckXyA6N9A656c1e4sakJ8aCVdFmVMDDaL0+ANTWhuBdj9hUP82LTg19bivFhFGwUzB5aJIK k8jUgVybk+422rOQT04lCETf++p5jkAUxfnbXosJpgU6FBOqIgKZODJcyA0Fs4mIMTFQjHQMxi pF/jtxeUXqBH7tOVwq0B8ywbaYmpTMN0zhG18a5HQyzsHephP/lF039O2Yr2ZHSbanghunsUdR cGoUdvDrU6bhlyTwtfnqqt2jdoEwLaKFvBWlGF/8PN5sXWAtib/BlIDCGP/YvV2BzLrzJc1rHy 2eVBNUwmh0Y523UGgrnvQp+2 IronPort-SDR: NOO/o2+D9UF+qaQDhlK2Dx8rN6e0b+uTm8+Eny760MA77hhW+3P36rKzYH2hS1flLgKiNvi/uJ Ge5r4lZHuQdfri+0NQjFmG4FHUWdjqaVU7nCAVRhkVetWw8dzswO/40Tv+D7dEDbn5PwlvH5O8 1M/LgRSFIM5hMmMdGyg7ONEkovv3fjScV/yr/z3/6mVoHu0NII/6IqdXKaCI2EvYf5oVDthxpH hxtZXKfCI7vDPm0Ni+/kkE0lEityURIQBMvUMpkLY46W+IBvyYiu8cmrcSD0C/IkgmIKGSJKeB UfA= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 40/42] target/riscv: Consolidate RV32/64 32-bit instructions Date: Tue, 4 May 2021 08:13:25 +1000 Message-Id: <20210503221327.3068768-41-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This patch removes the insn32-64.decode decode file and consolidates the instructions into the general RISC-V insn32.decode decode tree. This means that all of the instructions are avaliable in both the 32-bit and 64-bit builds. This also means that we run a check to ensure we are running a 64-bit softmmu before we execute the 64-bit only instructions. This allows us to include the 32-bit instructions in the 64-bit build, while also ensuring that 32-bit only software can not execute the instructions. Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Message-id: db709360e2be47d2f9c6483ab973fe4791aefa77.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/helper.h | 18 +++-- target/riscv/insn32-64.decode | 88 ------------------------- target/riscv/insn32.decode | 67 ++++++++++++++++++- target/riscv/fpu_helper.c | 16 ++--- target/riscv/translate.c | 9 ++- target/riscv/vector_helper.c | 4 -- target/riscv/insn_trans/trans_rva.c.inc | 14 +++- target/riscv/insn_trans/trans_rvd.c.inc | 17 ++++- target/riscv/insn_trans/trans_rvf.c.inc | 6 +- target/riscv/insn_trans/trans_rvh.c.inc | 8 ++- target/riscv/insn_trans/trans_rvi.c.inc | 16 +++-- target/riscv/insn_trans/trans_rvm.c.inc | 12 +++- target/riscv/insn_trans/trans_rvv.c.inc | 39 +++++------ target/riscv/meson.build | 2 +- 14 files changed, 166 insertions(+), 150 deletions(-) delete mode 100644 target/riscv/insn32-64.decode diff --git a/target/riscv/helper.h b/target/riscv/helper.h index e3f3f41e89..c7267593c3 100644 --- a/target/riscv/helper.h +++ b/target/riscv/helper.h @@ -27,12 +27,12 @@ DEF_HELPER_FLAGS_3(flt_s, TCG_CALL_NO_RWG, tl, env, i64= , i64) DEF_HELPER_FLAGS_3(feq_s, TCG_CALL_NO_RWG, tl, env, i64, i64) DEF_HELPER_FLAGS_2(fcvt_w_s, TCG_CALL_NO_RWG, tl, env, i64) DEF_HELPER_FLAGS_2(fcvt_wu_s, TCG_CALL_NO_RWG, tl, env, i64) -DEF_HELPER_FLAGS_2(fcvt_l_s, TCG_CALL_NO_RWG, i64, env, i64) -DEF_HELPER_FLAGS_2(fcvt_lu_s, TCG_CALL_NO_RWG, i64, env, i64) +DEF_HELPER_FLAGS_2(fcvt_l_s, TCG_CALL_NO_RWG, tl, env, i64) +DEF_HELPER_FLAGS_2(fcvt_lu_s, TCG_CALL_NO_RWG, tl, env, i64) DEF_HELPER_FLAGS_2(fcvt_s_w, TCG_CALL_NO_RWG, i64, env, tl) DEF_HELPER_FLAGS_2(fcvt_s_wu, TCG_CALL_NO_RWG, i64, env, tl) -DEF_HELPER_FLAGS_2(fcvt_s_l, TCG_CALL_NO_RWG, i64, env, i64) -DEF_HELPER_FLAGS_2(fcvt_s_lu, TCG_CALL_NO_RWG, i64, env, i64) +DEF_HELPER_FLAGS_2(fcvt_s_l, TCG_CALL_NO_RWG, i64, env, tl) +DEF_HELPER_FLAGS_2(fcvt_s_lu, TCG_CALL_NO_RWG, i64, env, tl) DEF_HELPER_FLAGS_1(fclass_s, TCG_CALL_NO_RWG_SE, tl, i64) =20 /* Floating Point - Double Precision */ @@ -50,12 +50,12 @@ DEF_HELPER_FLAGS_3(flt_d, TCG_CALL_NO_RWG, tl, env, i64= , i64) DEF_HELPER_FLAGS_3(feq_d, TCG_CALL_NO_RWG, tl, env, i64, i64) DEF_HELPER_FLAGS_2(fcvt_w_d, TCG_CALL_NO_RWG, tl, env, i64) DEF_HELPER_FLAGS_2(fcvt_wu_d, TCG_CALL_NO_RWG, tl, env, i64) -DEF_HELPER_FLAGS_2(fcvt_l_d, TCG_CALL_NO_RWG, i64, env, i64) -DEF_HELPER_FLAGS_2(fcvt_lu_d, TCG_CALL_NO_RWG, i64, env, i64) +DEF_HELPER_FLAGS_2(fcvt_l_d, TCG_CALL_NO_RWG, tl, env, i64) +DEF_HELPER_FLAGS_2(fcvt_lu_d, TCG_CALL_NO_RWG, tl, env, i64) DEF_HELPER_FLAGS_2(fcvt_d_w, TCG_CALL_NO_RWG, i64, env, tl) DEF_HELPER_FLAGS_2(fcvt_d_wu, TCG_CALL_NO_RWG, i64, env, tl) -DEF_HELPER_FLAGS_2(fcvt_d_l, TCG_CALL_NO_RWG, i64, env, i64) -DEF_HELPER_FLAGS_2(fcvt_d_lu, TCG_CALL_NO_RWG, i64, env, i64) +DEF_HELPER_FLAGS_2(fcvt_d_l, TCG_CALL_NO_RWG, i64, env, tl) +DEF_HELPER_FLAGS_2(fcvt_d_lu, TCG_CALL_NO_RWG, i64, env, tl) DEF_HELPER_FLAGS_1(fclass_d, TCG_CALL_NO_RWG_SE, tl, i64) =20 /* Special functions */ @@ -241,7 +241,6 @@ DEF_HELPER_5(vlhuff_v_w, void, ptr, ptr, tl, env, i32) DEF_HELPER_5(vlhuff_v_d, void, ptr, ptr, tl, env, i32) DEF_HELPER_5(vlwuff_v_w, void, ptr, ptr, tl, env, i32) DEF_HELPER_5(vlwuff_v_d, void, ptr, ptr, tl, env, i32) -#ifdef TARGET_RISCV64 DEF_HELPER_6(vamoswapw_v_d, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamoswapd_v_d, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamoaddw_v_d, void, ptr, ptr, tl, ptr, env, i32) @@ -260,7 +259,6 @@ DEF_HELPER_6(vamominuw_v_d, void, ptr, ptr, tl, ptr, en= v, i32) DEF_HELPER_6(vamominud_v_d, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamomaxuw_v_d, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamomaxud_v_d, void, ptr, ptr, tl, ptr, env, i32) -#endif DEF_HELPER_6(vamoswapw_v_w, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamoaddw_v_w, void, ptr, ptr, tl, ptr, env, i32) DEF_HELPER_6(vamoxorw_v_w, void, ptr, ptr, tl, ptr, env, i32) diff --git a/target/riscv/insn32-64.decode b/target/riscv/insn32-64.decode deleted file mode 100644 index 8157dee8b7..0000000000 --- a/target/riscv/insn32-64.decode +++ /dev/null @@ -1,88 +0,0 @@ -# -# RISC-V translation routines for the RV Instruction Set. -# -# Copyright (c) 2018 Peer Adelt, peer.adelt@hni.uni-paderborn.de -# Bastian Koppelmann, kbastian@mail.uni-paderborn.de -# -# 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 for -# more details. -# -# You should have received a copy of the GNU General Public License along = with -# this program. If not, see . - -# This is concatenated with insn32.decode for risc64 targets. -# Most of the fields and formats are there. - -%sh5 20:5 - -@sh5 ....... ..... ..... ... ..... ....... &shift shamt=3D%sh5 = %rs1 %rd - -# *** RV64I Base Instruction Set (in addition to RV32I) *** -lwu ............ ..... 110 ..... 0000011 @i -ld ............ ..... 011 ..... 0000011 @i -sd ....... ..... ..... 011 ..... 0100011 @s -addiw ............ ..... 000 ..... 0011011 @i -slliw 0000000 ..... ..... 001 ..... 0011011 @sh5 -srliw 0000000 ..... ..... 101 ..... 0011011 @sh5 -sraiw 0100000 ..... ..... 101 ..... 0011011 @sh5 -addw 0000000 ..... ..... 000 ..... 0111011 @r -subw 0100000 ..... ..... 000 ..... 0111011 @r -sllw 0000000 ..... ..... 001 ..... 0111011 @r -srlw 0000000 ..... ..... 101 ..... 0111011 @r -sraw 0100000 ..... ..... 101 ..... 0111011 @r - -# *** RV64M Standard Extension (in addition to RV32M) *** -mulw 0000001 ..... ..... 000 ..... 0111011 @r -divw 0000001 ..... ..... 100 ..... 0111011 @r -divuw 0000001 ..... ..... 101 ..... 0111011 @r -remw 0000001 ..... ..... 110 ..... 0111011 @r -remuw 0000001 ..... ..... 111 ..... 0111011 @r - -# *** RV64A Standard Extension (in addition to RV32A) *** -lr_d 00010 . . 00000 ..... 011 ..... 0101111 @atom_ld -sc_d 00011 . . ..... ..... 011 ..... 0101111 @atom_st -amoswap_d 00001 . . ..... ..... 011 ..... 0101111 @atom_st -amoadd_d 00000 . . ..... ..... 011 ..... 0101111 @atom_st -amoxor_d 00100 . . ..... ..... 011 ..... 0101111 @atom_st -amoand_d 01100 . . ..... ..... 011 ..... 0101111 @atom_st -amoor_d 01000 . . ..... ..... 011 ..... 0101111 @atom_st -amomin_d 10000 . . ..... ..... 011 ..... 0101111 @atom_st -amomax_d 10100 . . ..... ..... 011 ..... 0101111 @atom_st -amominu_d 11000 . . ..... ..... 011 ..... 0101111 @atom_st -amomaxu_d 11100 . . ..... ..... 011 ..... 0101111 @atom_st - -#*** Vector AMO operations (in addition to Zvamo) *** -vamoswapd_v 00001 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamoaddd_v 00000 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamoxord_v 00100 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamoandd_v 01100 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamoord_v 01000 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamomind_v 10000 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamomaxd_v 10100 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamominud_v 11000 . . ..... ..... 111 ..... 0101111 @r_wdvm -vamomaxud_v 11100 . . ..... ..... 111 ..... 0101111 @r_wdvm - -# *** RV64F Standard Extension (in addition to RV32F) *** -fcvt_l_s 1100000 00010 ..... ... ..... 1010011 @r2_rm -fcvt_lu_s 1100000 00011 ..... ... ..... 1010011 @r2_rm -fcvt_s_l 1101000 00010 ..... ... ..... 1010011 @r2_rm -fcvt_s_lu 1101000 00011 ..... ... ..... 1010011 @r2_rm - -# *** RV64D Standard Extension (in addition to RV32D) *** -fcvt_l_d 1100001 00010 ..... ... ..... 1010011 @r2_rm -fcvt_lu_d 1100001 00011 ..... ... ..... 1010011 @r2_rm -fmv_x_d 1110001 00000 ..... 000 ..... 1010011 @r2 -fcvt_d_l 1101001 00010 ..... ... ..... 1010011 @r2_rm -fcvt_d_lu 1101001 00011 ..... ... ..... 1010011 @r2_rm -fmv_d_x 1111001 00000 ..... 000 ..... 1010011 @r2 - -# *** RV32H Base Instruction Set *** -hlv_wu 0110100 00001 ..... 100 ..... 1110011 @r2 -hlv_d 0110110 00000 ..... 100 ..... 1110011 @r2 -hsv_d 0110111 ..... ..... 100 00000 1110011 @r2_s diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index 84080dd18c..fecf0f15d5 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -21,6 +21,7 @@ %rs2 20:5 %rs1 15:5 %rd 7:5 +%sh5 20:5 =20 %sh10 20:10 %csr 20:12 @@ -86,6 +87,8 @@ @sfence_vma ....... ..... ..... ... ..... ....... %rs2 %rs1 @sfence_vm ....... ..... ..... ... ..... ....... %rs1 =20 +# Formats 64: +@sh5 ....... ..... ..... ... ..... ....... &shift shamt=3D%sh5 = %rs1 %rd =20 # *** Privileged Instructions *** ecall 000000000000 00000 000 00000 1110011 @@ -144,6 +147,20 @@ csrrwi ............ ..... 101 ..... 1110011 @csr csrrsi ............ ..... 110 ..... 1110011 @csr csrrci ............ ..... 111 ..... 1110011 @csr =20 +# *** RV64I Base Instruction Set (in addition to RV32I) *** +lwu ............ ..... 110 ..... 0000011 @i +ld ............ ..... 011 ..... 0000011 @i +sd ....... ..... ..... 011 ..... 0100011 @s +addiw ............ ..... 000 ..... 0011011 @i +slliw 0000000 ..... ..... 001 ..... 0011011 @sh5 +srliw 0000000 ..... ..... 101 ..... 0011011 @sh5 +sraiw 0100000 ..... ..... 101 ..... 0011011 @sh5 +addw 0000000 ..... ..... 000 ..... 0111011 @r +subw 0100000 ..... ..... 000 ..... 0111011 @r +sllw 0000000 ..... ..... 001 ..... 0111011 @r +srlw 0000000 ..... ..... 101 ..... 0111011 @r +sraw 0100000 ..... ..... 101 ..... 0111011 @r + # *** RV32M Standard Extension *** mul 0000001 ..... ..... 000 ..... 0110011 @r mulh 0000001 ..... ..... 001 ..... 0110011 @r @@ -154,6 +171,13 @@ divu 0000001 ..... ..... 101 ..... 0110011 @r rem 0000001 ..... ..... 110 ..... 0110011 @r remu 0000001 ..... ..... 111 ..... 0110011 @r =20 +# *** RV64M Standard Extension (in addition to RV32M) *** +mulw 0000001 ..... ..... 000 ..... 0111011 @r +divw 0000001 ..... ..... 100 ..... 0111011 @r +divuw 0000001 ..... ..... 101 ..... 0111011 @r +remw 0000001 ..... ..... 110 ..... 0111011 @r +remuw 0000001 ..... ..... 111 ..... 0111011 @r + # *** RV32A Standard Extension *** lr_w 00010 . . 00000 ..... 010 ..... 0101111 @atom_ld sc_w 00011 . . ..... ..... 010 ..... 0101111 @atom_st @@ -167,6 +191,19 @@ amomax_w 10100 . . ..... ..... 010 ..... 0101111 @at= om_st amominu_w 11000 . . ..... ..... 010 ..... 0101111 @atom_st amomaxu_w 11100 . . ..... ..... 010 ..... 0101111 @atom_st =20 +# *** RV64A Standard Extension (in addition to RV32A) *** +lr_d 00010 . . 00000 ..... 011 ..... 0101111 @atom_ld +sc_d 00011 . . ..... ..... 011 ..... 0101111 @atom_st +amoswap_d 00001 . . ..... ..... 011 ..... 0101111 @atom_st +amoadd_d 00000 . . ..... ..... 011 ..... 0101111 @atom_st +amoxor_d 00100 . . ..... ..... 011 ..... 0101111 @atom_st +amoand_d 01100 . . ..... ..... 011 ..... 0101111 @atom_st +amoor_d 01000 . . ..... ..... 011 ..... 0101111 @atom_st +amomin_d 10000 . . ..... ..... 011 ..... 0101111 @atom_st +amomax_d 10100 . . ..... ..... 011 ..... 0101111 @atom_st +amominu_d 11000 . . ..... ..... 011 ..... 0101111 @atom_st +amomaxu_d 11100 . . ..... ..... 011 ..... 0101111 @atom_st + # *** RV32F Standard Extension *** flw ............ ..... 010 ..... 0000111 @i fsw ....... ..... ..... 010 ..... 0100111 @s @@ -195,6 +232,12 @@ fcvt_s_w 1101000 00000 ..... ... ..... 1010011 @r2_= rm fcvt_s_wu 1101000 00001 ..... ... ..... 1010011 @r2_rm fmv_w_x 1111000 00000 ..... 000 ..... 1010011 @r2 =20 +# *** RV64F Standard Extension (in addition to RV32F) *** +fcvt_l_s 1100000 00010 ..... ... ..... 1010011 @r2_rm +fcvt_lu_s 1100000 00011 ..... ... ..... 1010011 @r2_rm +fcvt_s_l 1101000 00010 ..... ... ..... 1010011 @r2_rm +fcvt_s_lu 1101000 00011 ..... ... ..... 1010011 @r2_rm + # *** RV32D Standard Extension *** fld ............ ..... 011 ..... 0000111 @i fsd ....... ..... ..... 011 ..... 0100111 @s @@ -223,6 +266,14 @@ fcvt_wu_d 1100001 00001 ..... ... ..... 1010011 @r2_= rm fcvt_d_w 1101001 00000 ..... ... ..... 1010011 @r2_rm fcvt_d_wu 1101001 00001 ..... ... ..... 1010011 @r2_rm =20 +# *** RV64D Standard Extension (in addition to RV32D) *** +fcvt_l_d 1100001 00010 ..... ... ..... 1010011 @r2_rm +fcvt_lu_d 1100001 00011 ..... ... ..... 1010011 @r2_rm +fmv_x_d 1110001 00000 ..... 000 ..... 1010011 @r2 +fcvt_d_l 1101001 00010 ..... ... ..... 1010011 @r2_rm +fcvt_d_lu 1101001 00011 ..... ... ..... 1010011 @r2_rm +fmv_d_x 1111001 00000 ..... 000 ..... 1010011 @r2 + # *** RV32H Base Instruction Set *** hlv_b 0110000 00000 ..... 100 ..... 1110011 @r2 hlv_bu 0110000 00001 ..... 100 ..... 1110011 @r2 @@ -237,7 +288,10 @@ hsv_w 0110101 ..... ..... 100 00000 1110011 @r= 2_s hfence_gvma 0110001 ..... ..... 000 00000 1110011 @hfence_gvma hfence_vvma 0010001 ..... ..... 000 00000 1110011 @hfence_vvma =20 -# *** RV32V Extension *** +# *** RV32H Base Instruction Set *** +hlv_wu 0110100 00001 ..... 100 ..... 1110011 @r2 +hlv_d 0110110 00000 ..... 100 ..... 1110011 @r2 +hsv_d 0110111 ..... ..... 100 00000 1110011 @r2_s =20 # *** Vector loads and stores are encoded within LOADFP/STORE-FP *** vlb_v ... 100 . 00000 ..... 000 ..... 0000111 @r2_nfvm @@ -592,3 +646,14 @@ vcompress_vm 010111 - ..... ..... 010 ..... 1010111= @r =20 vsetvli 0 ........... ..... 111 ..... 1010111 @r2_zimm vsetvl 1000000 ..... ..... 111 ..... 1010111 @r + +#*** Vector AMO operations (in addition to Zvamo) *** +vamoswapd_v 00001 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamoaddd_v 00000 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamoxord_v 00100 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamoandd_v 01100 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamoord_v 01000 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamomind_v 10000 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamomaxd_v 10100 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamominud_v 11000 . . ..... ..... 111 ..... 0101111 @r_wdvm +vamomaxud_v 11100 . . ..... ..... 111 ..... 0101111 @r_wdvm diff --git a/target/riscv/fpu_helper.c b/target/riscv/fpu_helper.c index 7c4ab92ecb..8700516a14 100644 --- a/target/riscv/fpu_helper.c +++ b/target/riscv/fpu_helper.c @@ -223,13 +223,13 @@ target_ulong helper_fcvt_wu_s(CPURISCVState *env, uin= t64_t rs1) return (int32_t)float32_to_uint32(frs1, &env->fp_status); } =20 -uint64_t helper_fcvt_l_s(CPURISCVState *env, uint64_t rs1) +target_ulong helper_fcvt_l_s(CPURISCVState *env, uint64_t rs1) { float32 frs1 =3D check_nanbox_s(rs1); return float32_to_int64(frs1, &env->fp_status); } =20 -uint64_t helper_fcvt_lu_s(CPURISCVState *env, uint64_t rs1) +target_ulong helper_fcvt_lu_s(CPURISCVState *env, uint64_t rs1) { float32 frs1 =3D check_nanbox_s(rs1); return float32_to_uint64(frs1, &env->fp_status); @@ -245,12 +245,12 @@ uint64_t helper_fcvt_s_wu(CPURISCVState *env, target_= ulong rs1) return nanbox_s(uint32_to_float32((uint32_t)rs1, &env->fp_status)); } =20 -uint64_t helper_fcvt_s_l(CPURISCVState *env, uint64_t rs1) +uint64_t helper_fcvt_s_l(CPURISCVState *env, target_ulong rs1) { return nanbox_s(int64_to_float32(rs1, &env->fp_status)); } =20 -uint64_t helper_fcvt_s_lu(CPURISCVState *env, uint64_t rs1) +uint64_t helper_fcvt_s_lu(CPURISCVState *env, target_ulong rs1) { return nanbox_s(uint64_to_float32(rs1, &env->fp_status)); } @@ -332,12 +332,12 @@ target_ulong helper_fcvt_wu_d(CPURISCVState *env, uin= t64_t frs1) return (int32_t)float64_to_uint32(frs1, &env->fp_status); } =20 -uint64_t helper_fcvt_l_d(CPURISCVState *env, uint64_t frs1) +target_ulong helper_fcvt_l_d(CPURISCVState *env, uint64_t frs1) { return float64_to_int64(frs1, &env->fp_status); } =20 -uint64_t helper_fcvt_lu_d(CPURISCVState *env, uint64_t frs1) +target_ulong helper_fcvt_lu_d(CPURISCVState *env, uint64_t frs1) { return float64_to_uint64(frs1, &env->fp_status); } @@ -352,12 +352,12 @@ uint64_t helper_fcvt_d_wu(CPURISCVState *env, target_= ulong rs1) return uint32_to_float64((uint32_t)rs1, &env->fp_status); } =20 -uint64_t helper_fcvt_d_l(CPURISCVState *env, uint64_t rs1) +uint64_t helper_fcvt_d_l(CPURISCVState *env, target_ulong rs1) { return int64_to_float64(rs1, &env->fp_status); } =20 -uint64_t helper_fcvt_d_lu(CPURISCVState *env, uint64_t rs1) +uint64_t helper_fcvt_d_lu(CPURISCVState *env, target_ulong rs1) { return uint64_to_float64(rs1, &env->fp_status); } diff --git a/target/riscv/translate.c b/target/riscv/translate.c index a1f794ffda..e945352bca 100644 --- a/target/riscv/translate.c +++ b/target/riscv/translate.c @@ -435,6 +435,12 @@ EX_SH(12) } \ } while (0) =20 +#define REQUIRE_64BIT(ctx) do { \ + if (is_32bit(ctx)) { \ + return false; \ + } \ +} while (0) + static int ex_rvc_register(DisasContext *ctx, int reg) { return 8 + reg; @@ -482,7 +488,6 @@ static bool gen_arith_imm_tl(DisasContext *ctx, arg_i *= a, return true; } =20 -#ifdef TARGET_RISCV64 static void gen_addw(TCGv ret, TCGv arg1, TCGv arg2) { tcg_gen_add_tl(ret, arg1, arg2); @@ -543,8 +548,6 @@ static bool gen_arith_div_uw(DisasContext *ctx, arg_r *= a, return true; } =20 -#endif - static bool gen_arith(DisasContext *ctx, arg_r *a, void(*func)(TCGv, TCGv, TCGv)) { diff --git a/target/riscv/vector_helper.c b/target/riscv/vector_helper.c index 4651a1e224..12c31aa4b4 100644 --- a/target/riscv/vector_helper.c +++ b/target/riscv/vector_helper.c @@ -751,7 +751,6 @@ GEN_VEXT_AMO_NOATOMIC_OP(vamominw_v_w, 32, 32, H4, DO_= MIN, l) GEN_VEXT_AMO_NOATOMIC_OP(vamomaxw_v_w, 32, 32, H4, DO_MAX, l) GEN_VEXT_AMO_NOATOMIC_OP(vamominuw_v_w, 32, 32, H4, DO_MINU, l) GEN_VEXT_AMO_NOATOMIC_OP(vamomaxuw_v_w, 32, 32, H4, DO_MAXU, l) -#ifdef TARGET_RISCV64 GEN_VEXT_AMO_NOATOMIC_OP(vamoswapw_v_d, 64, 32, H8, DO_SWAP, l) GEN_VEXT_AMO_NOATOMIC_OP(vamoswapd_v_d, 64, 64, H8, DO_SWAP, q) GEN_VEXT_AMO_NOATOMIC_OP(vamoaddw_v_d, 64, 32, H8, DO_ADD, l) @@ -770,7 +769,6 @@ GEN_VEXT_AMO_NOATOMIC_OP(vamominuw_v_d, 64, 32, H8, DO_= MINU, l) GEN_VEXT_AMO_NOATOMIC_OP(vamominud_v_d, 64, 64, H8, DO_MINU, q) GEN_VEXT_AMO_NOATOMIC_OP(vamomaxuw_v_d, 64, 32, H8, DO_MAXU, l) GEN_VEXT_AMO_NOATOMIC_OP(vamomaxud_v_d, 64, 64, H8, DO_MAXU, q) -#endif =20 static inline void vext_amo_noatomic(void *vs3, void *v0, target_ulong base, @@ -814,7 +812,6 @@ void HELPER(NAME)(void *vs3, void *v0, target_ulong bas= e, \ GETPC()); \ } =20 -#ifdef TARGET_RISCV64 GEN_VEXT_AMO(vamoswapw_v_d, int32_t, int64_t, idx_d, clearq) GEN_VEXT_AMO(vamoswapd_v_d, int64_t, int64_t, idx_d, clearq) GEN_VEXT_AMO(vamoaddw_v_d, int32_t, int64_t, idx_d, clearq) @@ -833,7 +830,6 @@ GEN_VEXT_AMO(vamominuw_v_d, uint32_t, uint64_t, idx_d, = clearq) GEN_VEXT_AMO(vamominud_v_d, uint64_t, uint64_t, idx_d, clearq) GEN_VEXT_AMO(vamomaxuw_v_d, uint32_t, uint64_t, idx_d, clearq) GEN_VEXT_AMO(vamomaxud_v_d, uint64_t, uint64_t, idx_d, clearq) -#endif GEN_VEXT_AMO(vamoswapw_v_w, int32_t, int32_t, idx_w, clearl) GEN_VEXT_AMO(vamoaddw_v_w, int32_t, int32_t, idx_w, clearl) GEN_VEXT_AMO(vamoxorw_v_w, int32_t, int32_t, idx_w, clearl) diff --git a/target/riscv/insn_trans/trans_rva.c.inc b/target/riscv/insn_tr= ans/trans_rva.c.inc index be8a9f06dd..ab2ec4f0a5 100644 --- a/target/riscv/insn_trans/trans_rva.c.inc +++ b/target/riscv/insn_trans/trans_rva.c.inc @@ -165,60 +165,68 @@ static bool trans_amomaxu_w(DisasContext *ctx, arg_am= omaxu_w *a) return gen_amo(ctx, a, &tcg_gen_atomic_fetch_umax_tl, (MO_ALIGN | MO_T= ESL)); } =20 -#ifdef TARGET_RISCV64 - static bool trans_lr_d(DisasContext *ctx, arg_lr_d *a) { + REQUIRE_64BIT(ctx); return gen_lr(ctx, a, MO_ALIGN | MO_TEQ); } =20 static bool trans_sc_d(DisasContext *ctx, arg_sc_d *a) { + REQUIRE_64BIT(ctx); return gen_sc(ctx, a, (MO_ALIGN | MO_TEQ)); } =20 static bool trans_amoswap_d(DisasContext *ctx, arg_amoswap_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_xchg_tl, (MO_ALIGN | MO_TEQ)); } =20 static bool trans_amoadd_d(DisasContext *ctx, arg_amoadd_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_add_tl, (MO_ALIGN | MO_TE= Q)); } =20 static bool trans_amoxor_d(DisasContext *ctx, arg_amoxor_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_xor_tl, (MO_ALIGN | MO_TE= Q)); } =20 static bool trans_amoand_d(DisasContext *ctx, arg_amoand_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_and_tl, (MO_ALIGN | MO_TE= Q)); } =20 static bool trans_amoor_d(DisasContext *ctx, arg_amoor_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_or_tl, (MO_ALIGN | MO_TEQ= )); } =20 static bool trans_amomin_d(DisasContext *ctx, arg_amomin_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_smin_tl, (MO_ALIGN | MO_T= EQ)); } =20 static bool trans_amomax_d(DisasContext *ctx, arg_amomax_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_smax_tl, (MO_ALIGN | MO_T= EQ)); } =20 static bool trans_amominu_d(DisasContext *ctx, arg_amominu_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_umin_tl, (MO_ALIGN | MO_T= EQ)); } =20 static bool trans_amomaxu_d(DisasContext *ctx, arg_amomaxu_d *a) { + REQUIRE_64BIT(ctx); return gen_amo(ctx, a, &tcg_gen_atomic_fetch_umax_tl, (MO_ALIGN | MO_T= EQ)); } -#endif diff --git a/target/riscv/insn_trans/trans_rvd.c.inc b/target/riscv/insn_tr= ans/trans_rvd.c.inc index 4f832637fa..7e45538ae0 100644 --- a/target/riscv/insn_trans/trans_rvd.c.inc +++ b/target/riscv/insn_trans/trans_rvd.c.inc @@ -358,10 +358,9 @@ static bool trans_fcvt_d_wu(DisasContext *ctx, arg_fcv= t_d_wu *a) return true; } =20 -#ifdef TARGET_RISCV64 - static bool trans_fcvt_l_d(DisasContext *ctx, arg_fcvt_l_d *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 @@ -375,6 +374,7 @@ static bool trans_fcvt_l_d(DisasContext *ctx, arg_fcvt_= l_d *a) =20 static bool trans_fcvt_lu_d(DisasContext *ctx, arg_fcvt_lu_d *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 @@ -388,15 +388,21 @@ static bool trans_fcvt_lu_d(DisasContext *ctx, arg_fc= vt_lu_d *a) =20 static bool trans_fmv_x_d(DisasContext *ctx, arg_fmv_x_d *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 +#ifdef TARGET_RISCV64 gen_set_gpr(a->rd, cpu_fpr[a->rs1]); return true; +#else + qemu_build_not_reached(); +#endif } =20 static bool trans_fcvt_d_l(DisasContext *ctx, arg_fcvt_d_l *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 @@ -412,6 +418,7 @@ static bool trans_fcvt_d_l(DisasContext *ctx, arg_fcvt_= d_l *a) =20 static bool trans_fcvt_d_lu(DisasContext *ctx, arg_fcvt_d_lu *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 @@ -427,9 +434,11 @@ static bool trans_fcvt_d_lu(DisasContext *ctx, arg_fcv= t_d_lu *a) =20 static bool trans_fmv_d_x(DisasContext *ctx, arg_fmv_d_x *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVD); =20 +#ifdef TARGET_RISCV64 TCGv t0 =3D tcg_temp_new(); gen_get_gpr(t0, a->rs1); =20 @@ -437,5 +446,7 @@ static bool trans_fmv_d_x(DisasContext *ctx, arg_fmv_d_= x *a) tcg_temp_free(t0); mark_fs_dirty(ctx); return true; -} +#else + qemu_build_not_reached(); #endif +} diff --git a/target/riscv/insn_trans/trans_rvf.c.inc b/target/riscv/insn_tr= ans/trans_rvf.c.inc index 3dfec8211d..db1c0c9974 100644 --- a/target/riscv/insn_trans/trans_rvf.c.inc +++ b/target/riscv/insn_trans/trans_rvf.c.inc @@ -415,9 +415,9 @@ static bool trans_fmv_w_x(DisasContext *ctx, arg_fmv_w_= x *a) return true; } =20 -#ifdef TARGET_RISCV64 static bool trans_fcvt_l_s(DisasContext *ctx, arg_fcvt_l_s *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVF); =20 @@ -431,6 +431,7 @@ static bool trans_fcvt_l_s(DisasContext *ctx, arg_fcvt_= l_s *a) =20 static bool trans_fcvt_lu_s(DisasContext *ctx, arg_fcvt_lu_s *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVF); =20 @@ -444,6 +445,7 @@ static bool trans_fcvt_lu_s(DisasContext *ctx, arg_fcvt= _lu_s *a) =20 static bool trans_fcvt_s_l(DisasContext *ctx, arg_fcvt_s_l *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVF); =20 @@ -460,6 +462,7 @@ static bool trans_fcvt_s_l(DisasContext *ctx, arg_fcvt_= s_l *a) =20 static bool trans_fcvt_s_lu(DisasContext *ctx, arg_fcvt_s_lu *a) { + REQUIRE_64BIT(ctx); REQUIRE_FPU; REQUIRE_EXT(ctx, RVF); =20 @@ -473,4 +476,3 @@ static bool trans_fcvt_s_lu(DisasContext *ctx, arg_fcvt= _s_lu *a) tcg_temp_free(t0); return true; } -#endif diff --git a/target/riscv/insn_trans/trans_rvh.c.inc b/target/riscv/insn_tr= ans/trans_rvh.c.inc index ce7ed5affb..6b5edf82b7 100644 --- a/target/riscv/insn_trans/trans_rvh.c.inc +++ b/target/riscv/insn_trans/trans_rvh.c.inc @@ -203,10 +203,11 @@ static bool trans_hsv_w(DisasContext *ctx, arg_hsv_w = *a) #endif } =20 -#ifdef TARGET_RISCV64 static bool trans_hlv_wu(DisasContext *ctx, arg_hlv_wu *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVH); + #ifndef CONFIG_USER_ONLY TCGv t0 =3D tcg_temp_new(); TCGv t1 =3D tcg_temp_new(); @@ -228,7 +229,9 @@ static bool trans_hlv_wu(DisasContext *ctx, arg_hlv_wu = *a) =20 static bool trans_hlv_d(DisasContext *ctx, arg_hlv_d *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVH); + #ifndef CONFIG_USER_ONLY TCGv t0 =3D tcg_temp_new(); TCGv t1 =3D tcg_temp_new(); @@ -250,7 +253,9 @@ static bool trans_hlv_d(DisasContext *ctx, arg_hlv_d *a) =20 static bool trans_hsv_d(DisasContext *ctx, arg_hsv_d *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVH); + #ifndef CONFIG_USER_ONLY TCGv t0 =3D tcg_temp_new(); TCGv dat =3D tcg_temp_new(); @@ -269,7 +274,6 @@ static bool trans_hsv_d(DisasContext *ctx, arg_hsv_d *a) return false; #endif } -#endif =20 static bool trans_hlvx_hu(DisasContext *ctx, arg_hlvx_hu *a) { diff --git a/target/riscv/insn_trans/trans_rvi.c.inc b/target/riscv/insn_tr= ans/trans_rvi.c.inc index d04ca0394c..1340676209 100644 --- a/target/riscv/insn_trans/trans_rvi.c.inc +++ b/target/riscv/insn_trans/trans_rvi.c.inc @@ -204,22 +204,23 @@ static bool trans_sw(DisasContext *ctx, arg_sw *a) return gen_store(ctx, a, MO_TESL); } =20 -#ifdef TARGET_RISCV64 static bool trans_lwu(DisasContext *ctx, arg_lwu *a) { + REQUIRE_64BIT(ctx); return gen_load(ctx, a, MO_TEUL); } =20 static bool trans_ld(DisasContext *ctx, arg_ld *a) { + REQUIRE_64BIT(ctx); return gen_load(ctx, a, MO_TEQ); } =20 static bool trans_sd(DisasContext *ctx, arg_sd *a) { + REQUIRE_64BIT(ctx); return gen_store(ctx, a, MO_TEQ); } -#endif =20 static bool trans_addi(DisasContext *ctx, arg_addi *a) { @@ -361,14 +362,15 @@ static bool trans_and(DisasContext *ctx, arg_and *a) return gen_arith(ctx, a, &tcg_gen_and_tl); } =20 -#ifdef TARGET_RISCV64 static bool trans_addiw(DisasContext *ctx, arg_addiw *a) { + REQUIRE_64BIT(ctx); return gen_arith_imm_tl(ctx, a, &gen_addw); } =20 static bool trans_slliw(DisasContext *ctx, arg_slliw *a) { + REQUIRE_64BIT(ctx); TCGv source1; source1 =3D tcg_temp_new(); gen_get_gpr(source1, a->rs1); @@ -383,6 +385,7 @@ static bool trans_slliw(DisasContext *ctx, arg_slliw *a) =20 static bool trans_srliw(DisasContext *ctx, arg_srliw *a) { + REQUIRE_64BIT(ctx); TCGv t =3D tcg_temp_new(); gen_get_gpr(t, a->rs1); tcg_gen_extract_tl(t, t, a->shamt, 32 - a->shamt); @@ -395,6 +398,7 @@ static bool trans_srliw(DisasContext *ctx, arg_srliw *a) =20 static bool trans_sraiw(DisasContext *ctx, arg_sraiw *a) { + REQUIRE_64BIT(ctx); TCGv t =3D tcg_temp_new(); gen_get_gpr(t, a->rs1); tcg_gen_sextract_tl(t, t, a->shamt, 32 - a->shamt); @@ -405,16 +409,19 @@ static bool trans_sraiw(DisasContext *ctx, arg_sraiw = *a) =20 static bool trans_addw(DisasContext *ctx, arg_addw *a) { + REQUIRE_64BIT(ctx); return gen_arith(ctx, a, &gen_addw); } =20 static bool trans_subw(DisasContext *ctx, arg_subw *a) { + REQUIRE_64BIT(ctx); return gen_arith(ctx, a, &gen_subw); } =20 static bool trans_sllw(DisasContext *ctx, arg_sllw *a) { + REQUIRE_64BIT(ctx); TCGv source1 =3D tcg_temp_new(); TCGv source2 =3D tcg_temp_new(); =20 @@ -433,6 +440,7 @@ static bool trans_sllw(DisasContext *ctx, arg_sllw *a) =20 static bool trans_srlw(DisasContext *ctx, arg_srlw *a) { + REQUIRE_64BIT(ctx); TCGv source1 =3D tcg_temp_new(); TCGv source2 =3D tcg_temp_new(); =20 @@ -453,6 +461,7 @@ static bool trans_srlw(DisasContext *ctx, arg_srlw *a) =20 static bool trans_sraw(DisasContext *ctx, arg_sraw *a) { + REQUIRE_64BIT(ctx); TCGv source1 =3D tcg_temp_new(); TCGv source2 =3D tcg_temp_new(); =20 @@ -473,7 +482,6 @@ static bool trans_sraw(DisasContext *ctx, arg_sraw *a) =20 return true; } -#endif =20 static bool trans_fence(DisasContext *ctx, arg_fence *a) { diff --git a/target/riscv/insn_trans/trans_rvm.c.inc b/target/riscv/insn_tr= ans/trans_rvm.c.inc index 47cd6edc72..10ecc456fc 100644 --- a/target/riscv/insn_trans/trans_rvm.c.inc +++ b/target/riscv/insn_trans/trans_rvm.c.inc @@ -87,34 +87,42 @@ static bool trans_remu(DisasContext *ctx, arg_remu *a) return gen_arith(ctx, a, &gen_remu); } =20 -#ifdef TARGET_RISCV64 static bool trans_mulw(DisasContext *ctx, arg_mulw *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVM); + return gen_arith(ctx, a, &gen_mulw); } =20 static bool trans_divw(DisasContext *ctx, arg_divw *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVM); + return gen_arith_div_w(ctx, a, &gen_div); } =20 static bool trans_divuw(DisasContext *ctx, arg_divuw *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVM); + return gen_arith_div_uw(ctx, a, &gen_divu); } =20 static bool trans_remw(DisasContext *ctx, arg_remw *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVM); + return gen_arith_div_w(ctx, a, &gen_rem); } =20 static bool trans_remuw(DisasContext *ctx, arg_remuw *a) { + REQUIRE_64BIT(ctx); REQUIRE_EXT(ctx, RVM); + return gen_arith_div_uw(ctx, a, &gen_remu); } -#endif diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_tr= ans/trans_rvv.c.inc index 887c6b8883..47914a3b69 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -705,7 +705,6 @@ static bool amo_op(DisasContext *s, arg_rwdvm *a, uint8= _t seq) gen_helper_vamominuw_v_w, gen_helper_vamomaxuw_v_w }; -#ifdef TARGET_RISCV64 static gen_helper_amo *const fnsd[18] =3D { gen_helper_vamoswapw_v_d, gen_helper_vamoaddw_v_d, @@ -726,7 +725,6 @@ static bool amo_op(DisasContext *s, arg_rwdvm *a, uint8= _t seq) gen_helper_vamominud_v_d, gen_helper_vamomaxud_v_d }; -#endif =20 if (tb_cflags(s->base.tb) & CF_PARALLEL) { gen_helper_exit_atomic(cpu_env); @@ -734,12 +732,12 @@ static bool amo_op(DisasContext *s, arg_rwdvm *a, uin= t8_t seq) return true; } else { if (s->sew =3D=3D 3) { -#ifdef TARGET_RISCV64 - fn =3D fnsd[seq]; -#else - /* Check done in amo_check(). */ - g_assert_not_reached(); -#endif + if (!is_32bit(s)) { + fn =3D fnsd[seq]; + } else { + /* Check done in amo_check(). */ + g_assert_not_reached(); + } } else { assert(seq < ARRAY_SIZE(fnsw)); fn =3D fnsw[seq]; @@ -769,6 +767,11 @@ static bool amo_check(DisasContext *s, arg_rwdvm* a) ((1 << s->sew) >=3D 4)); } =20 +static bool amo_check64(DisasContext *s, arg_rwdvm* a) +{ + return !is_32bit(s) && amo_check(s, a); +} + GEN_VEXT_TRANS(vamoswapw_v, 0, rwdvm, amo_op, amo_check) GEN_VEXT_TRANS(vamoaddw_v, 1, rwdvm, amo_op, amo_check) GEN_VEXT_TRANS(vamoxorw_v, 2, rwdvm, amo_op, amo_check) @@ -778,17 +781,15 @@ GEN_VEXT_TRANS(vamominw_v, 5, rwdvm, amo_op, amo_chec= k) GEN_VEXT_TRANS(vamomaxw_v, 6, rwdvm, amo_op, amo_check) GEN_VEXT_TRANS(vamominuw_v, 7, rwdvm, amo_op, amo_check) GEN_VEXT_TRANS(vamomaxuw_v, 8, rwdvm, amo_op, amo_check) -#ifdef TARGET_RISCV64 -GEN_VEXT_TRANS(vamoswapd_v, 9, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamoaddd_v, 10, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamoxord_v, 11, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamoandd_v, 12, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamoord_v, 13, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamomind_v, 14, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamomaxd_v, 15, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamominud_v, 16, rwdvm, amo_op, amo_check) -GEN_VEXT_TRANS(vamomaxud_v, 17, rwdvm, amo_op, amo_check) -#endif +GEN_VEXT_TRANS(vamoswapd_v, 9, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamoaddd_v, 10, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamoxord_v, 11, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamoandd_v, 12, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamoord_v, 13, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamomind_v, 14, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamomaxd_v, 15, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamominud_v, 16, rwdvm, amo_op, amo_check64) +GEN_VEXT_TRANS(vamomaxud_v, 17, rwdvm, amo_op, amo_check64) =20 /* *** Vector Integer Arithmetic Instructions diff --git a/target/riscv/meson.build b/target/riscv/meson.build index 88ab850682..24bf049164 100644 --- a/target/riscv/meson.build +++ b/target/riscv/meson.build @@ -7,7 +7,7 @@ gen32 =3D [ =20 gen64 =3D [ decodetree.process('insn16.decode', extra_args: [dir / 'insn16-64.decode= ', '--static-decode=3Ddecode_insn16', '--insnwidth=3D16']), - decodetree.process('insn32.decode', extra_args: [dir / 'insn32-64.decode= ', '--static-decode=3Ddecode_insn32']), + decodetree.process('insn32.decode', extra_args: '--static-decode=3Ddecod= e_insn32'), ] =20 riscv_ss =3D ss.source_set() --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620082943; cv=none; d=zohomail.com; s=zohoarc; b=SUEEynqXPFPI3F2ZB1k5Z5MyWs6MqX0xqaVMNOByAaIYcw/nVxTW77g3GHkAEPI6lk6duK3FdkU76e6JahSf1+OhaL0e6r7Mr5VVoGGbbMP/ppWyVImNHQT65+LSnez4MB+4+8lhhP9iJsirRbtEi73cm23awXaofBfwYHk1Nhc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620082943; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=vPqm/tJEhGHoNNrLu8oFJ934KbO3WFO1XRnnvg2ksL4=; b=QT7H+BOoec72fstyO3Mo5gJZf8FDqNcUuRUsbslYiVo0KvvJ44jsE8OkRQY9ARw5eHirU0T8oOShJ8KObDvVufkKGf6XQeQUyCwYXnMcBuNzMhKoyesp279FlyjwsDZk3xvW2uhNWsyPjMcgqp9ZttNJsEOyhPF3RLyLFVySpR0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620082943759339.75480882108525; Mon, 3 May 2021 16:02:23 -0700 (PDT) Received: from localhost ([::1]:55886 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldha2-00050q-Bk for importer@patchew.org; Mon, 03 May 2021 19:02:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53740) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgsA-0007An-RL for qemu-devel@nongnu.org; Mon, 03 May 2021 18:17:03 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgs3-0000ID-F1 for qemu-devel@nongnu.org; Mon, 03 May 2021 18:17:02 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:55 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:56:06 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:53 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080215; x=1651616215; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=HhXS6Fd5kQIv7sJJfl/l66LLxPEJxvVRkO3qUYKWd2Q=; b=ZoIbN7M688fy2no3mV3GnY9UFIdoIYPnkyoFFFYIADoV9PghDpOfhkdV 1yxRNVGc0TppoFg6lfj6O/ShG9lRpTdiCm/JtzEXwkzyoZix8omRPTx1d HwJgGBTHQ+FLO0MhDltMjIAHq/gKk/O1UfceMTxwGnoSYEel1WppSd1y7 ODiioCEp/h3Eb4vooxdqkP361qn2tnXfeJPcURQiPz+Tdu28YsteF3945 Bd3HcMzrDh2xmzWf8GM/CSX74Nki0vwDXWpxOi2keSNeVozbpkGviHon1 l2FRAymZlr9NJY1geEdR9gW5GK6ZRWKxA+nK9E0OsRPTQ36ilXiMehSeU w==; IronPort-SDR: TBssoAw3TKd+uIsdj3TWsto4magXE5Jv1/L05lekmLz/H7gxGbGPooQCftSzcVvW+i6tRqpHv3 s+3SichqedUE0H8aHFjDhkNd1SOFjDtybV9z4il0Ds3oiEZGK9XE4sHr8+mFuxPvQGKx7xy5yW 7IVI16UDQ+/FC2X00K4r2uGnCmjZo1aVocXl8kC5h/OZUM9QO1lL74uy0NJrTdE65at23TDQ3S tVbdRsXEbxDqyDmj9DE6ZZBZGchpV5KB1eboMx33J282L1ferLTYNX8H+SWEZ8ItW2kahylamA b08= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114719" IronPort-SDR: iI6YZrsdHUaIOFMY1ZaIfzTHVrAQ6QdEzZHEVs/paLFsN9RQAahGQMIfBrgj6i30u+zOzcMnss A/gSCpORK30eW7t+vgdsfI7MZqrwcWL0U9hjk7+1aOLGLfkEAUoWBqWxHcoUh/AF++6LgYAOcI XPH7bnvd6xnaRE7JGwARQ8aDcHO0HN3yQZ9wbjbleK2csFaaS3ZqlyJC+lm29IUBlK/OBgoOJt W8F1lpsl8sWCcA4+/H78EzyMwb0X2ij6PZgIFiV4sLo6OHG9ib4dFZtA3LQLVCpz3nnEV8/Iq5 tGr9U2v1CNhnug1JgE8CdPJn IronPort-SDR: sMjtuveRguAzm76zSwHQ9qX97+ywbLWf9a7FaY4akSmlTZEo9rj6JiVrqXxAB411j2q7XnOsPU Da1AmsNGvaarTNe76uS4/Q//ZRKX49hOhwGzK3fdFYXev6J6v6KI/1uJdcCDJt9Gl5deFCgyaf VxGZxfHh1PCYLPhg1faMQe7ymQW1OTNoNHXltVZqwqxKM+ehAeTZA1T+p5L13dGI4EArJRq4pJ Oq0LNj1nmtvvwACW9Zxsa8Wmj+CGxku6OjhDXhkK8n+jkG7GmV2uQDosRhYvcrNCjzA2TWHwZN FYg= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 41/42] target/riscv: Consolidate RV32/64 16-bit instructions Date: Tue, 4 May 2021 08:13:26 +1000 Message-Id: <20210503221327.3068768-42-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" This patch removes the insn16-32.decode and insn16-64.decode decode files and consolidates the instructions into the general RISC-V insn16.decode decode tree. This means that all of the instructions are avaliable in both the 32-bit and 64-bit builds. This also means that we run a check to ensure we are running a 64-bit softmmu before we execute the 64-bit only instructions. This allows us to include the 32-bit instructions in the 64-bit build, while also ensuring that 32-bit only software can not execute the instructions. Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Message-id: 01e2b0efeae311adc7ebf133c2cde6a7a37224d7.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/insn16-32.decode | 28 ------------------- target/riscv/insn16-64.decode | 36 ------------------------- target/riscv/insn16.decode | 30 +++++++++++++++++++++ target/riscv/insn_trans/trans_rvi.c.inc | 6 +++++ target/riscv/meson.build | 11 +++----- 5 files changed, 39 insertions(+), 72 deletions(-) delete mode 100644 target/riscv/insn16-32.decode delete mode 100644 target/riscv/insn16-64.decode diff --git a/target/riscv/insn16-32.decode b/target/riscv/insn16-32.decode deleted file mode 100644 index 0819b17028..0000000000 --- a/target/riscv/insn16-32.decode +++ /dev/null @@ -1,28 +0,0 @@ -# -# RISC-V translation routines for the RVXI Base Integer Instruction Set. -# -# Copyright (c) 2018 Peer Adelt, peer.adelt@hni.uni-paderborn.de -# Bastian Koppelmann, kbastian@mail.uni-paderborn.de -# -# 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 for -# more details. -# -# You should have received a copy of the GNU General Public License along = with -# this program. If not, see . - -# *** RV32C Standard Extension (Quadrant 0) *** -flw 011 ... ... .. ... 00 @cl_w -fsw 111 ... ... .. ... 00 @cs_w - -# *** RV32C Standard Extension (Quadrant 1) *** -jal 001 ........... 01 @cj rd=3D1 # C.JAL - -# *** RV32C Standard Extension (Quadrant 2) *** -flw 011 . ..... ..... 10 @c_lwsp -fsw 111 . ..... ..... 10 @c_swsp diff --git a/target/riscv/insn16-64.decode b/target/riscv/insn16-64.decode deleted file mode 100644 index 672e1e916f..0000000000 --- a/target/riscv/insn16-64.decode +++ /dev/null @@ -1,36 +0,0 @@ -# -# RISC-V translation routines for the RVXI Base Integer Instruction Set. -# -# Copyright (c) 2018 Peer Adelt, peer.adelt@hni.uni-paderborn.de -# Bastian Koppelmann, kbastian@mail.uni-paderborn.de -# -# 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 for -# more details. -# -# You should have received a copy of the GNU General Public License along = with -# this program. If not, see . - -# *** RV64C Standard Extension (Quadrant 0) *** -ld 011 ... ... .. ... 00 @cl_d -sd 111 ... ... .. ... 00 @cs_d - -# *** RV64C Standard Extension (Quadrant 1) *** -{ - illegal 001 - 00000 ----- 01 # c.addiw, RES rd=3D0 - addiw 001 . ..... ..... 01 @ci -} -subw 100 1 11 ... 00 ... 01 @cs_2 -addw 100 1 11 ... 01 ... 01 @cs_2 - -# *** RV64C Standard Extension (Quadrant 2) *** -{ - illegal 011 - 00000 ----- 10 # c.ldsp, RES rd=3D0 - ld 011 . ..... ..... 10 @c_ldsp -} -sd 111 . ..... ..... 10 @c_sdsp diff --git a/target/riscv/insn16.decode b/target/riscv/insn16.decode index 1cb93876fe..2e9212663c 100644 --- a/target/riscv/insn16.decode +++ b/target/riscv/insn16.decode @@ -92,6 +92,16 @@ lw 010 ... ... .. ... 00 @cl_w fsd 101 ... ... .. ... 00 @cs_d sw 110 ... ... .. ... 00 @cs_w =20 +# *** RV32C and RV64C specific Standard Extension (Quadrant 0) *** +{ + ld 011 ... ... .. ... 00 @cl_d + flw 011 ... ... .. ... 00 @cl_w +} +{ + sd 111 ... ... .. ... 00 @cs_d + fsw 111 ... ... .. ... 00 @cs_w +} + # *** RV32/64C Standard Extension (Quadrant 1) *** addi 000 . ..... ..... 01 @ci addi 010 . ..... ..... 01 @c_li @@ -111,6 +121,15 @@ jal 101 ........... 01 @cj rd=3D0= # C.J beq 110 ... ... ..... 01 @cb_z bne 111 ... ... ..... 01 @cb_z =20 +# *** RV64C and RV32C specific Standard Extension (Quadrant 1) *** +{ + c64_illegal 001 - 00000 ----- 01 # c.addiw, RES rd=3D0 + addiw 001 . ..... ..... 01 @ci + jal 001 ........... 01 @cj rd=3D1 # C.JAL +} +subw 100 1 11 ... 00 ... 01 @cs_2 +addw 100 1 11 ... 01 ... 01 @cs_2 + # *** RV32/64C Standard Extension (Quadrant 2) *** slli 000 . ..... ..... 10 @c_shift2 fld 001 . ..... ..... 10 @c_ldsp @@ -130,3 +149,14 @@ fld 001 . ..... ..... 10 @c_ldsp } fsd 101 ...... ..... 10 @c_sdsp sw 110 . ..... ..... 10 @c_swsp + +# *** RV32C and RV64C specific Standard Extension (Quadrant 2) *** +{ + c64_illegal 011 - 00000 ----- 10 # c.ldsp, RES rd=3D0 + ld 011 . ..... ..... 10 @c_ldsp + flw 011 . ..... ..... 10 @c_lwsp +} +{ + sd 111 . ..... ..... 10 @c_sdsp + fsw 111 . ..... ..... 10 @c_swsp +} diff --git a/target/riscv/insn_trans/trans_rvi.c.inc b/target/riscv/insn_tr= ans/trans_rvi.c.inc index 1340676209..bd93f634cf 100644 --- a/target/riscv/insn_trans/trans_rvi.c.inc +++ b/target/riscv/insn_trans/trans_rvi.c.inc @@ -24,6 +24,12 @@ static bool trans_illegal(DisasContext *ctx, arg_empty *= a) return true; } =20 +static bool trans_c64_illegal(DisasContext *ctx, arg_empty *a) +{ + REQUIRE_64BIT(ctx); + return trans_illegal(ctx, a); +} + static bool trans_lui(DisasContext *ctx, arg_lui *a) { if (a->rd !=3D 0) { diff --git a/target/riscv/meson.build b/target/riscv/meson.build index 24bf049164..af6c3416b7 100644 --- a/target/riscv/meson.build +++ b/target/riscv/meson.build @@ -1,18 +1,13 @@ # FIXME extra_args should accept files() dir =3D meson.current_source_dir() -gen32 =3D [ - decodetree.process('insn16.decode', extra_args: [dir / 'insn16-32.decode= ', '--static-decode=3Ddecode_insn16', '--insnwidth=3D16']), - decodetree.process('insn32.decode', extra_args: '--static-decode=3Ddecod= e_insn32'), -] =20 -gen64 =3D [ - decodetree.process('insn16.decode', extra_args: [dir / 'insn16-64.decode= ', '--static-decode=3Ddecode_insn16', '--insnwidth=3D16']), +gen =3D [ + decodetree.process('insn16.decode', extra_args: ['--static-decode=3Ddeco= de_insn16', '--insnwidth=3D16']), decodetree.process('insn32.decode', extra_args: '--static-decode=3Ddecod= e_insn32'), ] =20 riscv_ss =3D ss.source_set() -riscv_ss.add(when: 'TARGET_RISCV32', if_true: gen32) -riscv_ss.add(when: 'TARGET_RISCV64', if_true: gen64) +riscv_ss.add(gen) riscv_ss.add(files( 'cpu.c', 'cpu_helper.c', --=20 2.31.1 From nobody Sat Apr 20 05:30:31 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail header.i=@wdc.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=none dis=none) header.from=wdc.com ARC-Seal: i=1; a=rsa-sha256; t=1620083095; cv=none; d=zohomail.com; s=zohoarc; b=LvMDEL8YpmAu5DtVRNHiLrcDTT3Plzfjgwt/H0bvGALPT+0b4WJttViIQFTQfLav+RpiUklIsxiPy58pGGbEC2zsJvcijlRrI31oCvCJRIRJlM0Cq9w9Ibkeon76Zgsp9gCiI4whWz9HdjbI7OM3UDm9F18nG1V+QLNdlQUrltE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1620083095; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=MosmgposajSZc14tflH7sNSCuACvcFJXEFRrZ4DwRyE=; b=UWJrr91ytxgYIchPshGRnNUddTS/qrQNqNROpBij8yWbR2FiZJQIlz6BeVZERR9kIZ02gTr9qDVDyV4VFgrrSqU+pCHhBtDL8e7xBptZ9k5ma1nXB0szZwUVeGopFiYzLwwtR97ArT8wFPxfcPl6HJBvbEd/fKZmsAl4frP+spk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail header.i=@wdc.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 header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1620083095706983.4067605270488; Mon, 3 May 2021 16:04:55 -0700 (PDT) Received: from localhost ([::1]:34342 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldhcT-0007qv-Ue for importer@patchew.org; Mon, 03 May 2021 19:04:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53742) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgsB-0007Ao-4v for qemu-devel@nongnu.org; Mon, 03 May 2021 18:17:03 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:28411) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldgs9-0000Lb-7H for qemu-devel@nongnu.org; Mon, 03 May 2021 18:17:02 -0400 Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 04 May 2021 06:15:58 +0800 Received: from uls-op-cesaip01.wdc.com ([10.248.3.36]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 May 2021 14:56:09 -0700 Received: from unknown (HELO alistair-risc6-laptop.wdc.com) ([10.225.165.45]) by uls-op-cesaip01.wdc.com with ESMTP; 03 May 2021 15:15:56 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1620080221; x=1651616221; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Hm1PZz5zTe2h985zHWYZPUO7Ex1Xb0pRXXDGBKNcQMc=; b=IU43c+1R28E+/K0n+Ycz/E5mh7vDIOnb9rV64YrBHYCEyhzA6u2DJEVS RsXZkIn4GmxRl4qtHZchWp11QTqZqQpMZPjnoDfzlcGycma9hFlrtHTlv 1h1XAfDJYMBm2nk4sl7geRaOpTs849GvrTjgIHnL8Q/tL175/JR7HSo6Q n4X4ml+xlIaNjTC3zW4Kl39oIHB0W5wOXc19ATc8dBxC2ePABfzg1fbHo ZX59Lndbft8x3J/Mv8a9hZKQRrjf4FFpxS52rAeWzLJGrmQMHyv99Z3ap utYcn8UsJe6VgpS0h/eF2HgfVTaL8ZfuSGn7ODR0sJxckjJEWYzuj9gfi A==; IronPort-SDR: 3euN8pvkbg0oquPHK+SJ5MvfE/ejhPwvhroAuCLvzzYmtyPwd4OP/+WsWSYZ8VX3hRVgwfl2zQ SVbd1W1sOH0aLt0OYh3eSOtc5a/tY63TvHOga+v9TgYQbXFzRzY6a3CEyCdgV2P14a5X9HOLZC TbbZ+6jf6JWiW619uUt5aYNLc5O2TQaUzWzltjFBrAL/AQuojn6J1kjLck7T2/W159XqzErtxp whGhcC0LQyk9VhkuJME3Tsct1J0B/4TrWQRTAXzc23maFY8eoGNMQ5s25QeyX32nrwbCnDR6Lt wn4= X-IronPort-AV: E=Sophos;i="5.82,271,1613404800"; d="scan'208";a="278114721" IronPort-SDR: hkMrADXNwlYBxYtVA7tjr+T06nMBYSbOyq2hRt+vuNoXNre1o5mBr5YuPmHZx9/qfKDE5r/Cgf NScxCJ5clASmseLViU3tK7g4WsWDPasW4v2Qf+mzTX9hC8X8bpbLp8MwmyQ8FsyjAxQhEoDGhx v8tHbC4EYdIQaFLoZ0AUw/QZzyB/8lbPmzat5L+tRby0uyr/8LHEOl7FKIxw4TRdp2IVPZX9mI qkZckeh4fzi6CV+Wc8KBFg2E0hmaZiY7I5Mxh0E3vuNlO+yphVfafJGCNtggOCAmCJWLN8WA5h TvTLJBXlcY9WGFqJmFA5B5GF IronPort-SDR: ++QhN2ZPLRpWzGIAHl6GPxCRE7e29Qx5Oi3vwbckIWwMvE5lCx5mh/57wi6/FF16CPgKAtovTp CkCJjeVUKH0A3OyWlb9TOxAP0cdhtymKk8Ssan4r3S72xuKH2QBlvyS1oL9tFAdX4FAh9w2YRS LpEzLhgyPMabOm6GdpgO6zNVLgEocWlbITDmRj0byok5RFg2SduuFddW9hBzi6g9zLfY4CoseO DzBSmmDlYqUdKEpf8igZzHsrNwMTElsgZcTHmlwOgDTByT6yQKrDp5gkX1k5fkz2ml+sVFxHjp pNA= WDCIronportException: Internal From: Alistair Francis To: peter.maydell@linaro.org Subject: [PULL 42/42] target/riscv: Fix the RV64H decode comment Date: Tue, 4 May 2021 08:13:27 +1000 Message-Id: <20210503221327.3068768-43-alistair.francis@wdc.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210503221327.3068768-1-alistair.francis@wdc.com> References: <20210503221327.3068768-1-alistair.francis@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.141.245; envelope-from=prvs=750139ea6=alistair.francis@wdc.com; helo=esa1.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.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alistair23@gmail.com, Richard Henderson , Alistair Francis , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" BugLink: https://gitlab.com/qemu-project/qemu/-/issues/47 Signed-off-by: Alistair Francis Reviewed-by: Richard Henderson Message-id: 024ce841221c1d15c74b253512428c4baca7e4ba.1619234854.git.alistai= r.francis@wdc.com --- target/riscv/insn32.decode | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode index fecf0f15d5..8901ba1e1b 100644 --- a/target/riscv/insn32.decode +++ b/target/riscv/insn32.decode @@ -288,7 +288,7 @@ hsv_w 0110101 ..... ..... 100 00000 1110011 @r2= _s hfence_gvma 0110001 ..... ..... 000 00000 1110011 @hfence_gvma hfence_vvma 0010001 ..... ..... 000 00000 1110011 @hfence_vvma =20 -# *** RV32H Base Instruction Set *** +# *** RV64H Base Instruction Set *** hlv_wu 0110100 00001 ..... 100 ..... 1110011 @r2 hlv_d 0110110 00000 ..... 100 ..... 1110011 @r2 hsv_d 0110111 ..... ..... 100 00000 1110011 @r2_s --=20 2.31.1