qemu/include/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
..
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
arm hw/arm/exynos4210: Drop Exynos4210Irq struct 2022-04-21 11:37:04 +01:00
audio
block block: Add backend_defaults property 2021-07-06 14:28:55 +01:00
char hw/riscv: spike: Allow using binary firmware as bios 2022-01-21 15:52:56 +10:00
core compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
cpu Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cris hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
display macfb: increase number of registers saved in MacfbState 2022-03-09 09:29:10 +00:00
dma hw/dma/xlnx_csu_dma: Support starting a read transfer through a class method 2022-01-28 14:29:46 +00:00
firmware hw/smbios: Use qapi for SmbiosEntryPointType 2022-01-07 05:19:55 -05:00
gpio hw: aspeed_gpio: Fix GPIO array indexing 2021-10-12 08:20:08 +02:00
hyperv hyperv: Add support to process syndbg commands 2022-04-06 14:31:56 +02:00
i2c hw/i2c: Added linear mode translation for pmbus devices 2022-03-08 18:46:48 +01:00
i386 hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
ide ide: Rename ide_bus_new() to ide_bus_init() 2021-09-30 13:44:13 +01:00
input hw/acpi: add indication for i8042 in IA-PC boot flags of the FADT table 2022-03-06 16:06:16 -05:00
intc hw/intc: Make RISC-V ACLINT mtime MMIO register writable 2022-04-22 10:35:16 +10:00
ipack ipack: Rename ipack_bus_new_inplace() to ipack_bus_init() 2021-09-30 13:42:10 +01:00
ipmi Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
isa hw/isa: Inline and remove one-line isa_init_irq() 2022-03-08 19:38:17 +01:00
kvm target/i386: always create kvmclock device 2020-09-30 19:11:36 +02:00
m68k hw/m68k/mcf: Add missing 'exec/hwaddr.h' header 2022-02-21 10:35:13 +01:00
mem nvdimm: Add realize, unrealize callbacks to NVDIMMDevice class 2022-02-18 08:34:13 +01:00
mips Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
misc hw/misc: Add PWRON STRAP bit fields in GCR module 2022-04-21 11:37:05 +01:00
net hw/net: Move MV88W8618 network device out of hw/arm/ directory 2022-01-20 11:47:52 +00:00
nubus nubus: add support for slot IRQs 2021-09-29 10:45:19 +02:00
nvram hw/nvram: Introduce Xilinx battery-backed ram 2021-09-30 13:42:10 +01:00
pci acpi: pcihp: pcie: set power on cap on parent slot 2022-03-06 05:08:23 -05:00
pci-bridge pci: expose TYPE_XIO3130_DOWNSTREAM name 2022-03-06 05:08:23 -05:00
pci-host ppc/pnv: Fix number of registers in the PCIe controller on POWER9 2022-04-04 08:49:06 +02:00
ppc hw/ppc: change indentation to spaces from TABs 2022-04-20 18:00:30 -03:00
rdma qapi: introduce x-query-rdma QMP command 2021-11-02 15:55:14 +00:00
remote multi-process: perform device reset in the remote process 2021-02-10 09:23:28 +00:00
riscv riscv: opentitan: Connect opentitan SPI Host 2022-04-22 10:35:16 +10:00
rtc hw/rtc/mc146818rtc: QOM'ify IRQ number 2022-03-08 19:38:17 +01:00
rx
s390x s390x/css: fix PMCW invalid mask 2022-01-17 08:34:19 +01:00
scsi esp: convert ESPState pdma_cb from a function pointer to an integer 2022-03-09 09:29:10 +00:00
sd hw/sd: add nuvoton MMC 2021-11-02 14:14:55 -04:00
sensor hw/sensor: add Renesas raa228000 device 2022-03-08 18:46:48 +01:00
sh4 hw/intc/sh_intc: Inline and drop sh_intc_source() function 2021-10-30 18:39:37 +02:00
southbridge hw/isa/piix4: Resolve global instance variable 2022-03-08 19:38:05 +01:00
sparc hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01: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
tricore hw/tricore: Remove unused and incorrect header 2022-02-21 10:36:50 +01:00
usb usb-storage: tag usb_msd_csw as packed struct 2021-11-02 17:24:18 +01:00
vfio vfio: Query and store the maximum number of possible DMA mappings 2021-07-08 15:54:45 -04:00
virtio Replace TARGET_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
watchdog watchdog: aspeed: Sanitize control register values 2021-09-20 08:50:59 +02:00
xen Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
xtensa
boards.h hw: Add compat machines for 7.1 2022-04-20 09:36:24 +02:00
clock.h host-utils: add 128-bit quotient support to divu128/divs128 2021-10-27 17:10:00 -07:00
elf_ops.h hw/elf_ops: clear uninitialized segment space 2022-01-20 09:09:37 +01:00
fw-path-provider.h
hotplug.h
hw.h compiler.h: replace QEMU_NORETURN with G_NORETURN 2022-04-21 17:03:51 +04:00
ide.h
irq.h hw/core/irq: remove unused 'qemu_irq_split' function 2022-04-21 11:37:04 +01:00
loader-fit.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
loader.h semihosting/arm-compat: replace heuristic for softmmu SYS_HEAPINFO 2022-02-28 16:42:35 +00:00
nmi.h
or-irq.h
pcmcia.h Use OBJECT_DECLARE_TYPE when possible 2020-09-18 14:12:32 -04:00
platform-bus.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
ptimer.h ptimer: Add new ptimer_set_period_from_clock() function 2021-01-29 15:54:42 +00:00
qdev-clock.h clock: Add ClockEvent parameter to callbacks 2021-03-08 17:20:01 +00:00
qdev-core.h qdev-core.h: Fix wrongly named reference to TYPE_SPLIT_IRQ 2022-01-18 12:32:16 +01:00
qdev-dma.h
qdev-properties-system.h qdev: Reuse DEFINE_PROP in all DEFINE_PROP_* macros 2020-12-18 15:20:17 -05:00
qdev-properties.h qdev-properties: PropertyInfo: add realized_set_allowed field 2021-09-01 12:57:31 +02:00
register.h hw/core/register: Add more 64-bit utilities 2021-09-01 11:59:12 +10:00
registerfields.h hw/registerfields: Add FIELD_SEX<N> and FIELD_SDP<N> 2022-03-02 19:27:36 +00:00
resettable.h
stream.h hw/core/stream: Rename StreamSlave as StreamSink 2020-12-10 12:15:04 -05:00
sysbus.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
usb.h usb: drop usb_host_dev_is_scsi_storage hook 2021-07-09 18:21:33 +02:00
vmstate-if.h