From: Peter Maydell Date: Sun, 13 Sep 2020 19:29:35 +0000 (+0100) Subject: Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20200910... X-Git-Tag: v5.2.0-rc0~118 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f00f57f344236bbbe4c20845a0276a490dd5ffea;p=thirdparty%2Fqemu.git Merge remote-tracking branch 'remotes/alistair/tags/pull-riscv-to-apply-20200910' into staging This PR includes multiple fixes and features for RISC-V: - Fixes a bug in printing trap causes - Allows 16-bit writes to the SiFive test device. This fixes the failure to reboot the RISC-V virt machine - Support for the Microchip PolarFire SoC and Icicle Kit - A reafactor of RISC-V code out of hw/riscv # gpg: Signature made Thu 10 Sep 2020 19:08:06 BST # gpg: using RSA key F6C4AC46D4934868D3B8CE8F21E10D29DF977054 # gpg: Good signature from "Alistair Francis " [full] # Primary key fingerprint: F6C4 AC46 D493 4868 D3B8 CE8F 21E1 0D29 DF97 7054 * remotes/alistair/tags/pull-riscv-to-apply-20200910: (30 commits) hw/riscv: Sort the Kconfig options in alphabetical order hw/riscv: Drop CONFIG_SIFIVE hw/riscv: Always build riscv_hart.c hw/riscv: Move sifive_test model to hw/misc hw/riscv: Move sifive_uart model to hw/char hw/riscv: Move riscv_htif model to hw/char hw/riscv: Move sifive_plic model to hw/intc hw/riscv: Move sifive_clint model to hw/intc hw/riscv: Move sifive_gpio model to hw/gpio hw/riscv: Move sifive_u_otp model to hw/misc hw/riscv: Move sifive_u_prci model to hw/misc hw/riscv: Move sifive_e_prci model to hw/misc hw/riscv: sifive_u: Connect a DMA controller hw/riscv: clint: Avoid using hard-coded timebase frequency hw/riscv: microchip_pfsoc: Hook GPIO controllers hw/riscv: microchip_pfsoc: Connect 2 Cadence GEMs hw/arm: xlnx: Set all boards' GEM 'phy-addr' property value to 23 hw/net: cadence_gem: Add a new 'phy-addr' property hw/riscv: microchip_pfsoc: Connect a DMA controller hw/dma: Add SiFive platform DMA controller emulation ... Signed-off-by: Peter Maydell # Conflicts: # hw/riscv/trace-events --- f00f57f344236bbbe4c20845a0276a490dd5ffea diff --cc include/hw/riscv/riscv_hart.h index 9be1fd80ed8,77aa4bc948b..ac2cb62e1bb --- a/include/hw/riscv/riscv_hart.h +++ b/include/hw/riscv/riscv_hart.h @@@ -39,7 -37,8 +39,8 @@@ struct RISCVHartArrayState uint32_t num_harts; uint32_t hartid_base; char *cpu_type; + uint64_t resetvec; RISCVCPU *harts; -} RISCVHartArrayState; +}; #endif diff --cc meson.build index bd84a1e7770,bc869c676af..690723b4708 --- a/meson.build +++ b/meson.build @@@ -773,10 -773,8 +773,9 @@@ if have_syste 'hw/watchdog', 'hw/xen', 'hw/gpio', - 'hw/riscv', 'migration', 'net', + 'softmmu', 'ui', ] endif diff --cc target/riscv/cpu.h index ca75fc761ef,65daa736753..4c00d35ccdd --- a/target/riscv/cpu.h +++ b/target/riscv/cpu.h @@@ -288,8 -292,9 +289,9 @@@ struct RISCVCPU uint16_t elen; bool mmu; bool pmp; + uint64_t resetvec; } cfg; -} RISCVCPU; +}; static inline int riscv_has_ext(CPURISCVState *env, target_ulong ext) {