]> git.sur5r.net Git - openocd/commitdiff
- added patch to change pathmove handling
authormifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 10 Feb 2008 12:58:24 +0000 (12:58 +0000)
committermifi <mifi@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Sun, 10 Feb 2008 12:58:24 +0000 (12:58 +0000)
https://lists.berlios.de/pipermail/openocd-development/2008-January/000678.html

(thanks to Ã˜yvind for the patch)

git-svn-id: svn://svn.berlios.de/openocd/trunk@286 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/amt_jtagaccel.c
src/jtag/at91rm9200.c
src/jtag/ep93xx.c
src/jtag/ft2232.c
src/jtag/gw16012.c
src/jtag/jtag.c
src/jtag/jtag.h
src/jtag/parport.c
src/jtag/presto.c
src/jtag/usbprog.c

index f005be65d638a145bba0a91232eda738faf97de6..500f1797d66a423816048229f5f80630f2a989e3 100644 (file)
@@ -119,8 +119,6 @@ jtag_interface_t amt_jtagaccel_interface =
        
        .execute_queue = amt_jtagaccel_execute_queue,
 
-       .support_pathmove = 0,
-
        .speed = amt_jtagaccel_speed,   
        .register_commands = amt_jtagaccel_register_commands,
        .init = amt_jtagaccel_init,
index b1ddb2df0fc85b66efa6ef9a83634c22f37de4f1..8c91171d31d2b7c36dffc3bca13897ce2bc133aa 100644 (file)
@@ -134,8 +134,6 @@ jtag_interface_t at91rm9200_interface =
 
        .execute_queue = bitbang_execute_queue,
 
-       .support_pathmove = 0,
-
        .speed = at91rm9200_speed,
        .register_commands = at91rm9200_register_commands,
        .init = at91rm9200_init,
index 7311c19a135a812327ec7bb7457d08d4dc1be487..f2e176fd33ce45770753c92a65835ec00fac3f55 100644 (file)
@@ -66,8 +66,6 @@ jtag_interface_t ep93xx_interface =
        
        .execute_queue = bitbang_execute_queue,
 
-       .support_pathmove = 0,
-
        .speed = ep93xx_speed,  
        .register_commands = ep93xx_register_commands,
        .init = ep93xx_init,
index 2194694b29f58c056a8651041b59ca2daa67baf3..76741d9e5ad1b1b90c8097514165c8fbe805da2b 100644 (file)
@@ -160,8 +160,6 @@ jtag_interface_t ft2232_interface =
        
        .execute_queue = ft2232_execute_queue,
        
-       .support_pathmove = 1,
-       
        .speed = ft2232_speed,
        .register_commands = ft2232_register_commands,
        .init = ft2232_init,
index 0d5c3f66bb876fccd796a401ded6e2c44d23b11d..aff43de1ea6d8bd7b5d1934ef2894b0d3004e751 100644 (file)
@@ -107,8 +107,6 @@ jtag_interface_t gw16012_interface =
        
        .execute_queue = gw16012_execute_queue,
 
-       .support_pathmove = 0,
-
        .speed = gw16012_speed, 
        .register_commands = gw16012_register_commands,
        .init = gw16012_init,
index e413b9f33004968d0c5366ff1803586bdf45ab32..11011a160bc7a6160aa319331d814470c76e6d75 100644 (file)
@@ -728,52 +728,18 @@ int jtag_add_pathmove(int num_states, enum tap_state *path)
                return ERROR_JTAG_NOT_IMPLEMENTED;
        }
        
-       if (jtag->support_pathmove)
-       {
-               /* allocate memory for a new list member */
-               *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
-               last_comand_pointer = &((*last_cmd)->next);
-               (*last_cmd)->next = NULL;
-               (*last_cmd)->type = JTAG_PATHMOVE;
+       /* allocate memory for a new list member */
+       *last_cmd = cmd_queue_alloc(sizeof(jtag_command_t));
+       last_comand_pointer = &((*last_cmd)->next);
+       (*last_cmd)->next = NULL;
+       (*last_cmd)->type = JTAG_PATHMOVE;
+
+       (*last_cmd)->cmd.pathmove = cmd_queue_alloc(sizeof(pathmove_command_t));
+       (*last_cmd)->cmd.pathmove->num_states = num_states;
+       (*last_cmd)->cmd.pathmove->path = cmd_queue_alloc(sizeof(enum tap_state) * num_states);
        
-               (*last_cmd)->cmd.pathmove = cmd_queue_alloc(sizeof(pathmove_command_t));
-               (*last_cmd)->cmd.pathmove->num_states = num_states;
-               (*last_cmd)->cmd.pathmove->path = cmd_queue_alloc(sizeof(enum tap_state) * num_states);
-               
-               for (i = 0; i < num_states; i++)
-                       (*last_cmd)->cmd.pathmove->path[i] = path[i];
-       }
-       else
-       {
-               /* validate the desired path, and see if it fits a default path */
-               int begin = 0;
-               int end = 0;
-               int j;
-               
-               for (i = 0; i < num_states; i++)
-               {
-                       for (j = i; j < num_states; j++)
-                       {
-                               if (tap_move_map[path[j]] != -1)
-                               {       
-                                       end = j;
-                                       break;
-                               }
-                       }
-                       
-                       if (begin - end <= 7)   /* a default path spans no more than 7 states */
-                       {
-                               jtag_add_statemove(path[end]);
-                       }
-                       else
-                       {
-                               ERROR("encountered a TAP path that can't be fulfilled by default paths");       
-                               return ERROR_JTAG_NOT_IMPLEMENTED;
-                       }
-                       
-                       i = end;
-               }
-       }
+       for (i = 0; i < num_states; i++)
+               (*last_cmd)->cmd.pathmove->path[i] = path[i];
 
        if (cmd_queue_cur_state == TAP_TLR && cmd_queue_end_state != TAP_TLR)
                jtag_call_event_callbacks(JTAG_TRST_RELEASED);
index 0458e2d52f4e750a41a44a2968538a4e4bd8e8b3..7435617e0af245a9af78654c195de4be61c24122 100644 (file)
@@ -187,10 +187,6 @@ typedef struct jtag_interface_s
         */
        int (*execute_queue)(void);
        
-       /* optional command support 
-        */
-       int support_pathmove;
-       
        /* interface initalization
         */
        int (*speed)(int speed);
index 7ed95d8eaaee1f2d868686b38a0303a1a20e3e2f..f9d7b0292b206178501edc1715484764dddf39bb 100644 (file)
@@ -159,8 +159,6 @@ jtag_interface_t parport_interface =
        
        .execute_queue = bitbang_execute_queue,
 
-       .support_pathmove = 1,
-
        .speed = parport_speed, 
        .register_commands = parport_register_commands,
        .init = parport_init,
index 62a9746b2f208c2241c149fcfe31d14c2e4d2c52..1e21c22bde8073d0e704a8431dbbee4f4a3315b3 100644 (file)
@@ -61,7 +61,6 @@ jtag_interface_t presto_interface =
 {
        .name = "presto",
        .execute_queue = bitq_execute_queue,
-       .support_pathmove = 1,
        .speed = presto_jtag_speed,
        .register_commands = presto_jtag_register_commands,
        .init = presto_jtag_init,
index 661b3b3499017d2e37a38cc9e16e35ac435e23e1..ab4fe77ab08312e115dfa99f6223b06166533ff2 100644 (file)
@@ -64,7 +64,6 @@ jtag_interface_t usbprog_interface =
 {
        .name = "usbprog",
        .execute_queue = usbprog_execute_queue,
-       .support_pathmove = 0,
        .speed = usbprog_speed, 
        .register_commands = usbprog_register_commands,
        .init = usbprog_init,