The SRST protocol states that after diagnostics are complete and the status is posted, we should clear the SRST bit if it should so happen to be set.
The reset method itself should handle this, but just in case -- make our intention explicit here. Signed-off-by: John Snow <[email protected]> Tested-by: Mark Cave-Ayland <[email protected]> Message-id: [email protected] Signed-off-by: John Snow <[email protected]> --- hw/ide/core.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/ide/core.c b/hw/ide/core.c index 98cea7ad4507..e85821637c96 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -2268,6 +2268,8 @@ static void ide_bus_perform_srst(void *opaque) s = &bus->ifs[i]; ide_perform_srst(s); } + + bus->cmd &= ~IDE_CTRL_RESET; } void ide_ctrl_write(void *opaque, uint32_t addr, uint32_t val) -- 2.26.2
