xemu/hw
Frank Chang e2f01f3c2e hw/intc: Make RISC-V ACLINT mtime MMIO register writable
RISC-V privilege spec defines that mtime is exposed as a memory-mapped
machine-mode read-write register. However, as QEMU uses host monotonic
timer as timer source, this makes mtime to be read-only in RISC-V
ACLINT.

This patch makes mtime to be writable by recording the time delta value
between the mtime value to be written and the timer value at the time
mtime is written. Time delta value is then added back whenever the timer
value is retrieved.

Signed-off-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Jim Shu <jim.shu@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20220420080901.14655-4-frank.chang@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2022-04-22 10:35:16 +10:00
..
9pfs Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
acpi acpi: fix acpi_index migration 2022-04-06 20:03:26 +01:00
adc hw/adc: Add basic Aspeed ADC model 2021-10-12 08:20:08 +02:00
alpha Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
arm Misc cleanups 2022-04-21 09:27:54 -07:00
audio * Fix stack-overflow due to recursive DMA in intel-hda (CVE-2021-3611) 2022-03-22 20:45:30 +00:00
avr Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
block aspeed queue: 2022-03-09 18:06:40 +00:00
char Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
core hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
cpu cpu/core: Fix "help" of CPU core device types 2021-04-09 16:05:16 -04:00
cris Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
display * Add cpu0-id to query-sev-capabilities 2022-04-19 18:22:16 -07:00
dma Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
gpio hw: aspeed_gpio: Cleanup stray semicolon after switch 2022-03-08 09:18:11 +01:00
hppa Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
hyperv hw/hyperv: remove needless qemu-common.h include 2022-04-21 16:56:55 +04:00
i2c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
i386 hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
ide MIPS patches queue 2022-03-09 09:13:39 +00:00
input Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
intc hw/intc: Make RISC-V ACLINT mtime MMIO register writable 2022-04-22 10:35:16 +10:00
ipack qbus: Rename qbus_create_inplace() to qbus_init() 2021-09-30 13:42:10 +01:00
ipmi hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
isa hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
m68k hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
mem Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
microblaze Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
mips Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
misc Misc cleanups 2022-04-21 09:27:54 -07:00
net util/log: Remove qemu_log_flush 2022-04-20 10:51:11 -07:00
nios2 Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
nubus qbus: Rename qbus_create_inplace() to qbus_init() 2021-09-30 13:42:10 +01:00
nvme Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
nvram Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
openrisc hw/openrisc/openrisc_sim: Add support for initrd loading 2022-02-26 10:39:36 +09:00
pci pcie: Don't try triggering a LSI when not defined 2022-04-20 18:00:30 -03:00
pci-bridge pci: expose TYPE_XIO3130_DOWNSTREAM name 2022-03-06 05:08:23 -05:00
pci-host ppc/pnv: Remove LSI on the PCIE host bridge 2022-04-20 18:00:30 -03:00
pcmcia hw/pcmcia: Do not register PCMCIA type if not required 2021-05-02 17:24:50 +02:00
ppc hw/ppc: change indentation to spaces from TABs 2022-04-20 18:00:30 -03:00
rdma Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
remote Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
riscv hw/riscv: virt: fix DT property mmu-type when CPU mmu option is disabled 2022-04-22 10:35:16 +10:00
rtc Replace qemu_gettimeofday() with g_get_real_time() 2022-04-06 10:50:37 +02:00
rx Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
s390x hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
scsi Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
sd Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
sensor hw/sensor: add Renesas raa228000 device 2022-03-08 18:46:48 +01:00
sh4 Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
smbios hw/smbios: Add table 4 parameter, "processor-id" 2022-03-06 05:28:55 -05:00
sparc Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
sparc64 Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
ssi hw/ssi: Add Ibex SPI device model 2022-04-22 10:35:16 +10:00
timer timer: cadence_ttc: Break out header file to allow embedding 2022-04-21 11:37:03 +01:00
tpm Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
tricore hw/tricore: fix inclusion of tricore_testboard 2021-07-20 20:10:21 +02:00
usb Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
vfio Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
virtio Don't include sysemu/tcg.h if it is not necessary 2022-04-20 12:12:47 -07:00
watchdog watchdog: remove select_watchdog_action 2021-11-02 15:57:27 +01:00
xen util/log: Remove qemu_log_flush 2022-04-20 10:51:11 -07:00
xenpv meson: convert hw/arch* 2020-08-21 06:30:33 -04:00
xtensa Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
Kconfig hw/arm: xlnx-zcu102: Add Xilinx eFUSE device 2021-09-30 13:42:10 +01:00
meson.build sensor: Move hardware sensors from misc to a sensor directory 2021-06-17 07:10:32 -05:00