From e7e9bfde47768b22be8b15c30c027dc8fb67c778 Mon Sep 17 00:00:00 2001 From: Spencer Oliver Date: Tue, 16 Mar 2010 12:54:08 +0000 Subject: PIC32: add software reset support The PIC32MX does not support the ejtag software reset - it is optional in the ejtag spec. We perform the equivalent using the microchip specific MTAP cmd's. Signed-off-by: Spencer Oliver --- src/target/mips_ejtag.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/target/mips_ejtag.c') diff --git a/src/target/mips_ejtag.c b/src/target/mips_ejtag.c index 984b5353..cea8fa80 100644 --- a/src/target/mips_ejtag.c +++ b/src/target/mips_ejtag.c @@ -127,6 +127,37 @@ int mips_ejtag_drscan_32(struct mips_ejtag *ejtag_info, uint32_t *data) return ERROR_OK; } +int mips_ejtag_drscan_8(struct mips_ejtag *ejtag_info, uint32_t *data) +{ + struct jtag_tap *tap; + tap = ejtag_info->tap; + + if (tap == NULL) + return ERROR_FAIL; + struct scan_field field; + uint8_t t[4], r[4]; + int retval; + + field.num_bits = 8; + field.out_value = t; + buf_set_u32(field.out_value, 0, field.num_bits, *data); + field.in_value = r; + + jtag_add_dr_scan(tap, 1, &field, jtag_get_end_state()); + + if ((retval = jtag_execute_queue()) != ERROR_OK) + { + LOG_ERROR("register read failed"); + return retval; + } + + *data = buf_get_u32(field.in_value, 0, 32); + + keep_alive(); + + return ERROR_OK; +} + int mips_ejtag_step_enable(struct mips_ejtag *ejtag_info) { static const uint32_t code[] = { -- cgit v1.2.3