qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL] RISC-V Patches for the 4.1 Soft Freeze, Part 1


From: Palmer Dabbelt
Subject: [Qemu-devel] [PULL] RISC-V Patches for the 4.1 Soft Freeze, Part 1
Date: Sat, 25 May 2019 18:09:19 -0700

The following changes since commit a7b21f6762a2d6ec08106d8a7ccb11829914523f:

  Merge remote-tracking branch 
'remotes/vivier2/tags/linux-user-for-4.1-pull-request' into staging (2019-05-24 
12:47:49 +0100)

are available in the Git repository at:

  git://github.com/palmer-dabbelt/qemu.git tags/riscv-for-master-4.1-sf0

for you to fetch changes up to 1e0d985fa9136a563168a3da66f3d17820404ee2:

  target/riscv: Only flush TLB if SATP.ASID changes (2019-05-24 12:09:25 -0700)

----------------------------------------------------------------
RISC-V Patches for the 4.1 Soft Freeze, Part 1

This tag contains a handful of patches that I'd like to target for 4.1:

* An emulation for SiFive's GPIO device.
* A fix to disallow sfence.vma from userspace.
* Additional decodetree cleanups that should have no functional impact.
* C extension emulation fidelity fixes that were noticed as part of that
  cleanup process.
* A new "spike" target, along with the deprecation of a handful of old
  targets and CPUs.
* Some initial infastructure related to the hypervisor extension.
* An emulation fidelity fix that prevents prevents arbitrary bits in the
  SIP CSR from being set.
* A small performance improvement that avoids excessive TLB flushing
  when the ASID does not change.

This time I've used a new testing workflow: I've tested on both 32-bit
and 64-bit builds of OpenEmbedded, via the default OpenSBI-based boot
flow.

----------------------------------------------------------------
Alistair Francis (14):
      linux-user/riscv: Add the CPU type as a comment
      riscv: virt: Allow specifying a CPU via commandline
      target/riscv: Create settable CPU properties
      target/riscv: Add a base 32 and 64 bit CPU
      target/riscv: Deprecate the generic no MMU CPUs
      riscv: spike: Add a generic spike machine
      target/riscv: Mark privilege level 2 as reserved
      target/riscv: Trigger interrupt on MIP update asynchronously
      target/riscv: Improve the scause logic
      target/riscv: Add the MPV and MTL mstatus bits
      target/riscv: Allow setting mstatus virtulisation bits
      target/riscv: Add Hypervisor CSR macros
      target/riscv: Add the HSTATUS register masks
      target/riscv: Add the HGATP register masks

Fabien Chouteau (2):
      SiFive RISC-V GPIO Device
      RISC-V: fix single stepping over ret and other branching instructions

Jonathan Behrens (4):
      target/riscv: Do not allow sfence.vma from user mode
      target/riscv: Remove unused include of riscv_htif.h for virt board riscv
      target/riscv: More accurate handling of `sip` CSR
      target/riscv: Only flush TLB if SATP.ASID changes

Richard Henderson (9):
      target/riscv: Name the argument sets for all of insn32 formats
      target/riscv: Use --static-decode for decodetree
      target/riscv: Merge argument sets for insn32 and insn16
      target/riscv: Merge argument decode for RVC shifti
      target/riscv: Use pattern groups in insn16.decode
      target/riscv: Split RVC32 and RVC64 insns into separate files
      target/riscv: Split gen_arith_imm into functional and temp
      target/riscv: Remove spaces from register names
      target/riscv: Add checks for several RVC reserved operands

 Makefile.objs                                  |   1 +
 hw/riscv/Makefile.objs                         |   1 +
 hw/riscv/sifive_e.c                            |  28 +-
 hw/riscv/sifive_gpio.c                         | 388 +++++++++++++++++++++++++
 hw/riscv/spike.c                               | 106 ++++++-
 hw/riscv/trace-events                          |   7 +
 hw/riscv/virt.c                                |   4 +-
 include/hw/riscv/sifive_e.h                    |   8 +-
 include/hw/riscv/sifive_gpio.h                 |  72 +++++
 include/hw/riscv/virt.h                        |   4 +-
 linux-user/riscv/target_elf.h                  |   1 +
 qemu-deprecated.texi                           |  21 ++
 target/riscv/Makefile.objs                     |  15 +-
 target/riscv/cpu.c                             |  79 ++++-
 target/riscv/cpu.h                             |  10 +
 target/riscv/cpu_bits.h                        |  45 ++-
 target/riscv/cpu_helper.c                      |  35 ++-
 target/riscv/csr.c                             |  30 +-
 target/riscv/insn16-32.decode                  |  28 ++
 target/riscv/insn16-64.decode                  |  36 +++
 target/riscv/insn16.decode                     | 173 +++++------
 target/riscv/insn32.decode                     |  10 +-
 target/riscv/insn_trans/trans_privileged.inc.c |   8 +-
 target/riscv/insn_trans/trans_rvc.inc.c        | 347 ----------------------
 target/riscv/insn_trans/trans_rvi.inc.c        |  26 +-
 target/riscv/op_helper.c                       |   7 +-
 target/riscv/translate.c                       |  77 ++++-
 27 files changed, 1053 insertions(+), 514 deletions(-)
 create mode 100644 hw/riscv/sifive_gpio.c
 create mode 100644 hw/riscv/trace-events
 create mode 100644 include/hw/riscv/sifive_gpio.h
 create mode 100644 target/riscv/insn16-32.decode
 create mode 100644 target/riscv/insn16-64.decode
 delete mode 100644 target/riscv/insn_trans/trans_rvc.inc.c




reply via email to

[Prev in Thread] Current Thread [Next in Thread]