From 45b897873db4e53a29ea1a3d3956ae59caacfd55 Mon Sep 17 00:00:00 2001 From: Matthias Welwarsky Date: Sat, 12 Dec 2015 21:11:16 +0100 Subject: [PATCH] cortex_a: select APB-AP as the default AP Debug initialization blindly selects AP#0 as default, which is the AHB-AP in many cases. This sets the default for target_read/write functions. However, AHB-AP is the wrong choice, because it bypasses caches on read and write and also makes some peripherals inaccessible (e.g. l2 outer caches). This patch explicitely selects the APB-AP (debug_ap) as the default. Change-Id: I13f9e0750186d35dcfc135c8d67d437c5884d9c4 Signed-off-by: Matthias Welwarsky Reviewed-on: http://openocd.zylin.com/3113 Tested-by: jenkins Reviewed-by: Andreas Fritiofson --- src/target/cortex_a.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c index 5e3a1a4b..78ce33df 100644 --- a/src/target/cortex_a.c +++ b/src/target/cortex_a.c @@ -3074,6 +3074,9 @@ static int cortex_a_examine_first(struct target *target) LOG_DEBUG("Configured %i hw breakpoints", cortex_a->brp_num); + /* select debug_ap as default */ + swjdp->apsel = armv7a->debug_ap->ap_num; + target_set_examined(target); return ERROR_OK; } -- 2.39.5