This series contains a few minor tidy-ups along with an implementation of the logic to only allow ESP commands permitted in the current mode. The motivation is to fix GitLab issue #2464 which causes Windows NT MIPS to bluescreen on boot.
Patches 1 to 5 are simple tidy-ups from investigating the issue. Patch 6 adds a new asc_mode variable to indicate the current ESP mode, whilst patch 7 implements the feature which fixes GitLab issue #2464. Note: this series is being reposted as both the SeaBIOS and SeaBIOS hppa binaries currently distributed with QEMU have now been fixed so that they do not use an illegal ESP command sequence. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> v2: - Rebase onto master - Add patches 4 and 5 to avoid calling the DMA functions for zero-length transfers Mark Cave-Ayland (7): esp.c: only raise IRQ in esp_transfer_data() for CMD_SEL, CMD_SELATN and CMD_TI commands esp.c: improve comment in esp_transfer_data() esp.h: remove separate ESPState typedef esp.c: only call dma_memory_read function if transfer length is non-zero esp.c: only call dma_memory_write function if transfer length is non-zero esp.c: add asc_mode property to indicate the current ESP mode esp.c: only allow ESP commands permitted in the current asc_mode hw/scsi/esp.c | 94 +++++++++++++++++++++++++++++++++++++------ hw/scsi/trace-events | 1 + include/hw/scsi/esp.h | 15 ++++++- 3 files changed, 96 insertions(+), 14 deletions(-) -- 2.39.5