diff options
author | Sandeepa Prabhu <sandeepa.prabhu@linaro.org> | 2013-12-04 00:50:20 -0500 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2013-12-19 12:43:11 -0500 |
commit | ee6214cec7818867f368c35843ea1f3dffcbb57c (patch) | |
tree | dc85030cc4fee90004063af8401489f5091af3a6 /arch/arm64/kernel/entry.S | |
parent | 26920dd2da79a3207803da9453c0e6c82ac968ca (diff) |
arm64: support single-step and breakpoint handler hooks
AArch64 Single Steping and Breakpoint debug exceptions will be
used by multiple debug framworks like kprobes & kgdb.
This patch implements the hooks for those frameworks to register
their own handlers for handling breakpoint and single step events.
Reworked the debug exception handler in entry.S: do_dbg to route
software breakpoint (BRK64) exception to do_debug_exception()
Signed-off-by: Sandeepa Prabhu <sandeepa.prabhu@linaro.org>
Signed-off-by: Deepak Saxena <dsaxena@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kernel/entry.S')
-rw-r--r-- | arch/arm64/kernel/entry.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 4d2c6f3f0c41..32d7fe6c3d6a 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S | |||
@@ -288,6 +288,8 @@ el1_dbg: | |||
288 | /* | 288 | /* |
289 | * Debug exception handling | 289 | * Debug exception handling |
290 | */ | 290 | */ |
291 | cmp x24, #ESR_EL1_EC_BRK64 // if BRK64 | ||
292 | cinc x24, x24, eq // set bit '0' | ||
291 | tbz x24, #0, el1_inv // EL1 only | 293 | tbz x24, #0, el1_inv // EL1 only |
292 | mrs x0, far_el1 | 294 | mrs x0, far_el1 |
293 | mov x2, sp // struct pt_regs | 295 | mov x2, sp // struct pt_regs |