summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel JAOUEN <michel.jaouen@stericsson.com>2011-04-12 18:24:50 +0200
committerØyvind Harboe <oyvind.harboe@zylin.com>2011-04-13 10:56:52 +0200
commit28ddd16ddce082b2d47ce0a61f485119a20298d6 (patch)
treeb746b395d4a2efcf879b675c01179587b9a9b9a7
parenta7844aa4e83481a66fd5df8f33956da586d2f880 (diff)
downloadopenocd+libswd-28ddd16ddce082b2d47ce0a61f485119a20298d6.tar.gz
openocd+libswd-28ddd16ddce082b2d47ce0a61f485119a20298d6.tar.bz2
openocd+libswd-28ddd16ddce082b2d47ce0a61f485119a20298d6.tar.xz
openocd+libswd-28ddd16ddce082b2d47ce0a61f485119a20298d6.zip
cortex_a : multiple target on the same dap
-rw-r--r--src/jtag/jtag.h2
-rw-r--r--src/target/cortex_a.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/src/jtag/jtag.h b/src/jtag/jtag.h
index 6709cf71..a3ce3711 100644
--- a/src/jtag/jtag.h
+++ b/src/jtag/jtag.h
@@ -164,6 +164,8 @@ struct jtag_tap {
struct jtag_tap_event_action *event_action;
struct jtag_tap* next_tap;
+ /* dap instance if some null if no instance , initialized to 0 by calloc*/
+ struct adiv5_dap *dap;
};
void jtag_tap_init(struct jtag_tap *tap);
diff --git a/src/target/cortex_a.c b/src/target/cortex_a.c
index f81f0693..74516d26 100644
--- a/src/target/cortex_a.c
+++ b/src/target/cortex_a.c
@@ -1959,6 +1959,11 @@ static int cortex_a8_init_arch_info(struct target *target,
/* Setup struct cortex_a8_common */
cortex_a8->common_magic = CORTEX_A8_COMMON_MAGIC;
+ /* tap has no dap initialized */
+ if (!tap->dap)
+ {
+ armv7a->armv4_5_common.dap = dap;
+ /* Setup struct cortex_a8_common */
armv4_5->arch_info = armv7a;
/* prepare JTAG information for the new target */
@@ -1971,6 +1976,11 @@ static int cortex_a8_init_arch_info(struct target *target,
/* Number of bits for tar autoincrement, impl. dep. at least 10 */
dap->tar_autoincr_block = (1 << 10);
+ dap->memaccess_tck = 80;
+ tap->dap = dap;
+ }
+ else
+ armv7a->armv4_5_common.dap = tap->dap;
cortex_a8->fast_reg_read = 0;