qemu/include/hw/intc
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
..
allwinner-a10-pic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
arm_gic_common.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
arm_gic.h Use DECLARE_*CHECKER* when possible (--force mode) 2020-09-09 09:27:11 -04:00
arm_gicv3_common.h hw/intc/arm_gicv3: Support multiple redistributor regions 2021-11-15 16:12:59 +00:00
arm_gicv3_its_common.h hw/intc/arm_gicv3_its: Drop TableDesc and CmdQDesc valid fields 2022-02-08 10:56:29 +00:00
arm_gicv3.h Use DECLARE_*CHECKER* when possible (--force mode) 2020-09-09 09:27:11 -04:00
armv7m_nvic.h arm: Move system PPB container handling to armv7m 2021-09-01 11:08:18 +01:00
aspeed_vic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2835_ic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
bcm2836_control.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
exynos4210_combiner.h hw/arm/exynos4210: Put combiners into state struct 2022-04-21 11:37:04 +01:00
exynos4210_gic.h hw/arm/exynos4210: Put external GIC into state struct 2022-04-21 11:37:04 +01:00
goldfish_pic.h hw/m68k: Fix typo in SPDX tag 2021-11-09 10:11:27 +01:00
heathrow_pic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
i8259.h hw: replace hw/i386/pc.h with a header just for the i8259 2019-12-17 19:33:49 +01:00
imx_avic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
imx_gpcv2.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
intc.h Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
loongson_liointc.h hw/intc: Rework Loongson LIOINTC 2021-01-04 23:24:44 +01:00
m68k_irqc.h hw/m68k: Fix typo in SPDX tag 2021-11-09 10:11:27 +01:00
mips_gic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ppc-uic.h hw/ppc: Remove unused ppcuic_init() 2021-01-19 10:20:29 +11:00
realview_gic.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
riscv_aclint.h hw/intc: Make RISC-V ACLINT mtime MMIO register writable 2022-04-22 10:35:16 +10:00
riscv_aplic.h hw/intc: Add RISC-V AIA APLIC device emulation 2022-02-16 12:24:19 +10:00
riscv_imsic.h hw/intc: Add RISC-V AIA IMSIC device emulation 2022-03-03 13:14:50 +10:00
rx_icu.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
sifive_plic.h hw/intc: sifive_plic: Convert the PLIC to use RISC-V CPU GPIO lines 2021-09-21 07:56:49 +10:00
xlnx-pmu-iomod-intc.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
xlnx-zynqmp-ipi.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00