From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSPbl-0008Qu-1R for qemu-devel@nongnu.org; Fri, 12 Sep 2014 08:05:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSPbd-0005HU-59 for qemu-devel@nongnu.org; Fri, 12 Sep 2014 08:05:44 -0400 Received: from mnementh.archaic.org.uk ([81.2.115.146]:46950) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSPbc-0005GL-P7 for qemu-devel@nongnu.org; Fri, 12 Sep 2014 08:05:37 -0400 From: Peter Maydell Date: Fri, 12 Sep 2014 13:04:23 +0100 Message-Id: <1410523465-13400-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 0/2] target-arm: implement architectural breakpoints List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Richard Henderson , patches@linaro.org Implement support for the ARM architecturally mandated hardware breakpoints, for ARMv8 and ARMv7. Tested that hardware bps work for both v7 and v8 kernels (including v8 compat userspace in a 32 bit kernel). There are a few odd subfeatures which we don't implement (yet): * address-mismatch breakpoints which fire if the PC is anything other than the specified value * address-mismatch breakpoints with zero byte-address-select, which fire for every single instruction execution * unlinked context match breakpoints, which fire for every instruction executed with a particular value of CONTEXTIDR/VMID These aren't used by Linux's ptrace support, and I wasn't sure of the best way to implement them, so for now they just produce a LOG_UNIMP warning if the guest tries to use them. This patchset sits on target-arm.next (ie after the watchpoint code). Peter Maydell (2): target-arm: Implement setting guest breakpoints target-arm: Implement handling of breakpoint firing target-arm/cpu.c | 1 + target-arm/cpu.h | 1 + target-arm/helper.c | 126 ++++++++++++++++++++++++++++++++++++++++++++++++- target-arm/internals.h | 15 ++++++ target-arm/machine.c | 1 + target-arm/op_helper.c | 75 +++++++++++++++++++++++------ 6 files changed, 202 insertions(+), 17 deletions(-) -- 1.9.1