target/riscv: fix riscv exec_progbuf for SMP targets
Currently, 'riscv exec_progbuf' command does not select active target. So with multiple harts with a common debug module, program buffer may be executed on an incorrect target. Change-Id: Ic345b09b039c2b1e37e5b99a8534833ac2723277 Signed-off-by: Samuel Obuch <samuel.obuch@espressif.com> Reviewed-on: https://review.openocd.org/c/openocd/+/9312 Tested-by: jenkins Reviewed-by: Evgeniy Naydanov <eugnay@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
committed by
Tomas Vanek
parent
67153cf3d5
commit
ad0ed194f5
@@ -5422,6 +5422,8 @@ static int riscv013_invalidate_cached_progbuf(struct target *target)
|
||||
|
||||
static int riscv013_execute_progbuf(struct target *target, uint32_t *cmderr)
|
||||
{
|
||||
if (dm013_select_target(target) != ERROR_OK)
|
||||
return ERROR_FAIL;
|
||||
uint32_t run_program = 0;
|
||||
run_program = set_field(run_program, AC_ACCESS_REGISTER_AARSIZE, 2);
|
||||
run_program = set_field(run_program, AC_ACCESS_REGISTER_POSTEXEC, 1);
|
||||
|
||||
Reference in New Issue
Block a user