]> git.sur5r.net Git - openocd/blobdiff - src/target/etm.c
- fixes issue with reset and arm926ejs core. Thanks Øyvind Harboe
[openocd] / src / target / etm.c
index 3f7bbbf13c1227aff1886002d7162896814c2245..0d20b0d5866060f37bddeef1d9c4b00277960d6d 100644 (file)
@@ -359,8 +359,7 @@ int etm_read_reg_w_check(reg_t *reg, u8* check_value, u8* check_mask)
        jtag_add_dr_scan(3, fields, -1, NULL);
        
        fields[0].in_value = reg->value;
-       fields[0].in_check_value = check_value;
-       fields[0].in_check_mask = check_mask;
+       jtag_set_check_value(fields+0, check_value, check_mask, NULL);  
                
        jtag_add_dr_scan(3, fields, -1, NULL);
 
@@ -1200,6 +1199,7 @@ int handle_etm_tracemode_command(struct command_context_s *cmd_ctx, char *cmd, c
                if (arm7_9->etm_ctx->trace_depth > 0)
                {
                        free(arm7_9->etm_ctx->trace_data);
+                       arm7_9->etm_ctx->trace_data = NULL;
                }
                arm7_9->etm_ctx->trace_depth = 0;
        }
@@ -1364,8 +1364,8 @@ int handle_etm_info_command(struct command_context_s *cmd_ctx, char *cmd, char *
        etm_get_reg(etm_config_reg);
        command_print(cmd_ctx, "pairs of address comparators: %i", buf_get_u32(etm_config_reg->value, 0, 4));
        command_print(cmd_ctx, "pairs of data comparators: %i", buf_get_u32(etm_config_reg->value, 4, 4));
-       command_print(cmd_ctx, "memory map decoders: %i", buf_get_u32(etm_config_reg->value, 8, 4));
-       command_print(cmd_ctx, "number of counters: %i", buf_get_u32(etm_config_reg->value, 12, 4));
+       command_print(cmd_ctx, "memory map decoders: %i", buf_get_u32(etm_config_reg->value, 8, 5));
+       command_print(cmd_ctx, "number of counters: %i", buf_get_u32(etm_config_reg->value, 13, 3));
        command_print(cmd_ctx, "sequencer %spresent",
                        (buf_get_u32(etm_config_reg->value, 16, 1) == 1) ? "" : "not ");
        command_print(cmd_ctx, "number of ext. inputs: %i", buf_get_u32(etm_config_reg->value, 17, 3));
@@ -1725,6 +1725,7 @@ int handle_etm_start_command(struct command_context_s *cmd_ctx, char *cmd, char
        if (arm7_9->etm_ctx->trace_depth > 0)
        {
                free(arm7_9->etm_ctx->trace_data);
+               arm7_9->etm_ctx->trace_data = NULL;
        }
        arm7_9->etm_ctx->trace_depth = 0;