target/riscv-013: clear sticky error when DMI operation fails
commit5924d9f30cd68333d37caa7ac8cad43f036148dc
authorAmaury Pouly <amaury.pouly@lowrisc.org>
Wed, 17 May 2023 11:09:32 +0000 (17 12:09 +0100)
committerTomas Vanek <vanekt@fbl.cz>
Thu, 25 May 2023 16:19:12 +0000 (25 16:19 +0000)
tree3b4d23bc81620dc9cc51c089a978f97a2da7079a
parent4defa3b1e323b7f7287d8e046b2c97ad4a749f87
target/riscv-013: clear sticky error when DMI operation fails

When a DMI operation does not succeed (either because of a timeout
or an error), the specification says that the error in the `op`
field is sticky and needs to cleared by writing `dmireset` in `dtmcs`.
This is already done for timeouts in increase_dmi_busy_delay
but not for errors.

Change-Id: I7c5f27a5cf145511a1a8b64a45a586521e1cbe41
Signed-off-by: Amaury Pouly <amaury.pouly@lowrisc.org>
Reviewed-on: https://review.openocd.org/c/openocd/+/7688
Tested-by: jenkins
Reviewed-by: Tim Newsome <tim@sifive.com>
Reviewed-by: Jan Matyas <jan.matyas@codasip.com>
src/target/riscv/riscv-013.c