aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/etb.c12
-rw-r--r--src/target/smp.c9
2 files changed, 17 insertions, 4 deletions
diff --git a/src/target/etb.c b/src/target/etb.c
index 3cb22546..974ab2b5 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 f4adc8d0..ec157d36 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;
}