Skip to content

Commit c13b8e9

Browse files
committed
Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20220216' into staging
Fourth RISC-V PR for QEMU 7.0 * Remove old Ibex PLIC header file * Allow writing 8 bytes with generic loader * Fixes for RV128 * Refactor RISC-V CPU configs * Initial support for XVentanaCondOps custom extension * Fix for vill field in vtype * Fix trap cause for RV32 HS-mode CSR access from RV64 HS-mode * Support for svnapot, svinval and svpbmt extensions # gpg: Signature made Wed 16 Feb 2022 06:24:52 GMT # gpg: using RSA key F6C4AC46D4934868D3B8CE8F21E10D29DF977054 # gpg: Good signature from "Alistair Francis <[email protected]>" [full] # Primary key fingerprint: F6C4 AC46 D493 4868 D3B8 CE8F 21E1 0D29 DF97 7054 * remotes/alistair/tags/pull-riscv-to-apply-20220216: (35 commits) docs/system: riscv: Update description of CPU target/riscv: add support for svpbmt extension target/riscv: add support for svinval extension target/riscv: add support for svnapot extension target/riscv: add PTE_A/PTE_D/PTE_U bits check for inner PTE target/riscv: Ignore reserved bits in PTE for RV64 hw/intc: Add RISC-V AIA APLIC device emulation target/riscv: Allow users to force enable AIA CSRs in HART hw/riscv: virt: Use AIA INTC compatible string when available target/riscv: Implement AIA IMSIC interface CSRs target/riscv: Implement AIA xiselect and xireg CSRs target/riscv: Implement AIA mtopi, stopi, and vstopi CSRs target/riscv: Implement AIA interrupt filtering CSRs target/riscv: Implement AIA hvictl and hviprioX CSRs target/riscv: Implement AIA CSRs for 64 local interrupts on RV32 target/riscv: Implement AIA local interrupt priorities target/riscv: Allow AIA device emulation to set ireg rmw callback target/riscv: Add defines for AIA CSRs target/riscv: Add AIA cpu feature target/riscv: Allow setting CPU feature from machine/device emulation ... Signed-off-by: Peter Maydell <[email protected]>
2 parents ad38520 + 7035b84 commit c13b8e9

27 files changed

+3252
-370
lines changed

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,13 @@ F: include/hw/riscv/
286286
F: linux-user/host/riscv32/
287287
F: linux-user/host/riscv64/
288288

289+
RISC-V XVentanaCondOps extension
290+
M: Philipp Tomsich <[email protected]>
291+
292+
S: Supported
293+
F: target/riscv/XVentanaCondOps.decode
294+
F: target/riscv/insn_trans/trans_xventanacondops.c.inc
295+
289296
RENESAS RX CPUs
290297
R: Yoshinori Sato <[email protected]>
291298
S: Orphan

docs/system/riscv/virt.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ The ``virt`` machine supports the following devices:
2323
* 1 generic PCIe host bridge
2424
* The fw_cfg device that allows a guest to obtain data from QEMU
2525

26-
Note that the default CPU is a generic RV32GC/RV64GC. Optional extensions
27-
can be enabled via command line parameters, e.g.: ``-cpu rv64,x-h=true``
28-
enables the hypervisor extension for RV64.
26+
The hypervisor extension has been enabled for the default CPU, so virtual
27+
machines with hypervisor extension can simply be used without explicitly
28+
declaring.
2929

3030
Hardware configuration information
3131
----------------------------------

hw/core/generic-loader.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ static void generic_loader_reset(void *opaque)
5656
}
5757

5858
if (s->data_len) {
59-
assert(s->data_len < sizeof(s->data));
59+
assert(s->data_len <= sizeof(s->data));
6060
dma_memory_write(s->cpu->as, s->addr, &s->data, s->data_len,
6161
MEMTXATTRS_UNSPECIFIED);
6262
}

hw/intc/Kconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ config LOONGSON_LIOINTC
7070
config RISCV_ACLINT
7171
bool
7272

73+
config RISCV_APLIC
74+
bool
75+
7376
config SIFIVE_PLIC
7477
bool
7578

hw/intc/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ specific_ss.add(when: 'CONFIG_S390_FLIC', if_true: files('s390_flic.c'))
5050
specific_ss.add(when: 'CONFIG_S390_FLIC_KVM', if_true: files('s390_flic_kvm.c'))
5151
specific_ss.add(when: 'CONFIG_SH_INTC', if_true: files('sh_intc.c'))
5252
specific_ss.add(when: 'CONFIG_RISCV_ACLINT', if_true: files('riscv_aclint.c'))
53+
specific_ss.add(when: 'CONFIG_RISCV_APLIC', if_true: files('riscv_aplic.c'))
5354
specific_ss.add(when: 'CONFIG_SIFIVE_PLIC', if_true: files('sifive_plic.c'))
5455
specific_ss.add(when: 'CONFIG_XICS', if_true: files('xics.c'))
5556
specific_ss.add(when: ['CONFIG_KVM', 'CONFIG_XICS'],

0 commit comments

Comments
 (0)