target/adi_v5_swd: update cached value on write to DP_SELECT
When the register DP_SELECT is written directly, e.g. with command <dap> dpreg 8 <value> the cached value in OpenOCD is not completely updated with the new value, thus creating issues in the following AP and DP read/write that rely on the cached value. Update the cached value while writing to DP_SELECT. Change-Id: I8221b10cd6fc1fbe73e6b834b68820b43480e1a2 Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com> Reviewed-on: http://openocd.zylin.com/4979 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
This commit is contained in:
parent
380502d820
commit
420a692e0f
|
@ -211,7 +211,10 @@ static int swd_queue_dp_write(struct adiv5_dap *dap, unsigned reg,
|
|||
return retval;
|
||||
|
||||
swd_finish_read(dap);
|
||||
swd_queue_dp_bankselect(dap, reg);
|
||||
if (reg == DP_SELECT)
|
||||
dap->select = data & (DP_SELECT_APSEL | DP_SELECT_APBANK | DP_SELECT_DPBANK);
|
||||
else
|
||||
swd_queue_dp_bankselect(dap, reg);
|
||||
swd->write_reg(swd_cmd(false, false, reg), data, 0);
|
||||
|
||||
return check_sync(dap);
|
||||
|
|
Loading…
Reference in New Issue