qemu/target-ppc
Bharat Bhushan 88365d17d5 ppc: Add hw breakpoint watchpoint support
This patch adds hardware breakpoint and hardware watchpoint support
for ppc.

On BOOKE architecture we cannot share debug resources between QEMU
and guest because:
    When QEMU is using debug resources then debug exception must
    be always enabled. To achieve this we set MSR_DE and also set
    MSRP_DEP so guest cannot change MSR_DE.

    When emulating debug resource for guest we want guest
    to control MSR_DE (enable/disable debug interrupt on need).

    So above mentioned two configuration cannot be supported
    at the same time. So the result is that we cannot share
    debug resources between QEMU and Guest on BOOKE architecture.

In the current design QEMU gets priority over guest,
this means that if QEMU is using debug resources then guest
cannot use them and if guest is using debug resource then
qemu can overwrite them.

When QEMU is not able to handle debug exception then we inject program
exception to guest. Yes program exception NOT debug exception and the
reason is:
 1) QEMU and guest not sharing debug resources
 2) For software breakpoint QEMU uses a ehpriv-1 instruction;

 So there cannot be any reason that we are in qemu with exit reason
 KVM_EXIT_DEBUG  for guest set debug exception, only possibility is
 guest executed ehpriv-1 privilege instruction and that's why we are
 injecting program exception.

Signed-off-by: Bharat Bhushan <Bharat.Bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-09-08 12:50:49 +02:00
..
arch_dump.c target-ppc: Set the correct endianness in ELF dump header 2014-06-16 13:24:36 +02:00
cpu-models.c target-ppc: Remove POWER7+ and POWER8E families 2014-07-08 12:10:36 +02:00
cpu-models.h target-ppc: Add pvr_match() callback 2014-07-08 12:10:36 +02:00
cpu-qom.h spapr: Add support for new NMI interface 2014-08-25 13:25:16 +02:00
cpu.h target-ppc: enable virtio endian ambivalent support 2014-06-29 19:39:43 +03:00
dfp_helper.c target-ppc: Fix compiler warning 2014-06-24 20:01:24 +04:00
excp_helper.c spapr: Add support for new NMI interface 2014-08-25 13:25:16 +02:00
fpu_helper.c powerpc: use float64 for frsqrte 2014-06-16 13:24:46 +02:00
gdbstub.c target-ppc: Fix gdbstub for ppc64le-linux-user 2014-07-08 12:10:36 +02:00
helper_regs.h PPC: Only enter MSR_POW when no interrupts pending 2014-04-08 11:20:05 +02:00
helper.h target-ppc: Add POWER8's TM SPRs 2014-06-16 13:24:45 +02:00
int_helper.c target-ppc: Refactor AES Instructions 2014-06-16 13:24:33 +02:00
kvm_ppc.c PPC: KVM: Compile fix for qemu_notify_event 2013-09-02 10:06:42 +02:00
kvm_ppc.h spapr: add uuid/host details to device tree 2014-09-08 12:50:47 +02:00
kvm-stub.c kvm/openpic: in-kernel mpic support 2013-07-01 01:11:14 +02:00
kvm.c ppc: Add hw breakpoint watchpoint support 2014-09-08 12:50:49 +02:00
machine.c KVM: target-ppc: Enable TM state migration 2014-06-16 13:24:45 +02:00
Makefile.objs target-ppc: Introduce DFP Helper Utilities 2014-06-16 13:24:29 +02:00
mem_helper.c target-ppc: Allow little-endian user mode. 2014-06-16 13:24:40 +02:00
mfrom_table_gen.c fix spelling in target sub directory 2011-12-02 10:50:57 +00:00
mfrom_table.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
misc_helper.c target-ppc: Add POWER8's TM SPRs 2014-06-16 13:24:45 +02:00
mmu_helper.c PPC: Fix booke206 TLB with phys addrs > 32bit 2014-07-08 12:10:36 +02:00
mmu-hash32.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
mmu-hash32.h target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook 2014-03-13 19:20:48 +01:00
mmu-hash64.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
mmu-hash64.h target-ppc: Use PowerPCCPU in PowerPCCPUClass::handle_mmu_fault hook 2014-03-13 19:20:48 +01:00
STATUS target-ppc: remove powerpc 970gx 2014-03-05 03:06:23 +01:00
timebase_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
translate_init.c target-ppc: Fix number of threads per core limit 2014-07-15 16:11:58 +02:00
translate.c trace: [tcg] Include TCG-tracing header on all targets 2014-08-12 14:26:12 +01:00
user_only_helper.c cpu: Move exception_index field from CPU_COMMON to CPUState 2014-03-13 19:20:46 +01:00