cortex_a : multiple target on the same dap
authorMichel JAOUEN <michel.jaouen@stericsson.com>
Tue, 12 Apr 2011 16:24:50 +0000 (18:24 +0200)
committerØyvind Harboe <oyvind.harboe@zylin.com>
Wed, 13 Apr 2011 08:56:52 +0000 (10:56 +0200)
src/jtag/jtag.h
src/target/cortex_a.c

index 6709cf717daef7c734973189b17be1660335c817..a3ce3711694d3442b5a2356faef022ac42d6e2ed 100644 (file)
@@ -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);
index f81f0693fb6ff46556685a8946cfc874155b2649..74516d261a61703e8cb203c2141e8b83d8d7975f 100644 (file)
@@ -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;