Merge remote-tracking branch 'origin/riscv' into HEAD

This commit is contained in:
Megan Wachs
2018-04-18 15:22:38 -07:00
4 changed files with 16 additions and 18 deletions
+3 -3
View File
@@ -455,12 +455,12 @@ static uint64_t dbus_read(struct target *target, uint16_t address)
uint64_t value;
dbus_status_t status;
uint16_t address_in;
/* If the previous read/write was to the same address, we will get the read data
* from the previous access.
* While somewhat nonintuitive, this is an efficient way to get the data.
*/
unsigned i = 0;
do {
status = dbus_scan(target, &address_in, &value, DBUS_OP_READ, address, 0);
@@ -680,7 +680,7 @@ static bits_t read_bits(struct target *target)
}
increase_dbus_busy_delay(target);
} else if (status == DBUS_STATUS_FAILED) {
// TODO: return an actual error
/* TODO: return an actual error */
return err_result;
}
} while (status == DBUS_STATUS_BUSY && i++ < 256);
+4 -8
View File
@@ -250,9 +250,8 @@ static dm013_info_t *get_dm(struct target *target)
info->dm = dm;
target_list_t *target_entry;
list_for_each_entry(target_entry, &dm->target_list, list) {
if (target_entry->target == target) {
if (target_entry->target == target)
return dm;
}
}
target_entry = calloc(1, sizeof(*target_entry));
target_entry->target = target;
@@ -1781,19 +1780,16 @@ static int sb_write_address(struct target *target, target_addr_t address)
RISCV013_INFO(info);
unsigned sbasize = get_field(info->sbcs, DMI_SBCS_SBASIZE);
/* There currently is no support for >64-bit addresses in OpenOCD. */
if (sbasize > 96) {
if (sbasize > 96)
dmi_write(target, DMI_SBADDRESS3, 0);
}
if (sbasize > 64) {
if (sbasize > 64)
dmi_write(target, DMI_SBADDRESS2, 0);
}
if (sbasize > 32) {
if (sbasize > 32)
#if BUILD_TARGET64
dmi_write(target, DMI_SBADDRESS1, address >> 32);
#else
dmi_write(target, DMI_SBADDRESS1, 0);
#endif
}
return dmi_write(target, DMI_SBADDRESS0, address);
}
+3 -5
View File
@@ -1125,16 +1125,14 @@ int riscv_openocd_resume(
while (watchpoint && result == ERROR_OK) {
LOG_DEBUG("watchpoint %d: set=%d", i, watchpoint->set);
trigger_temporarily_cleared[i] = watchpoint->set;
if (watchpoint->set) {
if (watchpoint->set)
result = riscv_remove_watchpoint(target, watchpoint);
}
watchpoint = watchpoint->next;
i++;
}
if (result == ERROR_OK) {
if (result == ERROR_OK)
result = riscv_step_rtos_hart(target);
}
watchpoint = target->watchpoints;
i = 0;
@@ -1256,7 +1254,7 @@ COMMAND_HANDLER(riscv_set_scratch_ram)
return ERROR_OK;
}
/** TODO: use COMMAND_PARSE_NUMBER **/
/* TODO: use COMMAND_PARSE_NUMBER */
long long unsigned int address;
int result = sscanf(CMD_ARGV[0], "%llx", &address);
if (result != (int) strlen(CMD_ARGV[0])) {