On Fri, Jan 12, 2024 at 01:15:29PM +0000, Mark Cave-Ayland wrote:
> Even though the BLAST command isn't fully implemented in QEMU, the DMA_STAT_BCMBLT
> bit should be set after the command has been issued to indicate that the command
> has completed.
>
> This fixes an issue with the DC390 DOS driver which issues the BLAST command as
> part of its normal error recovery routine at startup, and otherwise sits in a
> tight loop waiting for DMA_STAT_BCMBLT to be set before continuing.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Tested-by: Guenter Roeck <linux@roeck-us.net>
> ---
> hw/scsi/esp-pci.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/hw/scsi/esp-pci.c b/hw/scsi/esp-pci.c
> index 875a49199d..42d9d2e483 100644
> --- a/hw/scsi/esp-pci.c
> +++ b/hw/scsi/esp-pci.c
> @@ -124,6 +124,7 @@ static void esp_pci_handle_blast(PCIESPState *pci, uint32_t val)
> {
> trace_esp_pci_dma_blast(val);
> qemu_log_mask(LOG_UNIMP, "am53c974: cmd BLAST not implemented\n");
> + pci->dma_regs[DMA_STAT] |= DMA_STAT_BCMBLT;
> }
>
> static void esp_pci_handle_abort(PCIESPState *pci, uint32_t val)
> --
> 2.39.2
>