All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 00/22] Sixth RISC-V PR for 8.0
@ 2023-03-06 22:02 Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 01/22] target/riscv: implement Zicboz extension Palmer Dabbelt
                   ` (22 more replies)
  0 siblings, 23 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-riscv, qemu-devel

The following changes since commit 2946e1af2704bf6584f57d4e3aec49d1d5f3ecc0:

  configure: Disable thread-safety warnings on macOS (2023-03-04 14:03:46 +0000)

are available in the Git repository at:

  https://gitlab.com/palmer-dabbelt/qemu.git tags/pull-riscv-to-apply-20230306

for you to fetch changes up to 47fc340010335bc2549bc1f07e5fd85d86a2b9f9:

  MAINTAINERS: Add entry for RISC-V ACPI (2023-03-06 11:35:08 -0800)

----------------------------------------------------------------
Sixth RISC-V PR for 8.0

* Support for the Zicbiom, ZCicboz, and Zicbop extensions.
* OpenSBI has been updated to version 1.2, see
  <https://github.com/riscv-software-src/opensbi/releases/tag/v1.2> for
  the release notes.
* Support for setting the virtual address width (ie, sv39/sv48/sv57) on
  the command line.
* Support for ACPI on RISC-V.

----------------------------------------------------------------
Sorry for the flurry of late pull requests, but we had a few stragglers
(ACPI due to reviews and OpenSBI due to the CI failures, the others I'd
largely just missed).  I don't intend on sending anything else for the
soft freeze, this is already well past late enough for me ;)

I'm not exactly sure what happened, but this tag managed to pass CI
<https://gitlab.com/palmer-dabbelt/qemu/-/pipelines/797833683> despite
me not really doing anything to fix the timeouts -- hopefully that was
just a result of me having gotten unlucky or missing a larger timeout in
my fork, but sorry if I've managed to screw something up.

I have no merge conflicts and the tests are passing locally.  I've got a
CI run here
<https://gitlab.com/palmer-dabbelt/qemu/-/pipelines/797922220>, but I
figured I'd just send this now given that I had one pass from just the
tag.

----------------------------------------------------------------
Alexandre Ghiti (5):
      riscv: Pass Object to register_cpu_props instead of DeviceState
      riscv: Change type of valid_vm_1_10_[32|64] to bool
      riscv: Allow user to set the satp mode
      riscv: Introduce satp mode hw capabilities
      riscv: Correctly set the device-tree entry 'mmu-type'

Anup Patel (1):
      hw/riscv/virt.c: add cbo[mz]-block-size fdt properties

Bin Meng (1):
      roms/opensbi: Upgrade from v1.1 to v1.2

Christoph Muellner (3):
      target/riscv: implement Zicboz extension
      target/riscv: implement Zicbom extension
      target/riscv: add Zicbop cbo.prefetch{i, r, m} placeholder

Ivan Klokov (1):
      disas/riscv Fix ctzw disassemble

Mayuresh Chitale (2):
      target/riscv: cpu: Implement get_arch_id callback
      hw: intc: Use cpu_by_arch_id to fetch CPU state

Palmer Dabbelt (1):
      gitlab/opensbi: Move to docker:stable

Sunil V L (8):
      hw/riscv/virt: Add OEM_ID and OEM_TABLE_ID fields
      hw/riscv/virt: Add a switch to disable ACPI
      hw/riscv/virt: Add memmap pointer to RiscVVirtState
      hw/riscv/virt: Enable basic ACPI infrastructure
      hw/riscv/virt: virt-acpi-build.c: Add RINTC in MADT
      hw/riscv/virt: virt-acpi-build.c: Add RHCT Table
      hw/riscv/virt.c: Initialize the ACPI tables
      MAINTAINERS: Add entry for RISC-V ACPI

 .gitlab-ci.d/opensbi.yml                       |   4 +-
 .gitlab-ci.d/opensbi/Dockerfile                |   1 +
 MAINTAINERS                                    |  18 +-
 disas/riscv.c                                  |   2 +-
 hw/intc/riscv_aclint.c                         |  16 +-
 hw/intc/riscv_aplic.c                          |   4 +-
 hw/intc/riscv_imsic.c                          |   6 +-
 hw/riscv/Kconfig                               |   1 +
 hw/riscv/meson.build                           |   1 +
 hw/riscv/virt-acpi-build.c                     | 416 +++++++++++++++++++++++++
 hw/riscv/virt.c                                |  70 ++++-
 include/hw/riscv/virt.h                        |   6 +
 pc-bios/opensbi-riscv32-generic-fw_dynamic.bin | Bin 117704 -> 123072 bytes
 pc-bios/opensbi-riscv64-generic-fw_dynamic.bin | Bin 115344 -> 121800 bytes
 roms/opensbi                                   |   2 +-
 target/riscv/cpu.c                             | 303 +++++++++++++++++-
 target/riscv/cpu.h                             |  29 ++
 target/riscv/csr.c                             |  29 +-
 target/riscv/helper.h                          |   5 +
 target/riscv/insn32.decode                     |  16 +-
 target/riscv/insn_trans/trans_rvzicbo.c.inc    |  57 ++++
 target/riscv/op_helper.c                       | 135 ++++++++
 target/riscv/translate.c                       |   1 +
 23 files changed, 1061 insertions(+), 61 deletions(-)
 create mode 100644 hw/riscv/virt-acpi-build.c
 create mode 100644 target/riscv/insn_trans/trans_rvzicbo.c.inc



^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PULL 01/22] target/riscv: implement Zicboz extension
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 02/22] target/riscv: implement Zicbom extension Palmer Dabbelt
                   ` (21 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Christoph Muellner, Richard Henderson,
	Philipp Tomsich, Daniel Henrique Barboza, Weiwei Li,
	Palmer Dabbelt

From: Christoph Muellner <cmuellner@linux.com>

The RISC-V base cache management operation (CBO) ISA extension has been
ratified. It defines three extensions: Cache-Block Management, Cache-Block
Prefetch and Cache-Block Zero. More information about the spec can be
found at [1].

Let's start by implementing the Cache-Block Zero extension, Zicboz. It
uses the cbo.zero instruction that, as with all CBO instructions that
will be added later, needs to be implemented in an overlap group with
the LQ instruction due to overlapping patterns.

cbo.zero throws a Illegal Instruction/Virtual Instruction exception
depending on CSR state. This is also the case for the remaining cbo
instructions we're going to add next, so create a check_zicbo_envcfg()
that will be used by all Zicbo[mz] instructions.

[1] https://github.com/riscv/riscv-CMOs/blob/master/specifications/cmobase-v1.0.1.pdf

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Co-developed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
Signed-off-by: Christoph Muellner <cmuellner@linux.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn>
Message-ID: <20230224132536.552293-3-dbarboza@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c                          |  4 ++
 target/riscv/cpu.h                          |  2 +
 target/riscv/helper.h                       |  3 +
 target/riscv/insn32.decode                  | 10 ++-
 target/riscv/insn_trans/trans_rvzicbo.c.inc | 30 +++++++++
 target/riscv/op_helper.c                    | 68 +++++++++++++++++++++
 target/riscv/translate.c                    |  1 +
 7 files changed, 117 insertions(+), 1 deletion(-)
 create mode 100644 target/riscv/insn_trans/trans_rvzicbo.c.inc

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 5bc0005cc7..ab6c127859 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -75,6 +75,7 @@ struct isa_ext_data {
 static const struct isa_ext_data isa_edata_arr[] = {
     ISA_EXT_DATA_ENTRY(h, false, PRIV_VERSION_1_12_0, ext_h),
     ISA_EXT_DATA_ENTRY(v, false, PRIV_VERSION_1_10_0, ext_v),
+    ISA_EXT_DATA_ENTRY(zicboz, true, PRIV_VERSION_1_12_0, ext_icboz),
     ISA_EXT_DATA_ENTRY(zicond, true, PRIV_VERSION_1_12_0, ext_zicond),
     ISA_EXT_DATA_ENTRY(zicsr, true, PRIV_VERSION_1_10_0, ext_icsr),
     ISA_EXT_DATA_ENTRY(zifencei, true, PRIV_VERSION_1_10_0, ext_ifencei),
@@ -1167,6 +1168,9 @@ static Property riscv_cpu_extensions[] = {
     DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false),
     DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false),
 
+    DEFINE_PROP_BOOL("zicboz", RISCVCPU, cfg.ext_icboz, true),
+    DEFINE_PROP_UINT16("cboz_blocksize", RISCVCPU, cfg.cboz_blocksize, 64),
+
     DEFINE_PROP_BOOL("zmmul", RISCVCPU, cfg.ext_zmmul, false),
 
     /* Vendor-specific custom extensions */
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index 665b4c60b0..73c9832fb7 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -434,6 +434,7 @@ struct RISCVCPUConfig {
     bool ext_zkt;
     bool ext_ifencei;
     bool ext_icsr;
+    bool ext_icboz;
     bool ext_zicond;
     bool ext_zihintpause;
     bool ext_smstateen;
@@ -486,6 +487,7 @@ struct RISCVCPUConfig {
     char *vext_spec;
     uint16_t vlen;
     uint16_t elen;
+    uint16_t cboz_blocksize;
     bool mmu;
     bool pmp;
     bool epmp;
diff --git a/target/riscv/helper.h b/target/riscv/helper.h
index 0497370afd..ce165821b8 100644
--- a/target/riscv/helper.h
+++ b/target/riscv/helper.h
@@ -97,6 +97,9 @@ DEF_HELPER_FLAGS_2(fcvt_h_l, TCG_CALL_NO_RWG, i64, env, tl)
 DEF_HELPER_FLAGS_2(fcvt_h_lu, TCG_CALL_NO_RWG, i64, env, tl)
 DEF_HELPER_FLAGS_2(fclass_h, TCG_CALL_NO_RWG_SE, tl, env, i64)
 
+/* Cache-block operations */
+DEF_HELPER_2(cbo_zero, void, env, tl)
+
 /* Special functions */
 DEF_HELPER_2(csrr, tl, env, int)
 DEF_HELPER_3(csrw, void, env, int, tl)
diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode
index fb537e922e..a471adcea0 100644
--- a/target/riscv/insn32.decode
+++ b/target/riscv/insn32.decode
@@ -179,7 +179,15 @@ sraw     0100000 .....  ..... 101 ..... 0111011 @r
 
 # *** RV128I Base Instruction Set (in addition to RV64I) ***
 ldu      ............   ..... 111 ..... 0000011 @i
-lq       ............   ..... 010 ..... 0001111 @i
+{
+  [
+    # *** RV32 Zicboz Standard Extension ***
+    cbo_zero   0000000 00100 ..... 010 00000 0001111 @sfence_vm
+  ]
+
+  # *** RVI128 lq ***
+  lq       ............   ..... 010 ..... 0001111 @i
+}
 sq       ............   ..... 100 ..... 0100011 @s
 addid    ............  .....  000 ..... 1011011 @i
 sllid    000000 ......  ..... 001 ..... 1011011 @sh6
diff --git a/target/riscv/insn_trans/trans_rvzicbo.c.inc b/target/riscv/insn_trans/trans_rvzicbo.c.inc
new file mode 100644
index 0000000000..feabc28342
--- /dev/null
+++ b/target/riscv/insn_trans/trans_rvzicbo.c.inc
@@ -0,0 +1,30 @@
+/*
+ * RISC-V translation routines for the RISC-V CBO Extension.
+ *
+ * Copyright (c) 2021 Philipp Tomsich, philipp.tomsich@vrull.eu
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#define REQUIRE_ZICBOZ(ctx) do {    \
+    if (!ctx->cfg_ptr->ext_icboz) { \
+        return false;               \
+    }                               \
+} while (0)
+
+static bool trans_cbo_zero(DisasContext *ctx, arg_cbo_zero *a)
+{
+    REQUIRE_ZICBOZ(ctx);
+    gen_helper_cbo_zero(cpu_env, cpu_gpr[a->rs1]);
+    return true;
+}
diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c
index 9c0b91c88f..d0217b6a98 100644
--- a/target/riscv/op_helper.c
+++ b/target/riscv/op_helper.c
@@ -3,6 +3,7 @@
  *
  * Copyright (c) 2016-2017 Sagar Karandikar, sagark@eecs.berkeley.edu
  * Copyright (c) 2017-2018 SiFive, Inc.
+ * Copyright (c) 2022      VRULL GmbH
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
@@ -123,6 +124,73 @@ target_ulong helper_csrrw_i128(CPURISCVState *env, int csr,
     return int128_getlo(rv);
 }
 
+
+/*
+ * check_zicbo_envcfg
+ *
+ * Raise virtual exceptions and illegal instruction exceptions for
+ * Zicbo[mz] instructions based on the settings of [mhs]envcfg as
+ * specified in section 2.5.1 of the CMO specification.
+ */
+static void check_zicbo_envcfg(CPURISCVState *env, target_ulong envbits,
+                                uintptr_t ra)
+{
+#ifndef CONFIG_USER_ONLY
+    if ((env->priv < PRV_M) && !get_field(env->menvcfg, envbits)) {
+        riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, ra);
+    }
+
+    if (riscv_cpu_virt_enabled(env) &&
+        (((env->priv < PRV_H) && !get_field(env->henvcfg, envbits)) ||
+         ((env->priv < PRV_S) && !get_field(env->senvcfg, envbits)))) {
+        riscv_raise_exception(env, RISCV_EXCP_VIRT_INSTRUCTION_FAULT, ra);
+    }
+
+    if ((env->priv < PRV_S) && !get_field(env->senvcfg, envbits)) {
+        riscv_raise_exception(env, RISCV_EXCP_ILLEGAL_INST, ra);
+    }
+#endif
+}
+
+void helper_cbo_zero(CPURISCVState *env, target_ulong address)
+{
+    RISCVCPU *cpu = env_archcpu(env);
+    uint16_t cbozlen = cpu->cfg.cboz_blocksize;
+    int mmu_idx = cpu_mmu_index(env, false);
+    uintptr_t ra = GETPC();
+    void *mem;
+
+    check_zicbo_envcfg(env, MENVCFG_CBZE, ra);
+
+    /* Mask off low-bits to align-down to the cache-block. */
+    address &= ~(cbozlen - 1);
+
+    /*
+     * cbo.zero requires MMU_DATA_STORE access. Do a probe_write()
+     * to raise any exceptions, including PMP.
+     */
+    mem = probe_write(env, address, cbozlen, mmu_idx, ra);
+
+    if (likely(mem)) {
+        memset(mem, 0, cbozlen);
+    } else {
+        /*
+         * This means that we're dealing with an I/O page. Section 4.2
+         * of cmobase v1.0.1 says:
+         *
+         * "Cache-block zero instructions store zeros independently
+         * of whether data from the underlying memory locations are
+         * cacheable."
+         *
+         * Write zeros in address + cbozlen regardless of not being
+         * a RAM page.
+         */
+        for (int i = 0; i < cbozlen; i++) {
+            cpu_stb_mmuidx_ra(env, address + i, 0, mmu_idx, ra);
+        }
+    }
+}
+
 #ifndef CONFIG_USER_ONLY
 
 target_ulong helper_sret(CPURISCVState *env)
diff --git a/target/riscv/translate.c b/target/riscv/translate.c
index a8d516ca3e..fa8bd79cef 100644
--- a/target/riscv/translate.c
+++ b/target/riscv/translate.c
@@ -1105,6 +1105,7 @@ static uint32_t opcode_at(DisasContextBase *dcbase, target_ulong pc)
 #include "insn_trans/trans_rvb.c.inc"
 #include "insn_trans/trans_rvzicond.c.inc"
 #include "insn_trans/trans_rvzawrs.c.inc"
+#include "insn_trans/trans_rvzicbo.c.inc"
 #include "insn_trans/trans_rvzfh.c.inc"
 #include "insn_trans/trans_rvk.c.inc"
 #include "insn_trans/trans_privileged.c.inc"
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 02/22] target/riscv: implement Zicbom extension
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 01/22] target/riscv: implement Zicboz extension Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 03/22] target/riscv: add Zicbop cbo.prefetch{i, r, m} placeholder Palmer Dabbelt
                   ` (20 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Christoph Muellner, Richard Henderson,
	Weiwei Li, Philipp Tomsich, Daniel Henrique Barboza,
	Palmer Dabbelt

From: Christoph Muellner <cmuellner@linux.com>

Zicbom is the Cache-Block Management extension defined in the already
ratified RISC-V Base Cache Management Operation (CBO) ISA extension [1].

The extension contains three instructions: cbo.clean, cbo.flush and
cbo.inval. All of them must be implemented in the same group as LQ and
cbo.zero due to overlapping patterns.

All these instructions can throw a Illegal Instruction/Virtual
Instruction exception, similar to the existing cbo.zero. The same
check_zicbo_envcfg() is used to handle these exceptions.

Aside from that, these instructions also need to handle page faults and
guest page faults. This is done in a new check_zicbom_access() helper.

As with Zicboz, the cache block size for Zicbom is also configurable.
Note that the spec determines that Zicbo[mp] and Zicboz can have
different cache sizes (Section 2.7 of [1]), so we also include a
'cbom_blocksize' to go along with the existing 'cboz_blocksize'. They
are set to the same size, so unless users want to play around with the
settings both sizes will be the same.

[1] https://github.com/riscv/riscv-CMOs/blob/master/specifications/cmobase-v1.0.1.pdf

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn>
Co-developed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
Signed-off-by: Christoph Muellner <cmuellner@linux.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20230224132536.552293-4-dbarboza@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c                          |  3 +
 target/riscv/cpu.h                          |  2 +
 target/riscv/helper.h                       |  2 +
 target/riscv/insn32.decode                  |  5 ++
 target/riscv/insn_trans/trans_rvzicbo.c.inc | 27 +++++++++
 target/riscv/op_helper.c                    | 67 +++++++++++++++++++++
 6 files changed, 106 insertions(+)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index ab6c127859..3e8f21a47d 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -75,6 +75,7 @@ struct isa_ext_data {
 static const struct isa_ext_data isa_edata_arr[] = {
     ISA_EXT_DATA_ENTRY(h, false, PRIV_VERSION_1_12_0, ext_h),
     ISA_EXT_DATA_ENTRY(v, false, PRIV_VERSION_1_10_0, ext_v),
+    ISA_EXT_DATA_ENTRY(zicbom, true, PRIV_VERSION_1_12_0, ext_icbom),
     ISA_EXT_DATA_ENTRY(zicboz, true, PRIV_VERSION_1_12_0, ext_icboz),
     ISA_EXT_DATA_ENTRY(zicond, true, PRIV_VERSION_1_12_0, ext_zicond),
     ISA_EXT_DATA_ENTRY(zicsr, true, PRIV_VERSION_1_10_0, ext_icsr),
@@ -1168,6 +1169,8 @@ static Property riscv_cpu_extensions[] = {
     DEFINE_PROP_BOOL("zhinx", RISCVCPU, cfg.ext_zhinx, false),
     DEFINE_PROP_BOOL("zhinxmin", RISCVCPU, cfg.ext_zhinxmin, false),
 
+    DEFINE_PROP_BOOL("zicbom", RISCVCPU, cfg.ext_icbom, true),
+    DEFINE_PROP_UINT16("cbom_blocksize", RISCVCPU, cfg.cbom_blocksize, 64),
     DEFINE_PROP_BOOL("zicboz", RISCVCPU, cfg.ext_icboz, true),
     DEFINE_PROP_UINT16("cboz_blocksize", RISCVCPU, cfg.cboz_blocksize, 64),
 
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index 73c9832fb7..b5b5425b99 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -434,6 +434,7 @@ struct RISCVCPUConfig {
     bool ext_zkt;
     bool ext_ifencei;
     bool ext_icsr;
+    bool ext_icbom;
     bool ext_icboz;
     bool ext_zicond;
     bool ext_zihintpause;
@@ -487,6 +488,7 @@ struct RISCVCPUConfig {
     char *vext_spec;
     uint16_t vlen;
     uint16_t elen;
+    uint16_t cbom_blocksize;
     uint16_t cboz_blocksize;
     bool mmu;
     bool pmp;
diff --git a/target/riscv/helper.h b/target/riscv/helper.h
index ce165821b8..37b54e0991 100644
--- a/target/riscv/helper.h
+++ b/target/riscv/helper.h
@@ -98,6 +98,8 @@ DEF_HELPER_FLAGS_2(fcvt_h_lu, TCG_CALL_NO_RWG, i64, env, tl)
 DEF_HELPER_FLAGS_2(fclass_h, TCG_CALL_NO_RWG_SE, tl, env, i64)
 
 /* Cache-block operations */
+DEF_HELPER_2(cbo_clean_flush, void, env, tl)
+DEF_HELPER_2(cbo_inval, void, env, tl)
 DEF_HELPER_2(cbo_zero, void, env, tl)
 
 /* Special functions */
diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode
index a471adcea0..282e41aa3e 100644
--- a/target/riscv/insn32.decode
+++ b/target/riscv/insn32.decode
@@ -181,6 +181,11 @@ sraw     0100000 .....  ..... 101 ..... 0111011 @r
 ldu      ............   ..... 111 ..... 0000011 @i
 {
   [
+    # *** RV32 Zicbom Standard Extension ***
+    cbo_clean  0000000 00001 ..... 010 00000 0001111 @sfence_vm
+    cbo_flush  0000000 00010 ..... 010 00000 0001111 @sfence_vm
+    cbo_inval  0000000 00000 ..... 010 00000 0001111 @sfence_vm
+
     # *** RV32 Zicboz Standard Extension ***
     cbo_zero   0000000 00100 ..... 010 00000 0001111 @sfence_vm
   ]
diff --git a/target/riscv/insn_trans/trans_rvzicbo.c.inc b/target/riscv/insn_trans/trans_rvzicbo.c.inc
index feabc28342..7df9c30b58 100644
--- a/target/riscv/insn_trans/trans_rvzicbo.c.inc
+++ b/target/riscv/insn_trans/trans_rvzicbo.c.inc
@@ -16,12 +16,39 @@
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#define REQUIRE_ZICBOM(ctx) do {    \
+    if (!ctx->cfg_ptr->ext_icbom) { \
+        return false;               \
+    }                               \
+} while (0)
+
 #define REQUIRE_ZICBOZ(ctx) do {    \
     if (!ctx->cfg_ptr->ext_icboz) { \
         return false;               \
     }                               \
 } while (0)
 
+static bool trans_cbo_clean(DisasContext *ctx, arg_cbo_clean *a)
+{
+    REQUIRE_ZICBOM(ctx);
+    gen_helper_cbo_clean_flush(cpu_env, cpu_gpr[a->rs1]);
+    return true;
+}
+
+static bool trans_cbo_flush(DisasContext *ctx, arg_cbo_flush *a)
+{
+    REQUIRE_ZICBOM(ctx);
+    gen_helper_cbo_clean_flush(cpu_env, cpu_gpr[a->rs1]);
+    return true;
+}
+
+static bool trans_cbo_inval(DisasContext *ctx, arg_cbo_inval *a)
+{
+    REQUIRE_ZICBOM(ctx);
+    gen_helper_cbo_inval(cpu_env, cpu_gpr[a->rs1]);
+    return true;
+}
+
 static bool trans_cbo_zero(DisasContext *ctx, arg_cbo_zero *a)
 {
     REQUIRE_ZICBOZ(ctx);
diff --git a/target/riscv/op_helper.c b/target/riscv/op_helper.c
index d0217b6a98..84ee018f7d 100644
--- a/target/riscv/op_helper.c
+++ b/target/riscv/op_helper.c
@@ -191,6 +191,73 @@ void helper_cbo_zero(CPURISCVState *env, target_ulong address)
     }
 }
 
+/*
+ * check_zicbom_access
+ *
+ * Check access permissions (LOAD, STORE or FETCH as specified in
+ * section 2.5.2 of the CMO specification) for Zicbom, raising
+ * either store page-fault (non-virtualized) or store guest-page
+ * fault (virtualized).
+ */
+static void check_zicbom_access(CPURISCVState *env,
+                                target_ulong address,
+                                uintptr_t ra)
+{
+    RISCVCPU *cpu = env_archcpu(env);
+    int mmu_idx = cpu_mmu_index(env, false);
+    uint16_t cbomlen = cpu->cfg.cbom_blocksize;
+    void *phost;
+    int ret;
+
+    /* Mask off low-bits to align-down to the cache-block. */
+    address &= ~(cbomlen - 1);
+
+    /*
+     * Section 2.5.2 of cmobase v1.0.1:
+     *
+     * "A cache-block management instruction is permitted to
+     * access the specified cache block whenever a load instruction
+     * or store instruction is permitted to access the corresponding
+     * physical addresses. If neither a load instruction nor store
+     * instruction is permitted to access the physical addresses,
+     * but an instruction fetch is permitted to access the physical
+     * addresses, whether a cache-block management instruction is
+     * permitted to access the cache block is UNSPECIFIED."
+     */
+    ret = probe_access_flags(env, address, cbomlen, MMU_DATA_LOAD,
+                             mmu_idx, true, &phost, ra);
+    if (ret != TLB_INVALID_MASK) {
+        /* Success: readable */
+        return;
+    }
+
+    /*
+     * Since not readable, must be writable. On failure, store
+     * fault/store guest amo fault will be raised by
+     * riscv_cpu_tlb_fill(). PMP exceptions will be caught
+     * there as well.
+     */
+    probe_write(env, address, cbomlen, mmu_idx, ra);
+}
+
+void helper_cbo_clean_flush(CPURISCVState *env, target_ulong address)
+{
+    uintptr_t ra = GETPC();
+    check_zicbo_envcfg(env, MENVCFG_CBCFE, ra);
+    check_zicbom_access(env, address, ra);
+
+    /* We don't emulate the cache-hierarchy, so we're done. */
+}
+
+void helper_cbo_inval(CPURISCVState *env, target_ulong address)
+{
+    uintptr_t ra = GETPC();
+    check_zicbo_envcfg(env, MENVCFG_CBIE, ra);
+    check_zicbom_access(env, address, ra);
+
+    /* We don't emulate the cache-hierarchy, so we're done. */
+}
+
 #ifndef CONFIG_USER_ONLY
 
 target_ulong helper_sret(CPURISCVState *env)
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 03/22] target/riscv: add Zicbop cbo.prefetch{i, r, m} placeholder
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 01/22] target/riscv: implement Zicboz extension Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 02/22] target/riscv: implement Zicbom extension Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 04/22] hw/riscv/virt.c: add cbo[mz]-block-size fdt properties Palmer Dabbelt
                   ` (19 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Christoph Muellner, Philipp Tomsich,
	Daniel Henrique Barboza, Richard Henderson, Weiwei Li,
	Palmer Dabbelt

From: Christoph Muellner <cmuellner@linux.com>

The cmo.prefetch instructions are nops for QEMU (no emulation of the
memory hierarchy, no illegal instructions, no permission faults, no
traps).

Add a comment noting where they would be decoded in case cbo.prefetch
instructions become relevant in the future.

Co-developed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
Signed-off-by: Christoph Muellner <cmuellner@linux.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn>
Message-ID: <20230224132536.552293-5-dbarboza@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/insn32.decode | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/riscv/insn32.decode b/target/riscv/insn32.decode
index 282e41aa3e..73d5d1b045 100644
--- a/target/riscv/insn32.decode
+++ b/target/riscv/insn32.decode
@@ -134,6 +134,7 @@ addi     ............     ..... 000 ..... 0010011 @i
 slti     ............     ..... 010 ..... 0010011 @i
 sltiu    ............     ..... 011 ..... 0010011 @i
 xori     ............     ..... 100 ..... 0010011 @i
+# cbo.prefetch_{i,r,m} instructions are ori with rd=x0 and not decoded.
 ori      ............     ..... 110 ..... 0010011 @i
 andi     ............     ..... 111 ..... 0010011 @i
 slli     00000. ......    ..... 001 ..... 0010011 @sh
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 04/22] hw/riscv/virt.c: add cbo[mz]-block-size fdt properties
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (2 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 03/22] target/riscv: add Zicbop cbo.prefetch{i, r, m} placeholder Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 05/22] disas/riscv Fix ctzw disassemble Palmer Dabbelt
                   ` (18 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Anup Patel, Andrew Jones,
	Daniel Henrique Barboza, Bin Meng, Palmer Dabbelt

From: Anup Patel <apatel@ventanamicro.com>

The cbom-block-size fdt property property is used to inform the OS about
the blocksize in bytes for the Zicbom cache operations. Linux documents
it in Documentation/devicetree/bindings/riscv/cpus.yaml
as:

  riscv,cbom-block-size:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The blocksize in bytes for the Zicbom cache operations.

cboz-block-size has the same role but for the Zicboz extension, i.e.
informs the size in bytes for Zicboz cache operations. Linux support
for it is under review/approval in [1]. Patch 3 of that series describes
cboz-block-size as:

  riscv,cboz-block-size:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      The blocksize in bytes for the Zicboz cache operations.

[1] https://lore.kernel.org/all/20230224162631.405473-1-ajones@ventanamicro.com/

Cc: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Message-ID: <20230302091406.407824-2-dbarboza@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 4f8191860b..7f70fa11a1 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -249,6 +249,17 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
         name = riscv_isa_string(cpu_ptr);
         qemu_fdt_setprop_string(ms->fdt, cpu_name, "riscv,isa", name);
         g_free(name);
+
+        if (cpu_ptr->cfg.ext_icbom) {
+            qemu_fdt_setprop_cell(ms->fdt, cpu_name, "riscv,cbom-block-size",
+                                  cpu_ptr->cfg.cbom_blocksize);
+        }
+
+        if (cpu_ptr->cfg.ext_icboz) {
+            qemu_fdt_setprop_cell(ms->fdt, cpu_name, "riscv,cboz-block-size",
+                                  cpu_ptr->cfg.cboz_blocksize);
+        }
+
         qemu_fdt_setprop_string(ms->fdt, cpu_name, "compatible", "riscv");
         qemu_fdt_setprop_string(ms->fdt, cpu_name, "status", "okay");
         qemu_fdt_setprop_cell(ms->fdt, cpu_name, "reg",
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 05/22] disas/riscv Fix ctzw disassemble
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (3 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 04/22] hw/riscv/virt.c: add cbo[mz]-block-size fdt properties Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 06/22] target/riscv: cpu: Implement get_arch_id callback Palmer Dabbelt
                   ` (17 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Ivan Klokov, Weiwei Li,
	Daniel Henrique Barboza, Palmer Dabbelt

From: Ivan Klokov <ivan.klokov@syntacore.com>

Due to typo in opcode list, ctzw is disassembled as clzw instruction.

Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
Fixes: 02c1b569a15b ("disas/riscv: Add Zb[abcs] instructions")
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20230217151459.54649-1-ivan.klokov@syntacore.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 disas/riscv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/disas/riscv.c b/disas/riscv.c
index ddda687c13..54455aaaa8 100644
--- a/disas/riscv.c
+++ b/disas/riscv.c
@@ -1645,7 +1645,7 @@ const rv_opcode_data opcode_data[] = {
     { "max", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 },
     { "maxu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 },
     { "clzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 },
-    { "clzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 },
+    { "ctzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 },
     { "cpopw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 },
     { "slli.uw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 },
     { "add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 },
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 06/22] target/riscv: cpu: Implement get_arch_id callback
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (4 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 05/22] disas/riscv Fix ctzw disassemble Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 07/22] hw: intc: Use cpu_by_arch_id to fetch CPU state Palmer Dabbelt
                   ` (16 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Mayuresh Chitale, Anup Patel,
	Daniel Henrique Barboza, Palmer Dabbelt

From: Mayuresh Chitale <mchitale@ventanamicro.com>

Implement the callback for getting the architecture-dependent CPU ID ie
mhartid.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20230303065055.915652-2-mchitale@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 3e8f21a47d..0ad8f94a42 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -1301,6 +1301,13 @@ static const char *riscv_gdb_get_dynamic_xml(CPUState *cs, const char *xmlname)
 }
 
 #ifndef CONFIG_USER_ONLY
+static int64_t riscv_get_arch_id(CPUState *cs)
+{
+    RISCVCPU *cpu = RISCV_CPU(cs);
+
+    return cpu->env.mhartid;
+}
+
 #include "hw/core/sysemu-cpu-ops.h"
 
 static const struct SysemuCPUOps riscv_sysemu_ops = {
@@ -1355,6 +1362,7 @@ static void riscv_cpu_class_init(ObjectClass *c, void *data)
     cc->disas_set_info = riscv_cpu_disas_set_info;
 #ifndef CONFIG_USER_ONLY
     cc->sysemu_ops = &riscv_sysemu_ops;
+    cc->get_arch_id = riscv_get_arch_id;
 #endif
     cc->gdb_arch_name = riscv_gdb_arch_name;
     cc->gdb_get_dynamic_xml = riscv_gdb_get_dynamic_xml;
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 07/22] hw: intc: Use cpu_by_arch_id to fetch CPU state
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (5 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 06/22] target/riscv: cpu: Implement get_arch_id callback Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 08/22] gitlab/opensbi: Move to docker:stable Palmer Dabbelt
                   ` (15 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Mayuresh Chitale, Anup Patel,
	Daniel Henrique Barboza, Palmer Dabbelt

From: Mayuresh Chitale <mchitale@ventanamicro.com>

Qemu_get_cpu uses the logical CPU id assigned during init to fetch the
CPU state. However APLIC, IMSIC and ACLINT contain registers and states
which are specific to physical hart Ids. The hart Ids in any given system
might be sparse and hence calls to qemu_get_cpu need to be replaced by
cpu_by_arch_id which performs lookup based on the sparse physical hart IDs.

Signed-off-by: Mayuresh Chitale <mchitale@ventanamicro.com>
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Message-ID: <20230303065055.915652-3-mchitale@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/intc/riscv_aclint.c | 16 ++++++++--------
 hw/intc/riscv_aplic.c  |  4 ++--
 hw/intc/riscv_imsic.c  |  6 +++---
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/hw/intc/riscv_aclint.c b/hw/intc/riscv_aclint.c
index eee04643cb..b466a6abaf 100644
--- a/hw/intc/riscv_aclint.c
+++ b/hw/intc/riscv_aclint.c
@@ -130,7 +130,7 @@ static uint64_t riscv_aclint_mtimer_read(void *opaque, hwaddr addr,
         addr < (mtimer->timecmp_base + (mtimer->num_harts << 3))) {
         size_t hartid = mtimer->hartid_base +
                         ((addr - mtimer->timecmp_base) >> 3);
-        CPUState *cpu = qemu_get_cpu(hartid);
+        CPUState *cpu = cpu_by_arch_id(hartid);
         CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
         if (!env) {
             qemu_log_mask(LOG_GUEST_ERROR,
@@ -173,7 +173,7 @@ static void riscv_aclint_mtimer_write(void *opaque, hwaddr addr,
         addr < (mtimer->timecmp_base + (mtimer->num_harts << 3))) {
         size_t hartid = mtimer->hartid_base +
                         ((addr - mtimer->timecmp_base) >> 3);
-        CPUState *cpu = qemu_get_cpu(hartid);
+        CPUState *cpu = cpu_by_arch_id(hartid);
         CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
         if (!env) {
             qemu_log_mask(LOG_GUEST_ERROR,
@@ -231,7 +231,7 @@ static void riscv_aclint_mtimer_write(void *opaque, hwaddr addr,
 
         /* Check if timer interrupt is triggered for each hart. */
         for (i = 0; i < mtimer->num_harts; i++) {
-            CPUState *cpu = qemu_get_cpu(mtimer->hartid_base + i);
+            CPUState *cpu = cpu_by_arch_id(mtimer->hartid_base + i);
             CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
             if (!env) {
                 continue;
@@ -292,7 +292,7 @@ static void riscv_aclint_mtimer_realize(DeviceState *dev, Error **errp)
     s->timecmp = g_new0(uint64_t, s->num_harts);
     /* Claim timer interrupt bits */
     for (i = 0; i < s->num_harts; i++) {
-        RISCVCPU *cpu = RISCV_CPU(qemu_get_cpu(s->hartid_base + i));
+        RISCVCPU *cpu = RISCV_CPU(cpu_by_arch_id(s->hartid_base + i));
         if (riscv_cpu_claim_interrupts(cpu, MIP_MTIP) < 0) {
             error_report("MTIP already claimed");
             exit(1);
@@ -372,7 +372,7 @@ DeviceState *riscv_aclint_mtimer_create(hwaddr addr, hwaddr size,
     sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr);
 
     for (i = 0; i < num_harts; i++) {
-        CPUState *cpu = qemu_get_cpu(hartid_base + i);
+        CPUState *cpu = cpu_by_arch_id(hartid_base + i);
         RISCVCPU *rvcpu = RISCV_CPU(cpu);
         CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
         riscv_aclint_mtimer_callback *cb =
@@ -407,7 +407,7 @@ static uint64_t riscv_aclint_swi_read(void *opaque, hwaddr addr,
 
     if (addr < (swi->num_harts << 2)) {
         size_t hartid = swi->hartid_base + (addr >> 2);
-        CPUState *cpu = qemu_get_cpu(hartid);
+        CPUState *cpu = cpu_by_arch_id(hartid);
         CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
         if (!env) {
             qemu_log_mask(LOG_GUEST_ERROR,
@@ -430,7 +430,7 @@ static void riscv_aclint_swi_write(void *opaque, hwaddr addr, uint64_t value,
 
     if (addr < (swi->num_harts << 2)) {
         size_t hartid = swi->hartid_base + (addr >> 2);
-        CPUState *cpu = qemu_get_cpu(hartid);
+        CPUState *cpu = cpu_by_arch_id(hartid);
         CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
         if (!env) {
             qemu_log_mask(LOG_GUEST_ERROR,
@@ -545,7 +545,7 @@ DeviceState *riscv_aclint_swi_create(hwaddr addr, uint32_t hartid_base,
     sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr);
 
     for (i = 0; i < num_harts; i++) {
-        CPUState *cpu = qemu_get_cpu(hartid_base + i);
+        CPUState *cpu = cpu_by_arch_id(hartid_base + i);
         RISCVCPU *rvcpu = RISCV_CPU(cpu);
 
         qdev_connect_gpio_out(dev, i,
diff --git a/hw/intc/riscv_aplic.c b/hw/intc/riscv_aplic.c
index cfd007e629..cd7efc4ad4 100644
--- a/hw/intc/riscv_aplic.c
+++ b/hw/intc/riscv_aplic.c
@@ -833,7 +833,7 @@ static void riscv_aplic_realize(DeviceState *dev, Error **errp)
 
         /* Claim the CPU interrupt to be triggered by this APLIC */
         for (i = 0; i < aplic->num_harts; i++) {
-            RISCVCPU *cpu = RISCV_CPU(qemu_get_cpu(aplic->hartid_base + i));
+            RISCVCPU *cpu = RISCV_CPU(cpu_by_arch_id(aplic->hartid_base + i));
             if (riscv_cpu_claim_interrupts(cpu,
                 (aplic->mmode) ? MIP_MEIP : MIP_SEIP) < 0) {
                 error_report("%s already claimed",
@@ -966,7 +966,7 @@ DeviceState *riscv_aplic_create(hwaddr addr, hwaddr size,
 
     if (!msimode) {
         for (i = 0; i < num_harts; i++) {
-            CPUState *cpu = qemu_get_cpu(hartid_base + i);
+            CPUState *cpu = cpu_by_arch_id(hartid_base + i);
 
             qdev_connect_gpio_out_named(dev, NULL, i,
                                         qdev_get_gpio_in(DEVICE(cpu),
diff --git a/hw/intc/riscv_imsic.c b/hw/intc/riscv_imsic.c
index 4d4d5b50ca..fea3385b51 100644
--- a/hw/intc/riscv_imsic.c
+++ b/hw/intc/riscv_imsic.c
@@ -316,8 +316,8 @@ static const MemoryRegionOps riscv_imsic_ops = {
 static void riscv_imsic_realize(DeviceState *dev, Error **errp)
 {
     RISCVIMSICState *imsic = RISCV_IMSIC(dev);
-    RISCVCPU *rcpu = RISCV_CPU(qemu_get_cpu(imsic->hartid));
-    CPUState *cpu = qemu_get_cpu(imsic->hartid);
+    RISCVCPU *rcpu = RISCV_CPU(cpu_by_arch_id(imsic->hartid));
+    CPUState *cpu = cpu_by_arch_id(imsic->hartid);
     CPURISCVState *env = cpu ? cpu->env_ptr : NULL;
 
     imsic->num_eistate = imsic->num_pages * imsic->num_irqs;
@@ -413,7 +413,7 @@ DeviceState *riscv_imsic_create(hwaddr addr, uint32_t hartid, bool mmode,
                                 uint32_t num_pages, uint32_t num_ids)
 {
     DeviceState *dev = qdev_new(TYPE_RISCV_IMSIC);
-    CPUState *cpu = qemu_get_cpu(hartid);
+    CPUState *cpu = cpu_by_arch_id(hartid);
     uint32_t i;
 
     assert(!(addr & (IMSIC_MMIO_PAGE_SZ - 1)));
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 08/22] gitlab/opensbi: Move to docker:stable
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (6 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 07/22] hw: intc: Use cpu_by_arch_id to fetch CPU state Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 09/22] roms/opensbi: Upgrade from v1.1 to v1.2 Palmer Dabbelt
                   ` (14 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell; +Cc: qemu-riscv, qemu-devel, Palmer Dabbelt, Bin Meng

The OpenSBI build has been using docker:19.03.1, which appears to be old
enough that v2 of the manifest is no longer supported.  Something has
started serving us those manifests, resulting in errors along the lines
of

    $ docker build --cache-from $IMAGE_TAG --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $IMAGE_TAG .gitlab-ci.d/opensbi
    Step 1/7 : FROM ubuntu:18.04
    18.04: Pulling from library/ubuntu
    mediaType in manifest should be 'application/vnd.docker.distribution.manifest.v2+json' not 'application/vnd.oci.image.manifest.v1+json'

This moves to docker:stable, as was suggested by the template.  It also
adds the python3 package via apt, as OpenSBI requires that to build.

Reviewed-by: Bin Meng <bmeng@tinylab.org>
Message-ID: <20230303202448.11911-2-palmer@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 .gitlab-ci.d/opensbi.yml        | 4 ++--
 .gitlab-ci.d/opensbi/Dockerfile | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.d/opensbi.yml b/.gitlab-ci.d/opensbi.yml
index 04ed5a3ea1..9a651465d8 100644
--- a/.gitlab-ci.d/opensbi.yml
+++ b/.gitlab-ci.d/opensbi.yml
@@ -42,9 +42,9 @@
 docker-opensbi:
   extends: .opensbi_job_rules
   stage: containers
-  image: docker:19.03.1
+  image: docker:stable
   services:
-    - docker:19.03.1-dind
+    - docker:stable-dind
   variables:
     GIT_DEPTH: 3
     IMAGE_TAG: $CI_REGISTRY_IMAGE:opensbi-cross-build
diff --git a/.gitlab-ci.d/opensbi/Dockerfile b/.gitlab-ci.d/opensbi/Dockerfile
index 4ba8a4de86..5ccf4151f4 100644
--- a/.gitlab-ci.d/opensbi/Dockerfile
+++ b/.gitlab-ci.d/opensbi/Dockerfile
@@ -15,6 +15,7 @@ RUN apt update \
         ca-certificates \
         git \
         make \
+	python3 \
         wget \
     && \
     \
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 09/22] roms/opensbi: Upgrade from v1.1 to v1.2
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (7 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 08/22] gitlab/opensbi: Move to docker:stable Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 10/22] riscv: Pass Object to register_cpu_props instead of DeviceState Palmer Dabbelt
                   ` (13 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Bin Meng, Alistair Francis, Palmer Dabbelt

From: Bin Meng <bmeng@tinylab.org>

Upgrade OpenSBI from v1.1 to v1.2 and the pre-built bios images.

The v1.2 release includes the following commits:

994c8cf lib: sbi_timer: Added a conditional wait function which can timeout
caa5eea lib: sbi: add check for ipi device for hsm start
0374ccf lib: sbi_hart: Shorten the code to set MPV bit
4e21cca lib: utils/serial: Update Shakti UART based on latest implementation
88b790f lib: sbi: Fix sbi_snprintf
1545afd lib: sbi: Fix counter index sanity check
83db3af lib: sbi: Add the bound check for events during config match
860a376 lib: sbi: Fix possible buffer overrun in counter validation
11c0008 lib: sbi: Fix fw_event_map initialization
8e86b23 lib: utils/fdt: Factor out common uart node code
7d28d3b lib: utils/serial: Initialize platform_uart_data to zero
7198e1d lib: serial: Clean up coding style in sifive-uart.c
f272035 lib: utils/serial: Ensure baudrate is non-zero before using
b9edf49 lib: sbi: Fix printf handling of long long
422f0e0 scripts: Add Kconfiglib v14.1.0 under scripts directory
662e631 Makefile: Add initial kconfig support for each platform
de80e93 Makefile: Compile lib/utils sources separately for each platform
26bbff5 lib: utils/serial: Use kconfig for enabling/disabling drivers
2adc94b lib: utils/reset: Use kconfig for enabling/disabling drivers
3e76a60 lib: utils/sys: Use kconfig for enabling/disabling drivers
013dbb3 lib: utils/timer: Use kconfig for enabling/disabling drivers
76af9d4 lib: utils/ipi: Use kconfig for enabling/disabling drivers
0b1cf2f lib: utils/irqchip: Use kconfig for enabling/disabling drivers
b126ce4 lib: utils/i2c: Use kconfig for enabling/disabling drivers
5616aa4 lib: utils/gpio: Use kconfig for enabling/disabling drivers
68d7b85 lib: utils/fdt: Use kconfig for enabling/disabling
d514a8f platform: generic: Use kconfig for enabling/disabling overrides
bc317a3 platform: generic: Use kconfig to set platform version and default name
eccb9df platform: Remove redundant config.mk from all platforms
0723bab docs: Update documentation for kconfig support
a6a8557 Makefile: Fix typo related to object.mk
9529e36 include: Add mstatus[h].GVA encodings
1fbe777 lib: sbi_trap: Save mstatus[h].GVA in trap->gva
1c4ce74 lib: sbi: Set gva when creating sbi_trap_info
5a0ca09 lib: sbi_trap: Set hypervisor CSRs for HS-mode
a69eb6c lib: sbi_trap: Set hstatus.GVA when going to HS-mode
111afc1 lib: sbi_illegal_insn: Fix FENCE.TSO emulation infinite trap loop
adf44b5 lib: sbi: Use the official extension name for AIA M-mode CSRs
cbaa9b0 lib: utils: serial: Add Cadence UART driver
622cc5f include: Remove sideleg and sedeleg
a90cf6b lib: sbi_pmu: Remove "event_idx" member from struct sbi_pmu_fw_event
1664d0e lib: sbi_pmu: Replace sbi_pmu_ctr_read() with sbi_pmu_ctr_fw_read()
e238459 lib: sbi_pmu: Firmware counters are always 64 bits wide
c9b388d lib: sbi_pmu: Simplify FW counters to reduce memory usage
d10c1f4 lib: sbi_pmu: Add custom PMU device operations
ee69f8e lib: sbi: Print platform PMU device at boot-time
5019fd1 include: sbi: Reduce includes in sbi_pmu.h
d32b0a9 docs: pmu: fix Unmatched example typo
19664f6 docs: pmu: extend bindings example for Unmatched
37a0d83 lib: sbi_trap: Add helper to get GVA in sbi_trap_regs
46e744a lib: sbi_misaligned_ldst: Set GVA if not emulating
8ce486a lib: utils/fdt: Fix DT parsing in fdt_pmu_setup()
49372f2 lib: sbi: Fix sbi_strnlen wrong count decrement
7f09fba lib: utils/serial: add semihosting support
7105c18 docs/firmware: Update FW_JUMP documentation
3f3d401 docs: Fix some typos
e54cb32 lib: sbi_pmu: move pmu irq information into pmu itself
c316fa3 lib: sbi_hart: move hart_features struct to a public location
4f2acb5 lib: sbi_platform: expose hart_features to extension_init callback
2f63f24 platform: generic: add extensions_init handler and platform-override
b6e520b platform: generic: allwinner: add support for c9xx pmu
98aa127 include: sbi: Fix typo in comment
11d14ae lib: sbi: Fix typo in comment
60b78fe include: sbi: Fix grammar in comment
dcdaf30 lib: sbi: Add sbi_domain_root_add_memrange() API
bd7ef41 platform: andes/ae350: Remove enabling cache from an350_final_init
9899b59 platform: andes/ae350: Use kconfig to set platform version and default name
88f58a3 platform: andes/ae350: Use fdt serial driver
ef9f02e lib: utils/timer: Add Andes fdt timer support
8234fc1 lib: utils/reset: Add Andes fdt reset driver support
127a3f2 platform: andes/ae350: Use fdt irqchip driver
6f3258e platform: andes/ae350: Add fw_platform_init for platform initialization
ce7c490 lib: utils/ipi: Add Andes fdt ipi driver support
c8683c5 platform: andes/ae350: Add AE350 domain support
d682a0a docs: andes-ae350.md: Update ae350 documentation for fdt driver support
0fee0bf Makefile: Add cscope support
51acd49 docs/firmware: update the document
9d54f43 Makefile: Add rules for carray sources in lib/sbi
56bed1a lib: sbi_ecall: Generate extensions list with carray
22f38ee lib: sbi_ecall: Add Kconfig option for each extension
85cf56c lib: utils/fdt: Remove redundant code
21ba418 lib: utils/fdt: Simplified code
8e9966c docs: fix some typos
7b29264 lib: utils/serial: Fix semihosting compile error using LLVM
14f5c4c lib: sbi_ecall: Split up sbi_ecall_replace
8e63716 firmware: payloads: Optimize usage of "ALIGN"
1b0d71b platform: generic/allwinner: Remove unused header files
9a740f5 platform: generic/allwinner: Remove ghostly type cast
ba32021 Makefile: replace `echo` with `printf` for compatibility
49b0e35 Makefile: bugfix for handling platform paths
74e2029 lib: sbi: Simplified mmio match checking
fc82e84 lib: sbi: Fix is_region_valid()
f8eec91 lib: simplify fdt_parse_plmt_node()
cc54184 lib: simplify fdt_parse_plicsw_node()
e9bc7f1 lib: fix fdt_parse_plmt_node()
5daa0ef lib: fix fdt_parse_plicsw_node()
1f6866e lib: simplify fdt_translate_address()
ad2ac29 lib: fix fdt_parse_aclint_node()
cfbabb9 firmware: Minor optimization for relocate
a36d455 platform: generic/andes: Enable generic platform support for AE350
6cd4b9b docs: platform: Update AE350 and generic platform documentation
d3fcff7 docs: andes-ae350.md: fix watchdog nodename in dts example
4640d04 scripts/create-binary-archive.sh: remove andes/ae350 build directory
e977512 lib: utils: Add fdt_fixup_node() helper function
e1a0cb0 gitignore: add vim swap files
ed8b8f5 platform: generic: Make use of fdt_match_node()
8b00be6 lib: fix is_region_valid()
c2be214 lib: fix __fdt_parse_region()
7b08778 lib: fix irqchip_plic_update_hartid_table
cb568b9 lib: sbi: Synchronize PMP settings with virtual memory system
506928a scripts: use env to invoke bash
64e8b9f lib: utils: serial: Add Renesas SCIF driver
0021b43 lib: utils: serial: Add FDT driver for Renesas SCIF
6840902 lib: utils/irqchip: Add compatible string for Andestech NCEPLIC100
8b1617d platform: generic: Add Renesas RZ/Five initial support
7a3354a docs: platform: Add documentation for Renesas RZ/Five SoC
34da663 lib: utils/irqchip: plic: Fix the off-by-one error in priority save/restore helpers
8509e46 lib: utils/irqchip: plic: Ensure no out-of-bound access in priority save/restore helpers
91c8a7d lib: utils/irqchip: plic: Fix the off-by-one error in plic_context_init()
fabbc00 lib: utils/irqchip: plic: Fix the off-by-one error in context save/restore helpers
9a2eeb4 lib: utils/irqchip: plic: Ensure no out-of-bound access in context save/restore helpers
a8ee82c lib: utils/ipi: mswi: add T-Head C9xx CLINT compatible
ca7810a lib: utils/timer: mtimer: add a quirk for lacking mtime register
b848d87 lib: utils/timer: mtimer: add T-Head C9xx CLINT compatible
391ec85 docs: pmu: fix binding example
0412460 docs: pmu: update a reference to a deprecated property name
d5d12a9 docs: pmu: Update the pmu doc with removal of mcountinhbit restriction
6b5188c include: Bump-up version to 1.2

Signed-off-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-id: <20230207044003.3669059-1-bmeng@tinylab.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20230303202448.11911-3-palmer@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 .../opensbi-riscv32-generic-fw_dynamic.bin    | Bin 117704 -> 123072 bytes
 .../opensbi-riscv64-generic-fw_dynamic.bin    | Bin 115344 -> 121800 bytes
 roms/opensbi                                  |   2 +-
 3 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin b/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin
index 81bab1adc97bbe9b376f3bfe4da98cdfcf3ade7a..6a8425885c7dd0263391637b665c83d04684c68a 100644
GIT binary patch
literal 123072
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
L&2)lyY*>Onr0)_H

literal 117704
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%0AjLQjZPi
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
IP#&-NU*?h>$^ZZW

diff --git a/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin b/pc-bios/opensbi-riscv64-generic-fw_dynamic.bin
index 5eb0a743260b47e07e674db3728d6ba4125847c0..80bdbf2170037541848cf96a6ff71bacea91baf7 100644
GIT binary patch
literal 121800
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

literal 115344
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
A&j0`b

diff --git a/roms/opensbi b/roms/opensbi
index 4489876e93..6b5188ca14 160000
--- a/roms/opensbi
+++ b/roms/opensbi
@@ -1 +1 @@
-Subproject commit 4489876e933d8ba0d8bc6c64bae71e295d45faac
+Subproject commit 6b5188ca14e59ce7bf71afe4e7d3d557c3d31bf8
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 10/22] riscv: Pass Object to register_cpu_props instead of DeviceState
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (8 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 09/22] roms/opensbi: Upgrade from v1.1 to v1.2 Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 11/22] riscv: Change type of valid_vm_1_10_[32|64] to bool Palmer Dabbelt
                   ` (12 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Alexandre Ghiti, Alistair Francis,
	Frank Chang, Andrew Jones, Bin Meng, Palmer Dabbelt

From: Alexandre Ghiti <alexghiti@rivosinc.com>

One can extract the DeviceState pointer from the Object pointer, so pass
the Object for future commits to access other fields of Object.

No functional changes intended.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Message-ID: <20230303131252.892893-2-alexghiti@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c | 29 +++++++++++++++--------------
 1 file changed, 15 insertions(+), 14 deletions(-)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 0ad8f94a42..1c4d8aaa74 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -220,7 +220,7 @@ static const char * const riscv_intr_names[] = {
     "reserved"
 };
 
-static void register_cpu_props(DeviceState *dev);
+static void register_cpu_props(Object *obj);
 
 const char *riscv_cpu_get_trap_name(target_ulong cause, bool async)
 {
@@ -258,7 +258,7 @@ static void riscv_any_cpu_init(Object *obj)
     set_misa(env, MXL_RV64, RVI | RVM | RVA | RVF | RVD | RVC | RVU);
 #endif
     set_priv_version(env, PRIV_VERSION_1_12_0);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
 }
 
 #if defined(TARGET_RISCV64)
@@ -267,7 +267,7 @@ static void rv64_base_cpu_init(Object *obj)
     CPURISCVState *env = &RISCV_CPU(obj)->env;
     /* We set this in the realise function */
     set_misa(env, MXL_RV64, 0);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
 }
@@ -276,7 +276,7 @@ static void rv64_sifive_u_cpu_init(Object *obj)
 {
     CPURISCVState *env = &RISCV_CPU(obj)->env;
     set_misa(env, MXL_RV64, RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
 }
 
@@ -286,7 +286,7 @@ static void rv64_sifive_e_cpu_init(Object *obj)
     RISCVCPU *cpu = RISCV_CPU(obj);
 
     set_misa(env, MXL_RV64, RVI | RVM | RVA | RVC | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
 }
@@ -331,7 +331,7 @@ static void rv128_base_cpu_init(Object *obj)
     CPURISCVState *env = &RISCV_CPU(obj)->env;
     /* We set this in the realise function */
     set_misa(env, MXL_RV128, 0);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
 }
@@ -341,7 +341,7 @@ static void rv32_base_cpu_init(Object *obj)
     CPURISCVState *env = &RISCV_CPU(obj)->env;
     /* We set this in the realise function */
     set_misa(env, MXL_RV32, 0);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
 }
@@ -350,7 +350,7 @@ static void rv32_sifive_u_cpu_init(Object *obj)
 {
     CPURISCVState *env = &RISCV_CPU(obj)->env;
     set_misa(env, MXL_RV32, RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
 }
 
@@ -360,7 +360,7 @@ static void rv32_sifive_e_cpu_init(Object *obj)
     RISCVCPU *cpu = RISCV_CPU(obj);
 
     set_misa(env, MXL_RV32, RVI | RVM | RVA | RVC | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
 }
@@ -371,7 +371,7 @@ static void rv32_ibex_cpu_init(Object *obj)
     RISCVCPU *cpu = RISCV_CPU(obj);
 
     set_misa(env, MXL_RV32, RVI | RVM | RVC | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_11_0);
     cpu->cfg.mmu = false;
     cpu->cfg.epmp = true;
@@ -383,7 +383,7 @@ static void rv32_imafcu_nommu_cpu_init(Object *obj)
     RISCVCPU *cpu = RISCV_CPU(obj);
 
     set_misa(env, MXL_RV32, RVI | RVM | RVA | RVF | RVC | RVU);
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
 }
@@ -398,7 +398,7 @@ static void riscv_host_cpu_init(Object *obj)
 #elif defined(TARGET_RISCV64)
     set_misa(env, MXL_RV64, 0);
 #endif
-    register_cpu_props(DEVICE(obj));
+    register_cpu_props(obj);
 }
 #endif
 
@@ -1210,11 +1210,12 @@ static Property riscv_cpu_extensions[] = {
  * properties and leave. env.misa_ext = 0 means that we want
  * all the default properties to be registered.
  */
-static void register_cpu_props(DeviceState *dev)
+static void register_cpu_props(Object *obj)
 {
-    RISCVCPU *cpu = RISCV_CPU(OBJECT(dev));
+    RISCVCPU *cpu = RISCV_CPU(obj);
     uint32_t misa_ext = cpu->env.misa_ext;
     Property *prop;
+    DeviceState *dev = DEVICE(obj);
 
     /*
      * If misa_ext is not zero, set cfg properties now to
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 11/22] riscv: Change type of valid_vm_1_10_[32|64] to bool
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (9 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 10/22] riscv: Pass Object to register_cpu_props instead of DeviceState Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 12/22] riscv: Allow user to set the satp mode Palmer Dabbelt
                   ` (11 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Alexandre Ghiti, Andrew Jones,
	Alistair Francis, Bin Meng, Frank Chang, Palmer Dabbelt

From: Alexandre Ghiti <alexghiti@rivosinc.com>

This array is actually used as a boolean so swap its current char type
to a boolean and at the same time, change the type of validate_vm to
bool since it returns valid_vm_1_10_[32|64].

Suggested-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Message-ID: <20230303131252.892893-3-alexghiti@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/csr.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/target/riscv/csr.c b/target/riscv/csr.c
index 3106f96212..d93d481bd6 100644
--- a/target/riscv/csr.c
+++ b/target/riscv/csr.c
@@ -1141,16 +1141,16 @@ static const target_ulong hip_writable_mask = MIP_VSSIP;
 static const target_ulong hvip_writable_mask = MIP_VSSIP | MIP_VSTIP | MIP_VSEIP;
 static const target_ulong vsip_writable_mask = MIP_VSSIP;
 
-static const char valid_vm_1_10_32[16] = {
-    [VM_1_10_MBARE] = 1,
-    [VM_1_10_SV32] = 1
+static const bool valid_vm_1_10_32[16] = {
+    [VM_1_10_MBARE] = true,
+    [VM_1_10_SV32] = true
 };
 
-static const char valid_vm_1_10_64[16] = {
-    [VM_1_10_MBARE] = 1,
-    [VM_1_10_SV39] = 1,
-    [VM_1_10_SV48] = 1,
-    [VM_1_10_SV57] = 1
+static const bool valid_vm_1_10_64[16] = {
+    [VM_1_10_MBARE] = true,
+    [VM_1_10_SV39] = true,
+    [VM_1_10_SV48] = true,
+    [VM_1_10_SV57] = true
 };
 
 /* Machine Information Registers */
@@ -1230,7 +1230,7 @@ static RISCVException read_mstatus(CPURISCVState *env, int csrno,
     return RISCV_EXCP_NONE;
 }
 
-static int validate_vm(CPURISCVState *env, target_ulong vm)
+static bool validate_vm(CPURISCVState *env, target_ulong vm)
 {
     if (riscv_cpu_mxl(env) == MXL_RV32) {
         return valid_vm_1_10_32[vm & 0xf];
@@ -2669,7 +2669,8 @@ static RISCVException read_satp(CPURISCVState *env, int csrno,
 static RISCVException write_satp(CPURISCVState *env, int csrno,
                                  target_ulong val)
 {
-    target_ulong vm, mask;
+    target_ulong mask;
+    bool vm;
 
     if (!riscv_cpu_cfg(env)->mmu) {
         return RISCV_EXCP_NONE;
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 12/22] riscv: Allow user to set the satp mode
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (10 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 11/22] riscv: Change type of valid_vm_1_10_[32|64] to bool Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 13/22] riscv: Introduce satp mode hw capabilities Palmer Dabbelt
                   ` (10 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Alexandre Ghiti, Ludovic Henry,
	Andrew Jones, Bin Meng, Alistair Francis, Frank Chang,
	Palmer Dabbelt

From: Alexandre Ghiti <alexghiti@rivosinc.com>

RISC-V specifies multiple sizes for addressable memory and Linux probes for
the machine's support at startup via the satp CSR register (done in
csr.c:validate_vm).

As per the specification, sv64 must support sv57, which in turn must
support sv48...etc. So we can restrict machine support by simply setting the
"highest" supported mode and the bare mode is always supported.

You can set the satp mode using the new properties "sv32", "sv39", "sv48",
"sv57" and "sv64" as follows:
-cpu rv64,sv57=on  # Linux will boot using sv57 scheme
-cpu rv64,sv39=on  # Linux will boot using sv39 scheme
-cpu rv64,sv57=off # Linux will boot using sv48 scheme
-cpu rv64          # Linux will boot using sv57 scheme by default

We take the highest level set by the user:
-cpu rv64,sv48=on,sv57=on # Linux will boot using sv57 scheme

We make sure that invalid configurations are rejected:
-cpu rv64,sv39=off,sv48=on # sv39 must be supported if higher modes are
                           # enabled

We accept "redundant" configurations:
-cpu rv64,sv48=on,sv57=off # Linux will boot using sv48 scheme

And contradictory configurations:
-cpu rv64,sv48=on,sv48=off # Linux will boot using sv39 scheme

Co-Developed-by: Ludovic Henry <ludovic@rivosinc.com>
Signed-off-by: Ludovic Henry <ludovic@rivosinc.com>
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Message-ID: <20230303131252.892893-4-alexghiti@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c | 214 +++++++++++++++++++++++++++++++++++++++++++++
 target/riscv/cpu.h |  21 +++++
 target/riscv/csr.c |  12 ++-
 3 files changed, 240 insertions(+), 7 deletions(-)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index 1c4d8aaa74..e1e8057836 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -28,6 +28,7 @@
 #include "time_helper.h"
 #include "exec/exec-all.h"
 #include "qapi/error.h"
+#include "qapi/visitor.h"
 #include "qemu/error-report.h"
 #include "hw/qdev-properties.h"
 #include "migration/vmstate.h"
@@ -249,6 +250,82 @@ static void set_vext_version(CPURISCVState *env, int vext_ver)
     env->vext_ver = vext_ver;
 }
 
+#ifndef CONFIG_USER_ONLY
+static uint8_t satp_mode_from_str(const char *satp_mode_str)
+{
+    if (!strncmp(satp_mode_str, "mbare", 5)) {
+        return VM_1_10_MBARE;
+    }
+
+    if (!strncmp(satp_mode_str, "sv32", 4)) {
+        return VM_1_10_SV32;
+    }
+
+    if (!strncmp(satp_mode_str, "sv39", 4)) {
+        return VM_1_10_SV39;
+    }
+
+    if (!strncmp(satp_mode_str, "sv48", 4)) {
+        return VM_1_10_SV48;
+    }
+
+    if (!strncmp(satp_mode_str, "sv57", 4)) {
+        return VM_1_10_SV57;
+    }
+
+    if (!strncmp(satp_mode_str, "sv64", 4)) {
+        return VM_1_10_SV64;
+    }
+
+    g_assert_not_reached();
+}
+
+uint8_t satp_mode_max_from_map(uint32_t map)
+{
+    /* map here has at least one bit set, so no problem with clz */
+    return 31 - __builtin_clz(map);
+}
+
+const char *satp_mode_str(uint8_t satp_mode, bool is_32_bit)
+{
+    if (is_32_bit) {
+        switch (satp_mode) {
+        case VM_1_10_SV32:
+            return "sv32";
+        case VM_1_10_MBARE:
+            return "none";
+        }
+    } else {
+        switch (satp_mode) {
+        case VM_1_10_SV64:
+            return "sv64";
+        case VM_1_10_SV57:
+            return "sv57";
+        case VM_1_10_SV48:
+            return "sv48";
+        case VM_1_10_SV39:
+            return "sv39";
+        case VM_1_10_MBARE:
+            return "none";
+        }
+    }
+
+    g_assert_not_reached();
+}
+
+/* Sets the satp mode to the max supported */
+static void set_satp_mode_default_map(RISCVCPU *cpu)
+{
+    bool rv32 = riscv_cpu_mxl(&cpu->env) == MXL_RV32;
+
+    if (riscv_feature(&cpu->env, RISCV_FEATURE_MMU)) {
+        cpu->cfg.satp_mode.map |= (1 << (rv32 ? VM_1_10_SV32 : VM_1_10_SV57));
+    } else {
+        cpu->cfg.satp_mode.map |= (1 << VM_1_10_MBARE);
+    }
+}
+#endif
+
 static void riscv_any_cpu_init(Object *obj)
 {
     CPURISCVState *env = &RISCV_CPU(obj)->env;
@@ -918,6 +995,87 @@ static void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, Error **errp)
     set_misa(env, env->misa_mxl, ext);
 }
 
+#ifndef CONFIG_USER_ONLY
+static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp)
+{
+    bool rv32 = riscv_cpu_mxl(&cpu->env) == MXL_RV32;
+    const bool *valid_vm = rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64;
+    uint8_t satp_mode_max;
+
+    if (cpu->cfg.satp_mode.map == 0) {
+        if (cpu->cfg.satp_mode.init == 0) {
+            /* If unset by the user, we fallback to the default satp mode. */
+            set_satp_mode_default_map(cpu);
+        } else {
+            /*
+             * Find the lowest level that was disabled and then enable the
+             * first valid level below which can be found in
+             * valid_vm_1_10_32/64.
+             */
+            for (int i = 1; i < 16; ++i) {
+                if ((cpu->cfg.satp_mode.init & (1 << i)) && valid_vm[i]) {
+                    for (int j = i - 1; j >= 0; --j) {
+                        if (valid_vm[j]) {
+                            cpu->cfg.satp_mode.map |= (1 << j);
+                            break;
+                        }
+                    }
+                    break;
+                }
+            }
+        }
+    }
+
+    /* Make sure the configuration asked is supported by qemu */
+    for (int i = 0; i < 16; ++i) {
+        if ((cpu->cfg.satp_mode.map & (1 << i)) && !valid_vm[i]) {
+            error_setg(errp, "satp_mode %s is not valid",
+                       satp_mode_str(i, rv32));
+            return;
+        }
+    }
+
+    /*
+     * Make sure the user did not ask for an invalid configuration as per
+     * the specification.
+     */
+    satp_mode_max = satp_mode_max_from_map(cpu->cfg.satp_mode.map);
+
+    if (!rv32) {
+        for (int i = satp_mode_max - 1; i >= 0; --i) {
+            if (!(cpu->cfg.satp_mode.map & (1 << i)) &&
+                (cpu->cfg.satp_mode.init & (1 << i)) &&
+                valid_vm[i]) {
+                error_setg(errp, "cannot disable %s satp mode if %s "
+                           "is enabled", satp_mode_str(i, false),
+                           satp_mode_str(satp_mode_max, false));
+                return;
+            }
+        }
+    }
+
+    /* Finally expand the map so that all valid modes are set */
+    for (int i = satp_mode_max - 1; i >= 0; --i) {
+        if (valid_vm[i]) {
+            cpu->cfg.satp_mode.map |= (1 << i);
+        }
+    }
+}
+#endif
+
+static void riscv_cpu_finalize_features(RISCVCPU *cpu, Error **errp)
+{
+#ifndef CONFIG_USER_ONLY
+    Error *local_err = NULL;
+
+    riscv_cpu_satp_mode_finalize(cpu, &local_err);
+    if (local_err != NULL) {
+        error_propagate(errp, local_err);
+        return;
+    }
+#endif
+}
+
 static void riscv_cpu_realize(DeviceState *dev, Error **errp)
 {
     CPUState *cs = CPU(dev);
@@ -1017,6 +1175,12 @@ static void riscv_cpu_realize(DeviceState *dev, Error **errp)
      }
 #endif
 
+    riscv_cpu_finalize_features(cpu, &local_err);
+    if (local_err != NULL) {
+        error_propagate(errp, local_err);
+        return;
+    }
+
     riscv_cpu_register_gdb_regs_for_features(cs);
 
     qemu_init_vcpu(cs);
@@ -1026,6 +1190,52 @@ static void riscv_cpu_realize(DeviceState *dev, Error **errp)
 }
 
 #ifndef CONFIG_USER_ONLY
+static void cpu_riscv_get_satp(Object *obj, Visitor *v, const char *name,
+                               void *opaque, Error **errp)
+{
+    RISCVSATPMap *satp_map = opaque;
+    uint8_t satp = satp_mode_from_str(name);
+    bool value;
+
+    value = satp_map->map & (1 << satp);
+
+    visit_type_bool(v, name, &value, errp);
+}
+
+static void cpu_riscv_set_satp(Object *obj, Visitor *v, const char *name,
+                               void *opaque, Error **errp)
+{
+    RISCVSATPMap *satp_map = opaque;
+    uint8_t satp = satp_mode_from_str(name);
+    bool value;
+
+    if (!visit_type_bool(v, name, &value, errp)) {
+        return;
+    }
+
+    satp_map->map = deposit32(satp_map->map, satp, 1, value);
+    satp_map->init |= 1 << satp;
+}
+
+static void riscv_add_satp_mode_properties(Object *obj)
+{
+    RISCVCPU *cpu = RISCV_CPU(obj);
+
+    if (cpu->env.misa_mxl == MXL_RV32) {
+        object_property_add(obj, "sv32", "bool", cpu_riscv_get_satp,
+                            cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode);
+    } else {
+        object_property_add(obj, "sv39", "bool", cpu_riscv_get_satp,
+                            cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode);
+        object_property_add(obj, "sv48", "bool", cpu_riscv_get_satp,
+                            cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode);
+        object_property_add(obj, "sv57", "bool", cpu_riscv_get_satp,
+                            cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode);
+        object_property_add(obj, "sv64", "bool", cpu_riscv_get_satp,
+                            cpu_riscv_set_satp, NULL, &cpu->cfg.satp_mode);
+    }
+}
+
 static void riscv_cpu_set_irq(void *opaque, int irq, int level)
 {
     RISCVCPU *cpu = RISCV_CPU(opaque);
@@ -1246,6 +1456,10 @@ static void register_cpu_props(Object *obj)
     for (prop = riscv_cpu_extensions; prop && prop->name; prop++) {
         qdev_property_add_static(dev, prop);
     }
+
+#ifndef CONFIG_USER_ONLY
+    riscv_add_satp_mode_properties(obj);
+#endif
 }
 
 static Property riscv_cpu_properties[] = {
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index b5b5425b99..67ac665ff0 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -27,6 +27,7 @@
 #include "qom/object.h"
 #include "qemu/int128.h"
 #include "cpu_bits.h"
+#include "qapi/qapi-types-common.h"
 
 #define TCG_GUEST_DEFAULT_MO 0
 
@@ -401,6 +402,17 @@ struct RISCVCPUClass {
     ResettablePhases parent_phases;
 };
 
+/*
+ * map is a 16-bit bitmap: the most significant set bit in map is the maximum
+ * satp mode that is supported.
+ *
+ * init is a 16-bit bitmap used to make sure the user selected a correct
+ * configuration as per the specification.
+ */
+typedef struct {
+    uint16_t map, init;
+} RISCVSATPMap;
+
 struct RISCVCPUConfig {
     bool ext_i;
     bool ext_e;
@@ -497,6 +509,10 @@ struct RISCVCPUConfig {
     bool misa_w;
 
     bool short_isa_string;
+
+#ifndef CONFIG_USER_ONLY
+    RISCVSATPMap satp_mode;
+#endif
 };
 
 typedef struct RISCVCPUConfig RISCVCPUConfig;
@@ -798,9 +814,14 @@ enum riscv_pmu_event_idx {
 /* CSR function table */
 extern riscv_csr_operations csr_ops[CSR_TABLE_SIZE];
 
+extern const bool valid_vm_1_10_32[], valid_vm_1_10_64[];
+
 void riscv_get_csr_ops(int csrno, riscv_csr_operations *ops);
 void riscv_set_csr_ops(int csrno, riscv_csr_operations *ops);
 
 void riscv_cpu_register_gdb_regs_for_features(CPUState *cs);
 
+uint8_t satp_mode_max_from_map(uint32_t map);
+const char *satp_mode_str(uint8_t satp_mode, bool is_32_bit);
+
 #endif /* RISCV_CPU_H */
diff --git a/target/riscv/csr.c b/target/riscv/csr.c
index d93d481bd6..ab566639e5 100644
--- a/target/riscv/csr.c
+++ b/target/riscv/csr.c
@@ -1141,12 +1141,12 @@ static const target_ulong hip_writable_mask = MIP_VSSIP;
 static const target_ulong hvip_writable_mask = MIP_VSSIP | MIP_VSTIP | MIP_VSEIP;
 static const target_ulong vsip_writable_mask = MIP_VSSIP;
 
-static const bool valid_vm_1_10_32[16] = {
+const bool valid_vm_1_10_32[16] = {
     [VM_1_10_MBARE] = true,
     [VM_1_10_SV32] = true
 };
 
-static const bool valid_vm_1_10_64[16] = {
+const bool valid_vm_1_10_64[16] = {
     [VM_1_10_MBARE] = true,
     [VM_1_10_SV39] = true,
     [VM_1_10_SV48] = true,
@@ -1232,11 +1232,9 @@ static RISCVException read_mstatus(CPURISCVState *env, int csrno,
 
 static bool validate_vm(CPURISCVState *env, target_ulong vm)
 {
-    if (riscv_cpu_mxl(env) == MXL_RV32) {
-        return valid_vm_1_10_32[vm & 0xf];
-    } else {
-        return valid_vm_1_10_64[vm & 0xf];
-    }
+    RISCVCPU *cpu = RISCV_CPU(env_cpu(env));
+
+    return (vm & 0xf) <= satp_mode_max_from_map(cpu->cfg.satp_mode.map);
 }
 
 static RISCVException write_mstatus(CPURISCVState *env, int csrno,
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 13/22] riscv: Introduce satp mode hw capabilities
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (11 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 12/22] riscv: Allow user to set the satp mode Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 14/22] riscv: Correctly set the device-tree entry 'mmu-type' Palmer Dabbelt
                   ` (9 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Alexandre Ghiti, Andrew Jones, Bin Meng,
	Frank Chang, Alistair Francis, Palmer Dabbelt

From: Alexandre Ghiti <alexghiti@rivosinc.com>

Currently, the max satp mode is set with the only constraint that it must be
implemented in QEMU, i.e. set in valid_vm_1_10_[32|64].

But we actually need to add another level of constraint: what the hw is
actually capable of, because currently, a linux booting on a sifive-u54
boots in sv57 mode which is incompatible with the cpu's sv39 max
capability.

So add a new bitmap to RISCVSATPMap which contains this capability and
initialize it in every XXX_cpu_init.

Finally:
- valid_vm_1_10_[32|64] constrains which satp mode the CPU can use
- the CPU hw capabilities constrains what the user may select
- the user's selection then constrains what's available to the guest
  OS.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20230303131252.892893-5-alexghiti@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 target/riscv/cpu.c | 93 ++++++++++++++++++++++++++++++++++------------
 target/riscv/cpu.h |  8 +++-
 2 files changed, 75 insertions(+), 26 deletions(-)

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index e1e8057836..1e97473af2 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -313,17 +313,24 @@ const char *satp_mode_str(uint8_t satp_mode, bool is_32_bit)
     g_assert_not_reached();
 }
 
-/* Sets the satp mode to the max supported */
-static void set_satp_mode_default_map(RISCVCPU *cpu)
+static void set_satp_mode_max_supported(RISCVCPU *cpu,
+                                        uint8_t satp_mode)
 {
     bool rv32 = riscv_cpu_mxl(&cpu->env) == MXL_RV32;
+    const bool *valid_vm = rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64;
 
-    if (riscv_feature(&cpu->env, RISCV_FEATURE_MMU)) {
-        cpu->cfg.satp_mode.map |= (1 << (rv32 ? VM_1_10_SV32 : VM_1_10_SV57));
-    } else {
-        cpu->cfg.satp_mode.map |= (1 << VM_1_10_MBARE);
+    for (int i = 0; i <= satp_mode; ++i) {
+        if (valid_vm[i]) {
+            cpu->cfg.satp_mode.supported |= (1 << i);
+        }
     }
 }
+
+/* Set the satp mode to the max supported */
+static void set_satp_mode_default_map(RISCVCPU *cpu)
+{
+    cpu->cfg.satp_mode.map = cpu->cfg.satp_mode.supported;
+}
 #endif
 
 static void riscv_any_cpu_init(Object *obj)
@@ -334,6 +341,13 @@ static void riscv_any_cpu_init(Object *obj)
 #elif defined(TARGET_RISCV64)
     set_misa(env, MXL_RV64, RVI | RVM | RVA | RVF | RVD | RVC | RVU);
 #endif
+
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj),
+            riscv_cpu_mxl(&RISCV_CPU(obj)->env) == MXL_RV32 ?
+                                    VM_1_10_SV32 : VM_1_10_SV57);
+#endif
+
     set_priv_version(env, PRIV_VERSION_1_12_0);
     register_cpu_props(obj);
 }
@@ -347,6 +361,9 @@ static void rv64_base_cpu_init(Object *obj)
     register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV57);
+#endif
 }
 
 static void rv64_sifive_u_cpu_init(Object *obj)
@@ -355,6 +372,9 @@ static void rv64_sifive_u_cpu_init(Object *obj)
     set_misa(env, MXL_RV64, RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV39);
+#endif
 }
 
 static void rv64_sifive_e_cpu_init(Object *obj)
@@ -366,6 +386,9 @@ static void rv64_sifive_e_cpu_init(Object *obj)
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(cpu, VM_1_10_MBARE);
+#endif
 }
 
 static void rv64_thead_c906_cpu_init(Object *obj)
@@ -395,6 +418,9 @@ static void rv64_thead_c906_cpu_init(Object *obj)
     cpu->cfg.ext_xtheadsync = true;
 
     cpu->cfg.mvendorid = THEAD_VENDOR_ID;
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(cpu, VM_1_10_SV39);
+#endif
 }
 
 static void rv128_base_cpu_init(Object *obj)
@@ -411,6 +437,9 @@ static void rv128_base_cpu_init(Object *obj)
     register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV57);
+#endif
 }
 #else
 static void rv32_base_cpu_init(Object *obj)
@@ -421,6 +450,9 @@ static void rv32_base_cpu_init(Object *obj)
     register_cpu_props(obj);
     /* Set latest version of privileged specification */
     set_priv_version(env, PRIV_VERSION_1_12_0);
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV32);
+#endif
 }
 
 static void rv32_sifive_u_cpu_init(Object *obj)
@@ -429,6 +461,9 @@ static void rv32_sifive_u_cpu_init(Object *obj)
     set_misa(env, MXL_RV32, RVI | RVM | RVA | RVF | RVD | RVC | RVS | RVU);
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(RISCV_CPU(obj), VM_1_10_SV32);
+#endif
 }
 
 static void rv32_sifive_e_cpu_init(Object *obj)
@@ -440,6 +475,9 @@ static void rv32_sifive_e_cpu_init(Object *obj)
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(cpu, VM_1_10_MBARE);
+#endif
 }
 
 static void rv32_ibex_cpu_init(Object *obj)
@@ -451,6 +489,9 @@ static void rv32_ibex_cpu_init(Object *obj)
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_11_0);
     cpu->cfg.mmu = false;
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(cpu, VM_1_10_MBARE);
+#endif
     cpu->cfg.epmp = true;
 }
 
@@ -463,6 +504,9 @@ static void rv32_imafcu_nommu_cpu_init(Object *obj)
     register_cpu_props(obj);
     set_priv_version(env, PRIV_VERSION_1_10_0);
     cpu->cfg.mmu = false;
+#ifndef CONFIG_USER_ONLY
+    set_satp_mode_max_supported(cpu, VM_1_10_MBARE);
+#endif
 }
 #endif
 
@@ -999,8 +1043,9 @@ static void riscv_cpu_validate_set_extensions(RISCVCPU *cpu, Error **errp)
 static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp)
 {
     bool rv32 = riscv_cpu_mxl(&cpu->env) == MXL_RV32;
-    const bool *valid_vm = rv32 ? valid_vm_1_10_32 : valid_vm_1_10_64;
-    uint8_t satp_mode_max;
+    uint8_t satp_mode_map_max;
+    uint8_t satp_mode_supported_max =
+                        satp_mode_max_from_map(cpu->cfg.satp_mode.supported);
 
     if (cpu->cfg.satp_mode.map == 0) {
         if (cpu->cfg.satp_mode.init == 0) {
@@ -1013,9 +1058,10 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp)
              * valid_vm_1_10_32/64.
              */
             for (int i = 1; i < 16; ++i) {
-                if ((cpu->cfg.satp_mode.init & (1 << i)) && valid_vm[i]) {
+                if ((cpu->cfg.satp_mode.init & (1 << i)) &&
+                    (cpu->cfg.satp_mode.supported & (1 << i))) {
                     for (int j = i - 1; j >= 0; --j) {
-                        if (valid_vm[j]) {
+                        if (cpu->cfg.satp_mode.supported & (1 << j)) {
                             cpu->cfg.satp_mode.map |= (1 << j);
                             break;
                         }
@@ -1026,37 +1072,36 @@ static void riscv_cpu_satp_mode_finalize(RISCVCPU *cpu, Error **errp)
         }
     }
 
-    /* Make sure the configuration asked is supported by qemu */
-    for (int i = 0; i < 16; ++i) {
-        if ((cpu->cfg.satp_mode.map & (1 << i)) && !valid_vm[i]) {
-            error_setg(errp, "satp_mode %s is not valid",
-                       satp_mode_str(i, rv32));
-            return;
-        }
+    satp_mode_map_max = satp_mode_max_from_map(cpu->cfg.satp_mode.map);
+
+    /* Make sure the user asked for a supported configuration (HW and qemu) */
+    if (satp_mode_map_max > satp_mode_supported_max) {
+        error_setg(errp, "satp_mode %s is higher than hw max capability %s",
+                   satp_mode_str(satp_mode_map_max, rv32),
+                   satp_mode_str(satp_mode_supported_max, rv32));
+        return;
     }
 
     /*
      * Make sure the user did not ask for an invalid configuration as per
      * the specification.
      */
-    satp_mode_max = satp_mode_max_from_map(cpu->cfg.satp_mode.map);
-
     if (!rv32) {
-        for (int i = satp_mode_max - 1; i >= 0; --i) {
+        for (int i = satp_mode_map_max - 1; i >= 0; --i) {
             if (!(cpu->cfg.satp_mode.map & (1 << i)) &&
                 (cpu->cfg.satp_mode.init & (1 << i)) &&
-                valid_vm[i]) {
+                (cpu->cfg.satp_mode.supported & (1 << i))) {
                 error_setg(errp, "cannot disable %s satp mode if %s "
                            "is enabled", satp_mode_str(i, false),
-                           satp_mode_str(satp_mode_max, false));
+                           satp_mode_str(satp_mode_map_max, false));
                 return;
             }
         }
     }
 
     /* Finally expand the map so that all valid modes are set */
-    for (int i = satp_mode_max - 1; i >= 0; --i) {
-        if (valid_vm[i]) {
+    for (int i = satp_mode_map_max - 1; i >= 0; --i) {
+        if (cpu->cfg.satp_mode.supported & (1 << i)) {
             cpu->cfg.satp_mode.map |= (1 << i);
         }
     }
diff --git a/target/riscv/cpu.h b/target/riscv/cpu.h
index 67ac665ff0..638e47c75a 100644
--- a/target/riscv/cpu.h
+++ b/target/riscv/cpu.h
@@ -404,13 +404,17 @@ struct RISCVCPUClass {
 
 /*
  * map is a 16-bit bitmap: the most significant set bit in map is the maximum
- * satp mode that is supported.
+ * satp mode that is supported. It may be chosen by the user and must respect
+ * what qemu implements (valid_1_10_32/64) and what the hw is capable of
+ * (supported bitmap below).
  *
  * init is a 16-bit bitmap used to make sure the user selected a correct
  * configuration as per the specification.
+ *
+ * supported is a 16-bit bitmap used to reflect the hw capabilities.
  */
 typedef struct {
-    uint16_t map, init;
+    uint16_t map, init, supported;
 } RISCVSATPMap;
 
 struct RISCVCPUConfig {
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 14/22] riscv: Correctly set the device-tree entry 'mmu-type'
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (12 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 13/22] riscv: Introduce satp mode hw capabilities Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 15/22] hw/riscv/virt: Add OEM_ID and OEM_TABLE_ID fields Palmer Dabbelt
                   ` (8 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Alexandre Ghiti, Andrew Jones,
	Alistair Francis, Bin Meng, Frank Chang, Palmer Dabbelt

From: Alexandre Ghiti <alexghiti@rivosinc.com>

The 'mmu-type' should reflect what the hardware is capable of so use the
new satp_mode field in RISCVCPUConfig to do that.

Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Frank Chang <frank.chang@sifive.com>
Message-ID: <20230303131252.892893-6-alexghiti@rivosinc.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 7f70fa11a1..26eb81d036 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -228,8 +228,9 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
     int cpu;
     uint32_t cpu_phandle;
     MachineState *ms = MACHINE(s);
-    char *name, *cpu_name, *core_name, *intc_name;
+    char *name, *cpu_name, *core_name, *intc_name, *sv_name;
     bool is_32_bit = riscv_is_32bit(&s->soc[0]);
+    uint8_t satp_mode_max;
 
     for (cpu = s->soc[socket].num_harts - 1; cpu >= 0; cpu--) {
         RISCVCPU *cpu_ptr = &s->soc[socket].harts[cpu];
@@ -239,13 +240,15 @@ static void create_fdt_socket_cpus(RISCVVirtState *s, int socket,
         cpu_name = g_strdup_printf("/cpus/cpu@%d",
             s->soc[socket].hartid_base + cpu);
         qemu_fdt_add_subnode(ms->fdt, cpu_name);
-        if (cpu_ptr->cfg.mmu) {
-            qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type",
-                                    (is_32_bit) ? "riscv,sv32" : "riscv,sv48");
-        } else {
-            qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type",
-                                    "riscv,none");
-        }
+
+        satp_mode_max = satp_mode_max_from_map(
+            s->soc[socket].harts[cpu].cfg.satp_mode.map);
+        sv_name = g_strdup_printf("riscv,%s",
+                                  satp_mode_str(satp_mode_max, is_32_bit));
+        qemu_fdt_setprop_string(ms->fdt, cpu_name, "mmu-type", sv_name);
+        g_free(sv_name);
+
+
         name = riscv_isa_string(cpu_ptr);
         qemu_fdt_setprop_string(ms->fdt, cpu_name, "riscv,isa", name);
         g_free(name);
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 15/22] hw/riscv/virt: Add OEM_ID and OEM_TABLE_ID fields
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (13 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 14/22] riscv: Correctly set the device-tree entry 'mmu-type' Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 16/22] hw/riscv/virt: Add a switch to disable ACPI Palmer Dabbelt
                   ` (7 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Bin Meng, Alistair Francis,
	Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

ACPI needs OEM_ID and OEM_TABLE_ID for the machine. Add these fields
in the RISCVVirtState structure and initialize with default values.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-2-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c         | 5 +++++
 include/hw/riscv/virt.h | 2 ++
 2 files changed, 7 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 26eb81d036..5a059489b5 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -49,6 +49,7 @@
 #include "hw/pci/pci.h"
 #include "hw/pci-host/gpex.h"
 #include "hw/display/ramfb.h"
+#include "hw/acpi/aml-build.h"
 
 /*
  * The virt machine physical address space used by some of the devices
@@ -1528,6 +1529,10 @@ static void virt_machine_init(MachineState *machine)
 
 static void virt_machine_instance_init(Object *obj)
 {
+    RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
+
+    s->oem_id = g_strndup(ACPI_BUILD_APPNAME6, 6);
+    s->oem_table_id = g_strndup(ACPI_BUILD_APPNAME8, 8);
 }
 
 static char *virt_get_aia_guests(Object *obj, Error **errp)
diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h
index b3d26135c0..6c7885bf89 100644
--- a/include/hw/riscv/virt.h
+++ b/include/hw/riscv/virt.h
@@ -56,6 +56,8 @@ struct RISCVVirtState {
     bool have_aclint;
     RISCVVirtAIAType aia_type;
     int aia_guests;
+    char *oem_id;
+    char *oem_table_id;
 };
 
 enum {
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 16/22] hw/riscv/virt: Add a switch to disable ACPI
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (14 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 15/22] hw/riscv/virt: Add OEM_ID and OEM_TABLE_ID fields Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 17/22] hw/riscv/virt: Add memmap pointer to RiscVVirtState Palmer Dabbelt
                   ` (6 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

ACPI will be enabled by default. Add a switch to turn off
for testing and debug purposes.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-3-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c         | 29 +++++++++++++++++++++++++++++
 include/hw/riscv/virt.h |  2 ++
 2 files changed, 31 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 5a059489b5..90579a4c0e 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -50,6 +50,7 @@
 #include "hw/pci-host/gpex.h"
 #include "hw/display/ramfb.h"
 #include "hw/acpi/aml-build.h"
+#include "qapi/qapi-visit-common.h"
 
 /*
  * The virt machine physical address space used by some of the devices
@@ -1533,6 +1534,7 @@ static void virt_machine_instance_init(Object *obj)
 
     s->oem_id = g_strndup(ACPI_BUILD_APPNAME6, 6);
     s->oem_table_id = g_strndup(ACPI_BUILD_APPNAME8, 8);
+    s->acpi = ON_OFF_AUTO_AUTO;
 }
 
 static char *virt_get_aia_guests(Object *obj, Error **errp)
@@ -1607,6 +1609,28 @@ static void virt_set_aclint(Object *obj, bool value, Error **errp)
     s->have_aclint = value;
 }
 
+bool virt_is_acpi_enabled(RISCVVirtState *s)
+{
+    return s->acpi != ON_OFF_AUTO_OFF;
+}
+
+static void virt_get_acpi(Object *obj, Visitor *v, const char *name,
+                          void *opaque, Error **errp)
+{
+    RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
+    OnOffAuto acpi = s->acpi;
+
+    visit_type_OnOffAuto(v, name, &acpi, errp);
+}
+
+static void virt_set_acpi(Object *obj, Visitor *v, const char *name,
+                          void *opaque, Error **errp)
+{
+    RISCVVirtState *s = RISCV_VIRT_MACHINE(obj);
+
+    visit_type_OnOffAuto(v, name, &s->acpi, errp);
+}
+
 static HotplugHandler *virt_machine_get_hotplug_handler(MachineState *machine,
                                                         DeviceState *dev)
 {
@@ -1678,6 +1702,11 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)
     sprintf(str, "Set number of guest MMIO pages for AIA IMSIC. Valid value "
                  "should be between 0 and %d.", VIRT_IRQCHIP_MAX_GUESTS);
     object_class_property_set_description(oc, "aia-guests", str);
+    object_class_property_add(oc, "acpi", "OnOffAuto",
+                              virt_get_acpi, virt_set_acpi,
+                              NULL, NULL);
+    object_class_property_set_description(oc, "acpi",
+                                          "Enable ACPI");
 }
 
 static const TypeInfo virt_machine_typeinfo = {
diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h
index 6c7885bf89..62efebaa32 100644
--- a/include/hw/riscv/virt.h
+++ b/include/hw/riscv/virt.h
@@ -58,6 +58,7 @@ struct RISCVVirtState {
     int aia_guests;
     char *oem_id;
     char *oem_table_id;
+    OnOffAuto acpi;
 };
 
 enum {
@@ -123,4 +124,5 @@ enum {
 #define FDT_APLIC_INT_MAP_WIDTH (FDT_PCI_ADDR_CELLS + FDT_PCI_INT_CELLS + \
                                  1 + FDT_APLIC_INT_CELLS)
 
+bool virt_is_acpi_enabled(RISCVVirtState *s);
 #endif
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 17/22] hw/riscv/virt: Add memmap pointer to RiscVVirtState
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (15 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 16/22] hw/riscv/virt: Add a switch to disable ACPI Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 18/22] hw/riscv/virt: Enable basic ACPI infrastructure Palmer Dabbelt
                   ` (5 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Bin Meng, Alistair Francis,
	Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

memmap needs to be exported outside of virt.c so that
modules like acpi can use it. Hence, add a pointer field
in RiscVVirtState structure and initialize it with the
memorymap.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-4-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c         | 2 ++
 include/hw/riscv/virt.h | 1 +
 2 files changed, 3 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index 90579a4c0e..aed303e1e6 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -1458,6 +1458,8 @@ static void virt_machine_init(MachineState *machine)
             ROUND_UP(virt_high_pcie_memmap.base, virt_high_pcie_memmap.size);
     }
 
+    s->memmap = virt_memmap;
+
     /* register system main memory (actual RAM) */
     memory_region_add_subregion(system_memory, memmap[VIRT_DRAM].base,
         machine->ram);
diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h
index 62efebaa32..379501edcc 100644
--- a/include/hw/riscv/virt.h
+++ b/include/hw/riscv/virt.h
@@ -59,6 +59,7 @@ struct RISCVVirtState {
     char *oem_id;
     char *oem_table_id;
     OnOffAuto acpi;
+    const MemMapEntry *memmap;
 };
 
 enum {
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 18/22] hw/riscv/virt: Enable basic ACPI infrastructure
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (16 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 17/22] hw/riscv/virt: Add memmap pointer to RiscVVirtState Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 19/22] hw/riscv/virt: virt-acpi-build.c: Add RINTC in MADT Palmer Dabbelt
                   ` (4 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

Add basic ACPI infrastructure for RISC-V with below tables.
        1) DSDT with below basic objects
                - CPUs
                - fw_cfg
        2) FADT revision 6 with HW_REDUCED flag
        3) XSDT
        4) RSDP

Add this functionality in a new file virt-acpi-build.c and enable
building this infrastructure.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-5-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/Kconfig           |   1 +
 hw/riscv/meson.build       |   1 +
 hw/riscv/virt-acpi-build.c | 304 +++++++++++++++++++++++++++++++++++++
 include/hw/riscv/virt.h    |   1 +
 4 files changed, 307 insertions(+)
 create mode 100644 hw/riscv/virt-acpi-build.c

diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig
index 4550b3b938..6528ebfa3a 100644
--- a/hw/riscv/Kconfig
+++ b/hw/riscv/Kconfig
@@ -44,6 +44,7 @@ config RISCV_VIRT
     select VIRTIO_MMIO
     select FW_CFG_DMA
     select PLATFORM_BUS
+    select ACPI
 
 config SHAKTI_C
     bool
diff --git a/hw/riscv/meson.build b/hw/riscv/meson.build
index ab6cae57ea..2f7ee81be3 100644
--- a/hw/riscv/meson.build
+++ b/hw/riscv/meson.build
@@ -9,5 +9,6 @@ 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'))
 riscv_ss.add(when: 'CONFIG_MICROCHIP_PFSOC', if_true: files('microchip_pfsoc.c'))
+riscv_ss.add(when: 'CONFIG_ACPI', if_true: files('virt-acpi-build.c'))
 
 hw_arch += {'riscv': riscv_ss}
diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c
new file mode 100644
index 0000000000..d6947fdc74
--- /dev/null
+++ b/hw/riscv/virt-acpi-build.c
@@ -0,0 +1,304 @@
+/*
+ * Support for generating ACPI tables and passing them to Guests
+ *
+ * RISC-V virt ACPI generation
+ *
+ * Copyright (C) 2008-2010  Kevin O'Connor <kevin@koconnor.net>
+ * Copyright (C) 2006 Fabrice Bellard
+ * Copyright (C) 2013 Red Hat Inc
+ * Copyright (c) 2015 HUAWEI TECHNOLOGIES CO.,LTD.
+ * Copyright (C) 2021-2023 Ventana Micro Systems Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+
+ * This program is distributed in the hope that 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "hw/acpi/acpi-defs.h"
+#include "hw/acpi/acpi.h"
+#include "hw/acpi/aml-build.h"
+#include "hw/acpi/utils.h"
+#include "qapi/error.h"
+#include "sysemu/reset.h"
+#include "migration/vmstate.h"
+#include "hw/riscv/virt.h"
+
+#define ACPI_BUILD_TABLE_SIZE             0x20000
+
+typedef struct AcpiBuildState {
+    /* Copy of table in RAM (for patching) */
+    MemoryRegion *table_mr;
+    MemoryRegion *rsdp_mr;
+    MemoryRegion *linker_mr;
+    /* Is table patched? */
+    bool patched;
+} AcpiBuildState;
+
+static void acpi_align_size(GArray *blob, unsigned align)
+{
+    /*
+     * Align size to multiple of given size. This reduces the chance
+     * we need to change size in the future (breaking cross version migration).
+     */
+    g_array_set_size(blob, ROUND_UP(acpi_data_len(blob), align));
+}
+
+static void riscv_acpi_madt_add_rintc(uint32_t uid,
+                                      const CPUArchIdList *arch_ids,
+                                      GArray *entry)
+{
+    uint64_t hart_id = arch_ids->cpus[uid].arch_id;
+
+    build_append_int_noprefix(entry, 0x18, 1);       /* Type     */
+    build_append_int_noprefix(entry, 20, 1);         /* Length   */
+    build_append_int_noprefix(entry, 1, 1);          /* Version  */
+    build_append_int_noprefix(entry, 0, 1);          /* Reserved */
+    build_append_int_noprefix(entry, 0x1, 4);        /* Flags    */
+    build_append_int_noprefix(entry, hart_id, 8);    /* Hart ID  */
+    build_append_int_noprefix(entry, uid, 4);        /* ACPI Processor UID */
+}
+
+static void acpi_dsdt_add_cpus(Aml *scope, RISCVVirtState *s)
+{
+    MachineClass *mc = MACHINE_GET_CLASS(s);
+    MachineState *ms = MACHINE(s);
+    const CPUArchIdList *arch_ids = mc->possible_cpu_arch_ids(ms);
+
+    for (int i = 0; i < arch_ids->len; i++) {
+            Aml *dev;
+            GArray *madt_buf = g_array_new(0, 1, 1);
+
+            dev = aml_device("C%.03X", i);
+            aml_append(dev, aml_name_decl("_HID", aml_string("ACPI0007")));
+            aml_append(dev, aml_name_decl("_UID",
+                       aml_int(arch_ids->cpus[i].arch_id)));
+
+            /* build _MAT object */
+            riscv_acpi_madt_add_rintc(i, arch_ids, madt_buf);
+            aml_append(dev, aml_name_decl("_MAT",
+                                          aml_buffer(madt_buf->len,
+                                          (uint8_t *)madt_buf->data)));
+            g_array_free(madt_buf, true);
+
+            aml_append(scope, dev);
+    }
+}
+
+static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap)
+{
+    Aml *dev = aml_device("FWCF");
+    aml_append(dev, aml_name_decl("_HID", aml_string("QEMU0002")));
+
+    /* device present, functioning, decoding, not shown in UI */
+    aml_append(dev, aml_name_decl("_STA", aml_int(0xB)));
+    aml_append(dev, aml_name_decl("_CCA", aml_int(1)));
+
+    Aml *crs = aml_resource_template();
+    aml_append(crs, aml_memory32_fixed(fw_cfg_memmap->base,
+                                       fw_cfg_memmap->size, AML_READ_WRITE));
+    aml_append(dev, aml_name_decl("_CRS", crs));
+    aml_append(scope, dev);
+}
+
+/* FADT */
+static void build_fadt_rev6(GArray *table_data,
+                            BIOSLinker *linker,
+                            RISCVVirtState *s,
+                            unsigned dsdt_tbl_offset)
+{
+    AcpiFadtData fadt = {
+        .rev = 6,
+        .minor_ver = 5,
+        .flags = 1 << ACPI_FADT_F_HW_REDUCED_ACPI,
+        .xdsdt_tbl_offset = &dsdt_tbl_offset,
+    };
+
+    build_fadt(table_data, linker, &fadt, s->oem_id, s->oem_table_id);
+}
+
+/* DSDT */
+static void build_dsdt(GArray *table_data,
+                       BIOSLinker *linker,
+                       RISCVVirtState *s)
+{
+    Aml *scope, *dsdt;
+    const MemMapEntry *memmap = s->memmap;
+    AcpiTable table = { .sig = "DSDT", .rev = 2, .oem_id = s->oem_id,
+                        .oem_table_id = s->oem_table_id };
+
+
+    acpi_table_begin(&table, table_data);
+    dsdt = init_aml_allocator();
+
+    /*
+     * When booting the VM with UEFI, UEFI takes ownership of the RTC hardware.
+     * While UEFI can use libfdt to disable the RTC device node in the DTB that
+     * it passes to the OS, it cannot modify AML. Therefore, we won't generate
+     * the RTC ACPI device at all when using UEFI.
+     */
+    scope = aml_scope("\\_SB");
+    acpi_dsdt_add_cpus(scope, s);
+
+    acpi_dsdt_add_fw_cfg(scope, &memmap[VIRT_FW_CFG]);
+
+    aml_append(dsdt, scope);
+
+    /* copy AML table into ACPI tables blob and patch header there */
+    g_array_append_vals(table_data, dsdt->buf->data, dsdt->buf->len);
+
+    acpi_table_end(linker, &table);
+    free_aml_allocator();
+}
+
+static void virt_acpi_build(RISCVVirtState *s, AcpiBuildTables *tables)
+{
+    GArray *table_offsets;
+    unsigned dsdt, xsdt;
+    GArray *tables_blob = tables->table_data;
+
+    table_offsets = g_array_new(false, true,
+                                sizeof(uint32_t));
+
+    bios_linker_loader_alloc(tables->linker,
+                             ACPI_BUILD_TABLE_FILE, tables_blob,
+                             64, false);
+
+    /* DSDT is pointed to by FADT */
+    dsdt = tables_blob->len;
+    build_dsdt(tables_blob, tables->linker, s);
+
+    /* FADT and others pointed to by XSDT */
+    acpi_add_table(table_offsets, tables_blob);
+    build_fadt_rev6(tables_blob, tables->linker, s, dsdt);
+
+    /* XSDT is pointed to by RSDP */
+    xsdt = tables_blob->len;
+    build_xsdt(tables_blob, tables->linker, table_offsets, s->oem_id,
+                s->oem_table_id);
+
+    /* RSDP is in FSEG memory, so allocate it separately */
+    {
+        AcpiRsdpData rsdp_data = {
+            .revision = 2,
+            .oem_id = s->oem_id,
+            .xsdt_tbl_offset = &xsdt,
+            .rsdt_tbl_offset = NULL,
+        };
+        build_rsdp(tables->rsdp, tables->linker, &rsdp_data);
+    }
+
+    /*
+     * The align size is 128, warn if 64k is not enough therefore
+     * the align size could be resized.
+     */
+    if (tables_blob->len > ACPI_BUILD_TABLE_SIZE / 2) {
+        warn_report("ACPI table size %u exceeds %d bytes,"
+                    " migration may not work",
+                    tables_blob->len, ACPI_BUILD_TABLE_SIZE / 2);
+        error_printf("Try removing some objects.");
+    }
+
+    acpi_align_size(tables_blob, ACPI_BUILD_TABLE_SIZE);
+
+    /* Clean up memory that's no longer used */
+    g_array_free(table_offsets, true);
+}
+
+static void acpi_ram_update(MemoryRegion *mr, GArray *data)
+{
+    uint32_t size = acpi_data_len(data);
+
+    /*
+     * Make sure RAM size is correct - in case it got changed
+     * e.g. by migration
+     */
+    memory_region_ram_resize(mr, size, &error_abort);
+
+    memcpy(memory_region_get_ram_ptr(mr), data->data, size);
+    memory_region_set_dirty(mr, 0, size);
+}
+
+static void virt_acpi_build_update(void *build_opaque)
+{
+    AcpiBuildState *build_state = build_opaque;
+    AcpiBuildTables tables;
+
+    /* No state to update or already patched? Nothing to do. */
+    if (!build_state || build_state->patched) {
+        return;
+    }
+
+    build_state->patched = true;
+
+    acpi_build_tables_init(&tables);
+
+    virt_acpi_build(RISCV_VIRT_MACHINE(qdev_get_machine()), &tables);
+
+    acpi_ram_update(build_state->table_mr, tables.table_data);
+    acpi_ram_update(build_state->rsdp_mr, tables.rsdp);
+    acpi_ram_update(build_state->linker_mr, tables.linker->cmd_blob);
+
+    acpi_build_tables_cleanup(&tables, true);
+}
+
+static void virt_acpi_build_reset(void *build_opaque)
+{
+    AcpiBuildState *build_state = build_opaque;
+    build_state->patched = false;
+}
+
+static const VMStateDescription vmstate_virt_acpi_build = {
+    .name = "virt_acpi_build",
+    .version_id = 1,
+    .minimum_version_id = 1,
+    .fields = (VMStateField[]) {
+        VMSTATE_BOOL(patched, AcpiBuildState),
+        VMSTATE_END_OF_LIST()
+    },
+};
+
+void virt_acpi_setup(RISCVVirtState *s)
+{
+    AcpiBuildTables tables;
+    AcpiBuildState *build_state;
+
+    build_state = g_malloc0(sizeof *build_state);
+
+    acpi_build_tables_init(&tables);
+    virt_acpi_build(s, &tables);
+
+    /* Now expose it all to Guest */
+    build_state->table_mr = acpi_add_rom_blob(virt_acpi_build_update,
+                                              build_state, tables.table_data,
+                                              ACPI_BUILD_TABLE_FILE);
+    assert(build_state->table_mr != NULL);
+
+    build_state->linker_mr = acpi_add_rom_blob(virt_acpi_build_update,
+                                               build_state,
+                                               tables.linker->cmd_blob,
+                                               ACPI_BUILD_LOADER_FILE);
+
+    build_state->rsdp_mr = acpi_add_rom_blob(virt_acpi_build_update,
+                                             build_state, tables.rsdp,
+                                             ACPI_BUILD_RSDP_FILE);
+
+    qemu_register_reset(virt_acpi_build_reset, build_state);
+    virt_acpi_build_reset(build_state);
+    vmstate_register(NULL, 0, &vmstate_virt_acpi_build, build_state);
+
+    /*
+     * Clean up tables but don't free the memory: we track it
+     * in build_state.
+     */
+    acpi_build_tables_cleanup(&tables, false);
+}
diff --git a/include/hw/riscv/virt.h b/include/hw/riscv/virt.h
index 379501edcc..e5c474b26e 100644
--- a/include/hw/riscv/virt.h
+++ b/include/hw/riscv/virt.h
@@ -126,4 +126,5 @@ enum {
                                  1 + FDT_APLIC_INT_CELLS)
 
 bool virt_is_acpi_enabled(RISCVVirtState *s);
+void virt_acpi_setup(RISCVVirtState *vms);
 #endif
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 19/22] hw/riscv/virt: virt-acpi-build.c: Add RINTC in MADT
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (17 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 18/22] hw/riscv/virt: Enable basic ACPI infrastructure Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 20/22] hw/riscv/virt: virt-acpi-build.c: Add RHCT Table Palmer Dabbelt
                   ` (3 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Alistair Francis,
	Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

Add Multiple APIC Description Table (MADT) with the
RINTC structure for each cpu.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-6-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt-acpi-build.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c
index d6947fdc74..026d1eaf88 100644
--- a/hw/riscv/virt-acpi-build.c
+++ b/hw/riscv/virt-acpi-build.c
@@ -32,6 +32,7 @@
 #include "sysemu/reset.h"
 #include "migration/vmstate.h"
 #include "hw/riscv/virt.h"
+#include "hw/riscv/numa.h"
 
 #define ACPI_BUILD_TABLE_SIZE             0x20000
 
@@ -160,6 +161,36 @@ static void build_dsdt(GArray *table_data,
     free_aml_allocator();
 }
 
+/*
+ * ACPI spec, Revision 6.5+
+ * 5.2.12 Multiple APIC Description Table (MADT)
+ * REF: https://github.com/riscv-non-isa/riscv-acpi/issues/15
+ *      https://drive.google.com/file/d/1R6k4MshhN3WTT-hwqAquu5nX6xSEqK2l/view
+ */
+static void build_madt(GArray *table_data,
+                       BIOSLinker *linker,
+                       RISCVVirtState *s)
+{
+    MachineClass *mc = MACHINE_GET_CLASS(s);
+    MachineState *ms = MACHINE(s);
+    const CPUArchIdList *arch_ids = mc->possible_cpu_arch_ids(ms);
+
+    AcpiTable table = { .sig = "APIC", .rev = 6, .oem_id = s->oem_id,
+                        .oem_table_id = s->oem_table_id };
+
+    acpi_table_begin(&table, table_data);
+    /* Local Interrupt Controller Address */
+    build_append_int_noprefix(table_data, 0, 4);
+    build_append_int_noprefix(table_data, 0, 4);   /* MADT Flags */
+
+    /* RISC-V Local INTC structures per HART */
+    for (int i = 0; i < arch_ids->len; i++) {
+        riscv_acpi_madt_add_rintc(i, arch_ids, table_data);
+    }
+
+    acpi_table_end(linker, &table);
+}
+
 static void virt_acpi_build(RISCVVirtState *s, AcpiBuildTables *tables)
 {
     GArray *table_offsets;
@@ -181,6 +212,9 @@ static void virt_acpi_build(RISCVVirtState *s, AcpiBuildTables *tables)
     acpi_add_table(table_offsets, tables_blob);
     build_fadt_rev6(tables_blob, tables->linker, s, dsdt);
 
+    acpi_add_table(table_offsets, tables_blob);
+    build_madt(tables_blob, tables->linker, s);
+
     /* XSDT is pointed to by RSDP */
     xsdt = tables_blob->len;
     build_xsdt(tables_blob, tables->linker, table_offsets, s->oem_id,
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 20/22] hw/riscv/virt: virt-acpi-build.c: Add RHCT Table
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (18 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 19/22] hw/riscv/virt: virt-acpi-build.c: Add RINTC in MADT Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 21/22] hw/riscv/virt.c: Initialize the ACPI tables Palmer Dabbelt
                   ` (2 subsequent siblings)
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

RISC-V ACPI platforms need to provide RISC-V Hart Capabilities
Table (RHCT). Add this to the ACPI tables.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-7-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt-acpi-build.c | 78 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c
index 026d1eaf88..82da0a238c 100644
--- a/hw/riscv/virt-acpi-build.c
+++ b/hw/riscv/virt-acpi-build.c
@@ -33,6 +33,7 @@
 #include "migration/vmstate.h"
 #include "hw/riscv/virt.h"
 #include "hw/riscv/numa.h"
+#include "hw/intc/riscv_aclint.h"
 
 #define ACPI_BUILD_TABLE_SIZE             0x20000
 
@@ -111,6 +112,80 @@ static void acpi_dsdt_add_fw_cfg(Aml *scope, const MemMapEntry *fw_cfg_memmap)
     aml_append(scope, dev);
 }
 
+/* RHCT Node[N] starts at offset 56 */
+#define RHCT_NODE_ARRAY_OFFSET 56
+
+/*
+ * ACPI spec, Revision 6.5+
+ * 5.2.36 RISC-V Hart Capabilities Table (RHCT)
+ * REF: https://github.com/riscv-non-isa/riscv-acpi/issues/16
+ *      https://drive.google.com/file/d/1nP3nFiH4jkPMp6COOxP6123DCZKR-tia/view
+ */
+static void build_rhct(GArray *table_data,
+                       BIOSLinker *linker,
+                       RISCVVirtState *s)
+{
+    MachineClass *mc = MACHINE_GET_CLASS(s);
+    MachineState *ms = MACHINE(s);
+    const CPUArchIdList *arch_ids = mc->possible_cpu_arch_ids(ms);
+    size_t len, aligned_len;
+    uint32_t isa_offset, num_rhct_nodes;
+    RISCVCPU *cpu;
+    char *isa;
+
+    AcpiTable table = { .sig = "RHCT", .rev = 1, .oem_id = s->oem_id,
+                        .oem_table_id = s->oem_table_id };
+
+    acpi_table_begin(&table, table_data);
+
+    build_append_int_noprefix(table_data, 0x0, 4);   /* Reserved */
+
+    /* Time Base Frequency */
+    build_append_int_noprefix(table_data,
+                              RISCV_ACLINT_DEFAULT_TIMEBASE_FREQ, 8);
+
+    /* ISA + N hart info */
+    num_rhct_nodes = 1 + ms->smp.cpus;
+
+    /* Number of RHCT nodes*/
+    build_append_int_noprefix(table_data, num_rhct_nodes, 4);
+
+    /* Offset to the RHCT node array */
+    build_append_int_noprefix(table_data, RHCT_NODE_ARRAY_OFFSET, 4);
+
+    /* ISA String Node */
+    isa_offset = table_data->len - table.table_offset;
+    build_append_int_noprefix(table_data, 0, 2);   /* Type 0 */
+
+    cpu = &s->soc[0].harts[0];
+    isa = riscv_isa_string(cpu);
+    len = 8 + strlen(isa) + 1;
+    aligned_len = (len % 2) ? (len + 1) : len;
+
+    build_append_int_noprefix(table_data, aligned_len, 2);   /* Length */
+    build_append_int_noprefix(table_data, 0x1, 2);           /* Revision */
+
+    /* ISA string length including NUL */
+    build_append_int_noprefix(table_data, strlen(isa) + 1, 2);
+    g_array_append_vals(table_data, isa, strlen(isa) + 1);   /* ISA string */
+
+    if (aligned_len != len) {
+        build_append_int_noprefix(table_data, 0x0, 1);   /* Optional Padding */
+    }
+
+    /* Hart Info Node */
+    for (int i = 0; i < arch_ids->len; i++) {
+        build_append_int_noprefix(table_data, 0xFFFF, 2);  /* Type */
+        build_append_int_noprefix(table_data, 16, 2);      /* Length */
+        build_append_int_noprefix(table_data, 0x1, 2);     /* Revision */
+        build_append_int_noprefix(table_data, 1, 2);    /* Number of offsets */
+        build_append_int_noprefix(table_data, i, 4);    /* ACPI Processor UID */
+        build_append_int_noprefix(table_data, isa_offset, 4); /* Offsets[0] */
+    }
+
+    acpi_table_end(linker, &table);
+}
+
 /* FADT */
 static void build_fadt_rev6(GArray *table_data,
                             BIOSLinker *linker,
@@ -215,6 +290,9 @@ static void virt_acpi_build(RISCVVirtState *s, AcpiBuildTables *tables)
     acpi_add_table(table_offsets, tables_blob);
     build_madt(tables_blob, tables->linker, s);
 
+    acpi_add_table(table_offsets, tables_blob);
+    build_rhct(tables_blob, tables->linker, s);
+
     /* XSDT is pointed to by RSDP */
     xsdt = tables_blob->len;
     build_xsdt(tables_blob, tables->linker, table_offsets, s->oem_id,
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 21/22] hw/riscv/virt.c: Initialize the ACPI tables
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (19 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 20/22] hw/riscv/virt: virt-acpi-build.c: Add RHCT Table Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-06 22:02 ` [PULL 22/22] MAINTAINERS: Add entry for RISC-V ACPI Palmer Dabbelt
  2023-03-07 14:33 ` [PULL 00/22] Sixth RISC-V PR for 8.0 Peter Maydell
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Bin Meng, Andrew Jones,
	Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

Initialize the ACPI tables if the acpi option is not
disabled.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-8-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 hw/riscv/virt.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c
index aed303e1e6..4e3efbee16 100644
--- a/hw/riscv/virt.c
+++ b/hw/riscv/virt.c
@@ -1323,6 +1323,10 @@ static void virt_machine_done(Notifier *notifier, void *data)
     if (kvm_enabled()) {
         riscv_setup_direct_kernel(kernel_entry, fdt_load_addr);
     }
+
+    if (virt_is_acpi_enabled(s)) {
+        virt_acpi_setup(s);
+    }
 }
 
 static void virt_machine_init(MachineState *machine)
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PULL 22/22] MAINTAINERS: Add entry for RISC-V ACPI
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (20 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 21/22] hw/riscv/virt.c: Initialize the ACPI tables Palmer Dabbelt
@ 2023-03-06 22:02 ` Palmer Dabbelt
  2023-03-07 14:33 ` [PULL 00/22] Sixth RISC-V PR for 8.0 Peter Maydell
  22 siblings, 0 replies; 24+ messages in thread
From: Palmer Dabbelt @ 2023-03-06 22:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: qemu-riscv, qemu-devel, Sunil V L, Bin Meng, Alistair Francis,
	Andrew Jones, Palmer Dabbelt

From: Sunil V L <sunilvl@ventanamicro.com>

RISC-V ACPI related functionality for virt machine is added in
virt-acpi-build.c. Add the maintainer entry after moving the
ARM ACPI entry under the main ACPI entry.

Signed-off-by: Sunil V L <sunilvl@ventanamicro.com>
Reviewed-by: Bin Meng <bmeng@tinylab.org>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Message-ID: <20230302091212.999767-9-sunilvl@ventanamicro.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
---
 MAINTAINERS | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 011fd85a09..26bf14b57b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -999,12 +999,6 @@ S: Maintained
 F: hw/ssi/xlnx-versal-ospi.c
 F: include/hw/ssi/xlnx-versal-ospi.h
 
-ARM ACPI Subsystem
-M: Shannon Zhao <shannon.zhaosl@gmail.com>
-L: qemu-arm@nongnu.org
-S: Maintained
-F: hw/arm/virt-acpi-build.c
-
 STM32F100
 M: Alexandre Iooss <erdnaxe@crans.org>
 L: qemu-arm@nongnu.org
@@ -1892,6 +1886,18 @@ F: docs/specs/acpi_nvdimm.rst
 F: docs/specs/acpi_pci_hotplug.rst
 F: docs/specs/acpi_hw_reduced_hotplug.rst
 
+ARM ACPI Subsystem
+M: Shannon Zhao <shannon.zhaosl@gmail.com>
+L: qemu-arm@nongnu.org
+S: Maintained
+F: hw/arm/virt-acpi-build.c
+
+RISC-V ACPI Subsystem
+M: Sunil V L <sunilvl@ventanamicro.com>
+L: qemu-riscv@nongnu.org
+S: Maintained
+F: hw/riscv/virt-acpi-build.c
+
 ACPI/VIOT
 M: Jean-Philippe Brucker <jean-philippe@linaro.org>
 S: Supported
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PULL 00/22] Sixth RISC-V PR for 8.0
  2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
                   ` (21 preceding siblings ...)
  2023-03-06 22:02 ` [PULL 22/22] MAINTAINERS: Add entry for RISC-V ACPI Palmer Dabbelt
@ 2023-03-07 14:33 ` Peter Maydell
  22 siblings, 0 replies; 24+ messages in thread
From: Peter Maydell @ 2023-03-07 14:33 UTC (permalink / raw)
  To: Palmer Dabbelt; +Cc: qemu-riscv, qemu-devel

On Mon, 6 Mar 2023 at 22:04, Palmer Dabbelt <palmer@rivosinc.com> wrote:
>
> The following changes since commit 2946e1af2704bf6584f57d4e3aec49d1d5f3ecc0:
>
>   configure: Disable thread-safety warnings on macOS (2023-03-04 14:03:46 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/palmer-dabbelt/qemu.git tags/pull-riscv-to-apply-20230306
>
> for you to fetch changes up to 47fc340010335bc2549bc1f07e5fd85d86a2b9f9:
>
>   MAINTAINERS: Add entry for RISC-V ACPI (2023-03-06 11:35:08 -0800)
>
> ----------------------------------------------------------------
> Sixth RISC-V PR for 8.0
>
> * Support for the Zicbiom, ZCicboz, and Zicbop extensions.
> * OpenSBI has been updated to version 1.2, see
>   <https://github.com/riscv-software-src/opensbi/releases/tag/v1.2> for
>   the release notes.
> * Support for setting the virtual address width (ie, sv39/sv48/sv57) on
>   the command line.
> * Support for ACPI on RISC-V.
>
> ----------------------------------------------------------------
> Sorry for the flurry of late pull requests, but we had a few stragglers
> (ACPI due to reviews and OpenSBI due to the CI failures, the others I'd
> largely just missed).  I don't intend on sending anything else for the
> soft freeze, this is already well past late enough for me ;)
>
> I'm not exactly sure what happened, but this tag managed to pass CI
> <https://gitlab.com/palmer-dabbelt/qemu/-/pipelines/797833683> despite
> me not really doing anything to fix the timeouts -- hopefully that was
> just a result of me having gotten unlucky or missing a larger timeout in
> my fork, but sorry if I've managed to screw something up.
>
> I have no merge conflicts and the tests are passing locally.  I've got a
> CI run here
> <https://gitlab.com/palmer-dabbelt/qemu/-/pipelines/797922220>, but I
> figured I'd just send this now given that I had one pass from just the
> tag.
>


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/8.0
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2023-03-07 14:33 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-06 22:02 [PULL 00/22] Sixth RISC-V PR for 8.0 Palmer Dabbelt
2023-03-06 22:02 ` [PULL 01/22] target/riscv: implement Zicboz extension Palmer Dabbelt
2023-03-06 22:02 ` [PULL 02/22] target/riscv: implement Zicbom extension Palmer Dabbelt
2023-03-06 22:02 ` [PULL 03/22] target/riscv: add Zicbop cbo.prefetch{i, r, m} placeholder Palmer Dabbelt
2023-03-06 22:02 ` [PULL 04/22] hw/riscv/virt.c: add cbo[mz]-block-size fdt properties Palmer Dabbelt
2023-03-06 22:02 ` [PULL 05/22] disas/riscv Fix ctzw disassemble Palmer Dabbelt
2023-03-06 22:02 ` [PULL 06/22] target/riscv: cpu: Implement get_arch_id callback Palmer Dabbelt
2023-03-06 22:02 ` [PULL 07/22] hw: intc: Use cpu_by_arch_id to fetch CPU state Palmer Dabbelt
2023-03-06 22:02 ` [PULL 08/22] gitlab/opensbi: Move to docker:stable Palmer Dabbelt
2023-03-06 22:02 ` [PULL 09/22] roms/opensbi: Upgrade from v1.1 to v1.2 Palmer Dabbelt
2023-03-06 22:02 ` [PULL 10/22] riscv: Pass Object to register_cpu_props instead of DeviceState Palmer Dabbelt
2023-03-06 22:02 ` [PULL 11/22] riscv: Change type of valid_vm_1_10_[32|64] to bool Palmer Dabbelt
2023-03-06 22:02 ` [PULL 12/22] riscv: Allow user to set the satp mode Palmer Dabbelt
2023-03-06 22:02 ` [PULL 13/22] riscv: Introduce satp mode hw capabilities Palmer Dabbelt
2023-03-06 22:02 ` [PULL 14/22] riscv: Correctly set the device-tree entry 'mmu-type' Palmer Dabbelt
2023-03-06 22:02 ` [PULL 15/22] hw/riscv/virt: Add OEM_ID and OEM_TABLE_ID fields Palmer Dabbelt
2023-03-06 22:02 ` [PULL 16/22] hw/riscv/virt: Add a switch to disable ACPI Palmer Dabbelt
2023-03-06 22:02 ` [PULL 17/22] hw/riscv/virt: Add memmap pointer to RiscVVirtState Palmer Dabbelt
2023-03-06 22:02 ` [PULL 18/22] hw/riscv/virt: Enable basic ACPI infrastructure Palmer Dabbelt
2023-03-06 22:02 ` [PULL 19/22] hw/riscv/virt: virt-acpi-build.c: Add RINTC in MADT Palmer Dabbelt
2023-03-06 22:02 ` [PULL 20/22] hw/riscv/virt: virt-acpi-build.c: Add RHCT Table Palmer Dabbelt
2023-03-06 22:02 ` [PULL 21/22] hw/riscv/virt.c: Initialize the ACPI tables Palmer Dabbelt
2023-03-06 22:02 ` [PULL 22/22] MAINTAINERS: Add entry for RISC-V ACPI Palmer Dabbelt
2023-03-07 14:33 ` [PULL 00/22] Sixth RISC-V PR for 8.0 Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.