1) Make sure to clear HALTREQ/RESUMEREQ once the hart is halted or resumed, as instructed by the spec. Previously rocket-chip didn't really allow reading these bits back. When the HW allows reading those bits back, code which read dmcontrol to modify it writes those bits as 1 again, which was not intended.
2) die() no longer actually dies, it just prints an error, to allow getting debugging waveforms when badness happens. In almost all cases the test would fail anyway as it indicates the program could not load successfully.
This PR does 2 things:
1) Make sure to clear HALTREQ/RESUMEREQ once the hart is halted or resumed, as instructed by the spec. Previously rocket-chip didn't really allow reading these bits back. When the HW allows reading those bits back, code which read dmcontrol to modify it writes those bits as 1 again, which was not intended.
2) die() no longer actually dies, it just prints an error, to allow getting debugging waveforms when badness happens. In almost all cases the test would fail anyway as it indicates the program could not load successfully.