mips32, homogenize code in the scan functions

Change-Id: I32fed3332857737048dd12da94fcaba140acb726
Signed-off-by: Salvador Arroyo <sarroyofdez@yahoo.es>
Reviewed-on: http://openocd.zylin.com/4006
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
This commit is contained in:
Salvador Arroyo 2017-02-20 23:48:40 +01:00 committed by Freddie Chopin
parent 3421b89c98
commit 7ccd53bdde
2 changed files with 17 additions and 19 deletions

View File

@ -28,20 +28,20 @@
#include "mips_ejtag.h" #include "mips_ejtag.h"
#include "mips32_dmaacc.h" #include "mips32_dmaacc.h"
void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, int new_instr) void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, uint32_t new_instr)
{ {
struct jtag_tap *tap; assert(ejtag_info->tap != NULL);
struct jtag_tap *tap = ejtag_info->tap;
tap = ejtag_info->tap; if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != new_instr) {
assert(tap != NULL);
if (buf_get_u32(tap->cur_instr, 0, tap->ir_length) != (uint32_t)new_instr) {
struct scan_field field; struct scan_field field;
uint8_t t[4];
field.num_bits = tap->ir_length; field.num_bits = tap->ir_length;
uint8_t t[4];
field.out_value = t; field.out_value = t;
buf_set_u32(t, 0, field.num_bits, new_instr); buf_set_u32(t, 0, field.num_bits, new_instr);
field.in_value = NULL; field.in_value = NULL;
jtag_add_ir_scan(tap, &field, TAP_IDLE); jtag_add_ir_scan(tap, &field, TAP_IDLE);
@ -182,13 +182,12 @@ int mips_ejtag_drscan_8(struct mips_ejtag *ejtag_info, uint8_t *data)
void mips_ejtag_drscan_8_out(struct mips_ejtag *ejtag_info, uint8_t data) void mips_ejtag_drscan_8_out(struct mips_ejtag *ejtag_info, uint8_t data)
{ {
struct jtag_tap *tap; assert(ejtag_info->tap != NULL);
tap = ejtag_info->tap; struct jtag_tap *tap = ejtag_info->tap;
assert(tap != NULL);
struct scan_field field; struct scan_field field;
field.num_bits = 8; field.num_bits = 8;
field.out_value = &data; field.out_value = &data;
field.in_value = NULL; field.in_value = NULL;
@ -427,22 +426,22 @@ int mips_ejtag_init(struct mips_ejtag *ejtag_info)
int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write_t, uint32_t *data) int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write_t, uint32_t *data)
{ {
struct jtag_tap *tap; assert(ejtag_info->tap != NULL);
struct jtag_tap *tap = ejtag_info->tap;
tap = ejtag_info->tap;
assert(tap != NULL);
struct scan_field fields[2]; struct scan_field fields[2];
uint8_t spracc = 0;
uint8_t t[4] = {0, 0, 0, 0};
/* fastdata 1-bit register */ /* fastdata 1-bit register */
fields[0].num_bits = 1; fields[0].num_bits = 1;
uint8_t spracc = 0;
fields[0].out_value = &spracc; fields[0].out_value = &spracc;
fields[0].in_value = NULL; fields[0].in_value = NULL;
/* processor access data register 32 bit */ /* processor access data register 32 bit */
fields[1].num_bits = 32; fields[1].num_bits = 32;
uint8_t t[4] = {0, 0, 0, 0};
fields[1].out_value = t; fields[1].out_value = t;
if (write_t) { if (write_t) {

View File

@ -210,8 +210,7 @@ struct mips_ejtag {
uint32_t ejtag_dba_step_size; /* size of step till next *DBAn register. */ uint32_t ejtag_dba_step_size; /* size of step till next *DBAn register. */
}; };
void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, void mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, uint32_t new_instr);
int new_instr);
int mips_ejtag_enter_debug(struct mips_ejtag *ejtag_info); int mips_ejtag_enter_debug(struct mips_ejtag *ejtag_info);
int mips_ejtag_exit_debug(struct mips_ejtag *ejtag_info); int mips_ejtag_exit_debug(struct mips_ejtag *ejtag_info);
int mips_ejtag_get_idcode(struct mips_ejtag *ejtag_info, uint32_t *idcode); int mips_ejtag_get_idcode(struct mips_ejtag *ejtag_info, uint32_t *idcode);