From: Jie Zhang <[email protected]> This corrects two issues found with openocd. d7f71e7fe9645fa8c3f88cf6fc9ad438aa6708f3 removed some code that was being used.
The above then caused even more code to get removed by commit 1cfb2287a67c1f78b76583b2e5ed83ca3560b0d5 removed some more code. Signed-off-by: Spencer Oliver <[email protected]> --- src/target/etb.c | 12 ++++++++++++ src/target/smp.c | 9 +++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/target/etb.c b/src/target/etb.c index 3cb2254..974ab2b 100644 --- a/src/target/etb.c +++ b/src/target/etb.c @@ -304,20 +304,32 @@ static int etb_write_reg(struct reg *reg, uint32_t value) { struct etb_reg *etb_reg = reg->arch_info; uint8_t reg_addr = etb_reg->addr & 0x7f; + struct scan_field fields[3]; LOG_DEBUG("%i: 0x%8.8" PRIx32 "", (int)(etb_reg->addr), value); etb_scann(etb_reg->etb, 0x0); etb_set_instr(etb_reg->etb, 0xc); + fields[0].num_bits = 32; uint8_t temp0[4]; + fields[0].out_value = temp0; buf_set_u32(&temp0, 0, 32, value); + fields[0].in_value = NULL; + fields[1].num_bits = 7; uint8_t temp1; + fields[1].out_value = &temp1; buf_set_u32(&temp1, 0, 7, reg_addr); + fields[1].in_value = NULL; + fields[2].num_bits = 1; uint8_t temp2; + fields[2].out_value = &temp2; buf_set_u32(&temp2, 0, 1, 1); + fields[2].in_value = NULL; + + jtag_add_dr_scan(etb_reg->etb->tap, 3, fields, TAP_IDLE); return ERROR_OK; } diff --git a/src/target/smp.c b/src/target/smp.c index f4adc8d..ec157d3 100644 --- a/src/target/smp.c +++ b/src/target/smp.c @@ -79,7 +79,7 @@ int gdb_read_smp_packet(struct connection *connection, hex_buffer[2 * i + 1] = DIGITS[t & 0xf]; } - gdb_put_packet(connection, hex_buffer, len * 2); + retval = gdb_put_packet(connection, hex_buffer, len * 2); free(hex_buffer); } @@ -95,6 +95,7 @@ int gdb_write_smp_packet(struct connection *connection, { char *separator; int coreid = 0; + int retval = ERROR_OK; /* skip command character */ if (target->smp) @@ -104,13 +105,13 @@ int gdb_write_smp_packet(struct connection *connection, packet+=2; coreid = strtoul(packet, &separator, 16); target->gdb_service->core[1] = coreid; - gdb_put_packet(connection, "OK", 2); + retval = gdb_put_packet(connection, "OK", 2); } } else { - gdb_put_packet(connection,"E01",3); + retval = gdb_put_packet(connection,"E01",3); } - return ERROR_OK; + return retval; } -- 1.7.0.4 ________________________________________________________________________ This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ _______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
