aboutsummaryrefslogtreecommitdiff
path: root/src/target/cortex_a.h
diff options
context:
space:
mode:
authorMatthias Welwarsky <matthias@welwarsky.de>2015-11-24 22:11:56 +0100
committerAndreas Fritiofson <andreas.fritiofson@gmail.com>2015-12-29 21:43:45 +0000
commit5bee7f5b2c13b02f2d6ad98de6a826279777c8a9 (patch)
tree43d9fb492e2e8604a8df9db93148b3223d4c8570 /src/target/cortex_a.h
parent082417fc71d5aa7b4e85b5244e53acd434c794fd (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.h11
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;