qemu/hw
Linus Walleij 24da047af0 pl110: Implement vertical compare/next base interrupts
This implements rudimentary support for interrupt generation on the
PL110. I am working on a new DRI/KMS driver for Linux and since that
uses the blanking interrupt, we need something to fire here. Without
any interrupt support Linux waits for a while and then gives ugly
messages about the vblank not working in the console (it does not
hang perpetually or anything though, DRI is pretty forgiving).

I solved it for now by setting up a timer to fire at 60Hz and pull
the interrupts for "vertical compare" and "next memory base"
at this interval. This works fine and fires roughly the same number
of IRQs on QEMU as on the hardware and leaves the console clean
and nice.

People who want to create more accurate emulation can probably work
on top of this if need be. It is certainly closer to the hardware
behaviour than what we have today anyway.

Cc: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Message-id: 20180123225654.5764-1-linus.walleij@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
[PMM: folded long lines]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-01-25 11:45:30 +00:00
..
9pfs 9pfs: deprecate handle backend 2018-01-08 11:18:23 +01:00
acpi nvdimm: add 'unarmed' option 2018-01-19 11:18:51 -02:00
adc maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
alpha Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
arm hw/arm/virt: Check that the CPU realize method succeeded 2018-01-25 11:45:30 +00:00
audio Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
block Block layer patches 2018-01-24 22:55:57 +00:00
bt hw/bt: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
char maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
core linux-user: remove nmi.c and fw-path-provider.c 2018-01-23 14:20:52 +01:00
cpu
cris
display pl110: Implement vertical compare/next base interrupts 2018-01-25 11:45:30 +00:00
dma Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
gpio Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
i2c Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
i386 possible_cpus: add CPUArchId::type field 2018-01-19 11:18:51 -02:00
ide Pull request for various patches that have been reviewed and 2018-01-23 10:15:09 +00:00
input Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
intc hw/intc/arm_gic: Fix the NS view of C_BPR when C_CTRL.CBPR is 1 2018-01-25 11:45:30 +00:00
ipack
ipmi hw/ipmi: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
isa hw/isa: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
lm32
m68k
mem nvdimm: add 'unarmed' option 2018-01-19 11:18:51 -02:00
microblaze
mips Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
misc Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
moxie hw/moxie/moxiesim: Add support for loading a BIOS on moxiesim 2017-12-21 09:30:31 +01:00
net i.MX: Fix FEC/ENET receive funtions 2018-01-25 11:45:28 +00:00
nios2
nvram fw_cfg: fix memory corruption when all fw_cfg slots are used 2018-01-19 11:18:51 -02:00
openrisc
pci pci/shpc: Move function to generic header file 2018-01-18 21:52:38 +02:00
pci-bridge hw/pci-bridge: fix QEMU crash because of pcie-root-port 2018-01-18 21:52:38 +02:00
pci-host Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
pcmcia
ppc target/ppc/spapr_caps: Add macro to generate spapr_caps migration vmstate 2018-01-20 17:15:05 +11:00
s390x s390x: fix storage attributes migration for non-small guests 2018-01-22 11:04:52 +01:00
scsi * QemuMutex tracing improvements (Alex) 2018-01-16 15:45:15 +00:00
sd sdhci: fix a NULL pointer dereference due to uninitialized AddresSpace object 2018-01-25 11:45:30 +00:00
sh4
smbios Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
sparc sun4m: remove include/hw/sparc/sun4m.h and all references to it 2018-01-09 21:48:20 +00:00
sparc64 sun4u_iommu: add trace event for IOMMU translations 2018-01-09 21:48:20 +00:00
ssi xilinx_spips: Correct usage of an uninitialized local variable 2018-01-25 11:45:30 +00:00
timer Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
tpm maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
tricore
unicore32
usb Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
vfio Merge remote-tracking branch 'origin/master' into HEAD 2018-01-11 22:03:50 +02:00
virtio Revert "virtio: postpone the execution of event_notifier_cleanup function" 2018-01-24 19:20:19 +02:00
watchdog
xen xen: Add only xen-sysdev to dynamic sysbus device list 2018-01-19 11:18:51 -02:00
xenpv Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
xtensa target/xtensa: allow different default CPU for MMU/noMMU 2018-01-22 11:54:23 -08:00
Makefile.objs