linux/arch/arm/kvm
Christoffer Dall 45e96ea6b3 KVM: ARM: Handle I/O aborts
When the guest accesses I/O memory this will create data abort
exceptions and they are handled by decoding the HSR information
(physical address, read/write, length, register) and forwarding reads
and writes to QEMU which performs the device emulation.

Certain classes of load/store operations do not support the syndrome
information provided in the HSR.  We don't support decoding these (patches
are available elsewhere), so we report an error to user space in this case.

This requires changing the general flow somewhat since new calls to run
the VCPU must check if there's a pending MMIO load and perform the write
after userspace has made the data available.

Reviewed-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com>
2013-01-23 13:29:17 -05:00
..
arm.c KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
coproc_a15.c KVM: ARM: Emulation framework and CP15 emulation 2013-01-23 13:29:13 -05:00
coproc.c KVM: ARM: VFP userspace interface 2013-01-23 13:29:15 -05:00
coproc.h KVM: ARM: Emulation framework and CP15 emulation 2013-01-23 13:29:13 -05:00
emulate.c KVM: ARM: Emulation framework and CP15 emulation 2013-01-23 13:29:13 -05:00
guest.c KVM: ARM: User space API for getting/setting co-proc registers 2013-01-23 13:29:14 -05:00
init.S KVM: ARM: Hypervisor initialization 2013-01-23 13:29:10 -05:00
interrupts_head.S KVM: ARM: World-switch implementation 2013-01-23 13:29:12 -05:00
interrupts.S KVM: ARM: World-switch implementation 2013-01-23 13:29:12 -05:00
Kconfig KVM: ARM: Memory virtualization setup 2013-01-23 13:29:11 -05:00
Makefile KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
mmio.c KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
mmu.c KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00
reset.c
trace.h KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00