projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mips32: add fastdata loader working area
[fw/openocd]
/
src
/
target
/
mips_ejtag.c
diff --git
a/src/target/mips_ejtag.c
b/src/target/mips_ejtag.c
index 974c836dce35d1181ecb05ceedf124f30140901a..e3810639ce81b474e63f200e6a0b4420118e2c7b 100644
(file)
--- a/
src/target/mips_ejtag.c
+++ b/
src/target/mips_ejtag.c
@@
-28,7
+28,7
@@
#include "mips32.h"
#include "mips_ejtag.h"
#include "mips32.h"
#include "mips_ejtag.h"
-int mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, int new_instr
, void *delete_me_and_submit_patch
)
+int mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, int new_instr)
{
struct jtag_tap *tap;
{
struct jtag_tap *tap;
@@
-43,10
+43,10
@@
int mips_ejtag_set_instr(struct mips_ejtag *ejtag_info, int new_instr, void *del
field.num_bits = tap->ir_length;
field.out_value = t;
field.num_bits = tap->ir_length;
field.out_value = t;
- buf_set_u32(
field.out_value
, 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,
jtag_get_end_state()
);
+ jtag_add_ir_scan(tap, &field,
TAP_IDLE
);
}
return ERROR_OK;
}
return ERROR_OK;
@@
-56,9
+56,7
@@
int mips_ejtag_get_idcode(struct mips_ejtag *ejtag_info, uint32_t *idcode)
{
struct scan_field field;
{
struct scan_field field;
- jtag_set_end_state(TAP_IDLE);
-
- mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IDCODE, NULL);
+ mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IDCODE);
field.num_bits = 32;
field.out_value = NULL;
field.num_bits = 32;
field.out_value = NULL;
@@
-74,13
+72,11
@@
int mips_ejtag_get_idcode(struct mips_ejtag *ejtag_info, uint32_t *idcode)
return ERROR_OK;
}
return ERROR_OK;
}
-int mips_ejtag_get_impcode(struct mips_ejtag *ejtag_info, uint32_t *impcode)
+
static
int mips_ejtag_get_impcode(struct mips_ejtag *ejtag_info, uint32_t *impcode)
{
struct scan_field field;
{
struct scan_field field;
- jtag_set_end_state(TAP_IDLE);
-
- mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IMPCODE, NULL);
+ mips_ejtag_set_instr(ejtag_info, EJTAG_INST_IMPCODE);
field.num_bits = 32;
field.out_value = NULL;
field.num_bits = 32;
field.out_value = NULL;
@@
-109,10
+105,10
@@
int mips_ejtag_drscan_32(struct mips_ejtag *ejtag_info, uint32_t *data)
field.num_bits = 32;
field.out_value = t;
field.num_bits = 32;
field.out_value = t;
- buf_set_u32(
field.out_value
, 0, field.num_bits, *data);
+ buf_set_u32(
t
, 0, field.num_bits, *data);
field.in_value = r;
field.in_value = r;
- jtag_add_dr_scan(tap, 1, &field,
jtag_get_end_state()
);
+ jtag_add_dr_scan(tap, 1, &field,
TAP_IDLE
);
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
@@
-140,10
+136,10
@@
int mips_ejtag_drscan_8(struct mips_ejtag *ejtag_info, uint32_t *data)
field.num_bits = 8;
field.out_value = t;
field.num_bits = 8;
field.out_value = t;
- buf_set_u32(
field.out_value
, 0, field.num_bits, *data);
+ buf_set_u32(
t
, 0, field.num_bits, *data);
field.in_value = r;
field.in_value = r;
- jtag_add_dr_scan(tap, 1, &field,
jtag_get_end_state()
);
+ jtag_add_dr_scan(tap, 1, &field,
TAP_IDLE
);
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
if ((retval = jtag_execute_queue()) != ERROR_OK)
{
@@
-158,7
+154,7
@@
int mips_ejtag_drscan_8(struct mips_ejtag *ejtag_info, uint32_t *data)
return ERROR_OK;
}
return ERROR_OK;
}
-int mips_ejtag_step_enable(struct mips_ejtag *ejtag_info)
+
static
int mips_ejtag_step_enable(struct mips_ejtag *ejtag_info)
{
static const uint32_t code[] = {
MIPS32_MTC0(1,31,0), /* move $1 to COP0 DeSave */
{
static const uint32_t code[] = {
MIPS32_MTC0(1,31,0), /* move $1 to COP0 DeSave */
@@
-174,7
+170,8
@@
int mips_ejtag_step_enable(struct mips_ejtag *ejtag_info)
return ERROR_OK;
}
return ERROR_OK;
}
-int mips_ejtag_step_disable(struct mips_ejtag *ejtag_info)
+
+static int mips_ejtag_step_disable(struct mips_ejtag *ejtag_info)
{
static const uint32_t code[] = {
MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */
{
static const uint32_t code[] = {
MIPS32_MTC0(15,31,0), /* move $15 to COP0 DeSave */
@@
-209,8
+206,7
@@
int mips_ejtag_config_step(struct mips_ejtag *ejtag_info, int enable_step)
int mips_ejtag_enter_debug(struct mips_ejtag *ejtag_info)
{
uint32_t ejtag_ctrl;
int mips_ejtag_enter_debug(struct mips_ejtag *ejtag_info)
{
uint32_t ejtag_ctrl;
- jtag_set_end_state(TAP_IDLE);
- mips_ejtag_set_instr(ejtag_info, EJTAG_INST_CONTROL, NULL);
+ mips_ejtag_set_instr(ejtag_info, EJTAG_INST_CONTROL);
/* set debug break bit */
ejtag_ctrl = ejtag_info->ejtag_ctrl | EJTAG_CTRL_JTAGBRK;
/* set debug break bit */
ejtag_ctrl = ejtag_info->ejtag_ctrl | EJTAG_CTRL_JTAGBRK;
@@
-304,11
+300,12
@@
int mips_ejtag_init(struct mips_ejtag *ejtag_info)
/* set initial state for ejtag control reg */
ejtag_info->ejtag_ctrl = EJTAG_CTRL_ROCC | EJTAG_CTRL_PRACC | EJTAG_CTRL_PROBEN | EJTAG_CTRL_SETDEV;
/* set initial state for ejtag control reg */
ejtag_info->ejtag_ctrl = EJTAG_CTRL_ROCC | EJTAG_CTRL_PRACC | EJTAG_CTRL_PROBEN | EJTAG_CTRL_SETDEV;
+ ejtag_info->fast_access_save = -1;
return ERROR_OK;
}
return ERROR_OK;
}
-int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write, uint32_t *data)
+int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write
_t
, uint32_t *data)
{
struct jtag_tap *tap;
tap = ejtag_info->tap;
{
struct jtag_tap *tap;
tap = ejtag_info->tap;
@@
-329,7
+326,7
@@
int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write, uint32_t
fields[1].num_bits = 32;
fields[1].out_value = t;
fields[1].num_bits = 32;
fields[1].out_value = t;
- if (write)
+ if (write
_t
)
{
fields[1].in_value = NULL;
buf_set_u32(t, 0, 32, *data);
{
fields[1].in_value = NULL;
buf_set_u32(t, 0, 32, *data);
@@
-339,7
+336,7
@@
int mips_ejtag_fastdata_scan(struct mips_ejtag *ejtag_info, int write, uint32_t
fields[1].in_value = (uint8_t *) data;
}
fields[1].in_value = (uint8_t *) data;
}
- jtag_add_dr_scan(tap, 2, fields,
jtag_get_end_state()
);
+ jtag_add_dr_scan(tap, 2, fields,
TAP_IDLE
);
keep_alive();
return ERROR_OK;
keep_alive();
return ERROR_OK;