diff options
author | Matthias Welwarsky <matthias@welwarsky.de> | 2015-11-24 22:11:56 +0100 |
---|---|---|
committer | Andreas Fritiofson <andreas.fritiofson@gmail.com> | 2015-12-29 21:43:45 +0000 |
commit | 5bee7f5b2c13b02f2d6ad98de6a826279777c8a9 (patch) | |
tree | 43d9fb492e2e8604a8df9db93148b3223d4c8570 /src/target/cortex_a.h | |
parent | 082417fc71d5aa7b4e85b5244e53acd434c794fd (diff) |
cortex_a: add 'dacrfixup' to cortex-a command group
work around issues with software breakpoints when the text segment
is mapped read-only by the OS. Set DACR to "all-manager" to bypass
TLB permission checks on memory access.
Change-Id: I79fd9b32b04a4d538d489896470ee30b26b72b30
Signed-off-by: Matthias Welwarsky <matthias@welwarsky.de>
Reviewed-on: http://openocd.zylin.com/3107
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Diffstat (limited to 'src/target/cortex_a.h')
-rw-r--r-- | src/target/cortex_a.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/target/cortex_a.h b/src/target/cortex_a.h index d33188ff..1c63588e 100644 --- a/src/target/cortex_a.h +++ b/src/target/cortex_a.h @@ -60,6 +60,11 @@ enum cortex_a_isrmasking_mode { CORTEX_A_ISRMASK_ON, }; +enum cortex_a_dacrfixup_mode { + CORTEX_A_DACRFIXUP_OFF, + CORTEX_A_DACRFIXUP_ON +}; + struct cortex_a_brp { int used; int type; @@ -78,9 +83,12 @@ struct cortex_a_common { uint32_t cp15_control_reg; /* latest cp15 register value written and cpsr processor mode */ uint32_t cp15_control_reg_curr; + /* auxiliary control reg */ + uint32_t cp15_aux_control_reg; + /* DACR */ + uint32_t cp15_dacr_reg; enum arm_mode curr_mode; - /* Breakpoint register pairs */ int brp_num_context; int brp_num; @@ -96,6 +104,7 @@ struct cortex_a_common { uint32_t didr; enum cortex_a_isrmasking_mode isrmasking_mode; + enum cortex_a_dacrfixup_mode dacrfixup_mode; struct armv7a_common armv7a_common; |