commit
325f17f6ec
|
@ -1223,7 +1223,7 @@ static int read_memory(struct target *target, uint32_t address,
|
||||||
{
|
{
|
||||||
RISCV013_INFO(info);
|
RISCV013_INFO(info);
|
||||||
|
|
||||||
LOG_DEBUG("writing %d words of %d bytes to 0x%08lx", count, size, (long)address);
|
LOG_DEBUG("reading %d words of %d bytes from 0x%08lx", count, size, (long)address);
|
||||||
|
|
||||||
select_dmi(target);
|
select_dmi(target);
|
||||||
riscv_set_current_hartid(target, 0);
|
riscv_set_current_hartid(target, 0);
|
||||||
|
@ -1265,9 +1265,9 @@ static int read_memory(struct target *target, uint32_t address,
|
||||||
* program execution mechanism. */
|
* program execution mechanism. */
|
||||||
switch (riscv_xlen(target)) {
|
switch (riscv_xlen(target)) {
|
||||||
case 64:
|
case 64:
|
||||||
riscv_program_write_ram(&program, r_addr + 4, ((riscv_addr_t)(address - size)) >> 32);
|
riscv_program_write_ram(&program, r_addr + 4, (((riscv_addr_t) address) - size) >> 32);
|
||||||
case 32:
|
case 32:
|
||||||
riscv_program_write_ram(&program, r_addr, (riscv_addr_t)(address - size));
|
riscv_program_write_ram(&program, r_addr, ((riscv_addr_t) address) - size);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOG_ERROR("unknown XLEN %d", riscv_xlen(target));
|
LOG_ERROR("unknown XLEN %d", riscv_xlen(target));
|
||||||
|
@ -1318,7 +1318,7 @@ static int read_memory(struct target *target, uint32_t address,
|
||||||
* the data was all copied. */
|
* the data was all copied. */
|
||||||
riscv_addr_t cur_addr = 0xbadbeef;
|
riscv_addr_t cur_addr = 0xbadbeef;
|
||||||
riscv_addr_t fin_addr = address + (count * size);
|
riscv_addr_t fin_addr = address + (count * size);
|
||||||
riscv_addr_t prev_addr = 0;
|
riscv_addr_t prev_addr = ((riscv_addr_t) address) - size;
|
||||||
LOG_DEBUG("writing until final address 0x%016lx", fin_addr);
|
LOG_DEBUG("writing until final address 0x%016lx", fin_addr);
|
||||||
while (count > 1 && (cur_addr = riscv_read_debug_buffer_x(target, d_addr)) < fin_addr) {
|
while (count > 1 && (cur_addr = riscv_read_debug_buffer_x(target, d_addr)) < fin_addr) {
|
||||||
LOG_DEBUG("transferring burst starting at address 0x%016lx (previous burst was 0x%016lx)", cur_addr, prev_addr);
|
LOG_DEBUG("transferring burst starting at address 0x%016lx (previous burst was 0x%016lx)", cur_addr, prev_addr);
|
||||||
|
|
Loading…
Reference in New Issue