This is a series of bug fixes and code cleanups that we would
like to get in before the QEMU 2.12 release. We are respinning
this series to include two new bug fixes.
This series also addresses post-merge feedback such as updating
the cpu initialization model to conform with other architectures
as requested by Igor Mammedov.
The riscv_isa_string patch has been dropped as it was merged
independently. The patch to hold rcu_read_lock when accessing
physical memory has been dropped as requested by Paolo Bonzini.
Implements WARL behavior for CSRs that don't support writes
Improves specification conformance of the page table walker
Change access checks from ternary operator to if statements
Checks for misaligned PPNs
Disallow M-mode or S-mode from fetching from User pages
Adds reserved PTE flag check: W or W|X
Set READ flag for PTE X flag if mstatus.mxr is in effect
Improves page walker comments and general readability
Several trivial code cleanups to hw/riscv
Replacing hard coded constants with reference to enums
or the machine memory maps.
Remove unnecessary class initialization boilerplate
Adds bounds checks when writing device-tree to ROM
Updates the cpu model to use a more modern interface
Adds hexidecimal instruction bytes to disassembly output
Sets mtval/stval to zero on exceptions without addresses
Critical fix for an mstatus.FS bug when MTTCG is enabled
Fix for incorrect disassembly of addiw instructions
v6
added workaround for critical mstatus.FS MTTCG bug
added fix for incorrect disassembly for addiw
v5
dropped fix for memory allocation bug in riscv_isa_string
dropped Hold rcu_read_lock when accessing memory
v4
added fix for memory allocation bug in riscv_isa_string
trivial fix to remove erroneous comment from translate.c
v3
refactor rcu_read_lock in PTE update to use single unlock
mstatus.mxr is in effect regardless of privilege mode
remove unnecessary class init from riscv_hart
set mtval/stval to zero on exceptions without addresses
v2
remove unused class boilerplate retains qom parent_obj
This is a series of bug fixes and code cleanups that we would like to get in before the QEMU 2.12 release. We are respinning this series to include two new bug fixes.
This series also addresses post-merge feedback such as updating the cpu initialization model to conform with other architectures as requested by Igor Mammedov.
The riscv_isa_string patch has been dropped as it was merged independently. The patch to hold rcu_read_lock when accessing physical memory has been dropped as requested by Paolo Bonzini.
v6
v5
v4
v3
v2
v1