]> git.ipfire.org Git - thirdparty/qemu.git/commit
esp.c: only allow ESP commands permitted in the current asc_mode
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fri, 11 Jul 2025 20:46:36 +0000 (21:46 +0100)
committerPhilippe Mathieu-Daudé <philmd@linaro.org>
Mon, 14 Jul 2025 22:25:21 +0000 (00:25 +0200)
commit6f8ce26bb00db66e6cec632f16df3cd13e4df934
tree7e91c12e348987038849220c7bf90a8d14dc974e
parentab1207401edc19d17fad6cb473cd6beae31b1dd1
esp.c: only allow ESP commands permitted in the current asc_mode

If an ESP command is issued in an incorrect mode then an illegal command
interrupt should be generated. Add a new esp_cmd_is_valid() function to
indicate whether the ESP command is valid for the current mode, and if not
then raise the illegal command interrupt.

This fixes WinNT MIPS which issues ICCS after a Chip Reset which is not
permitted, but will fail with an INACCESSIBLE_BOOT_DEVICE error unless an
interrupt is generated.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fixes: 83428f7a97 ("esp.c: move write_response() non-DMA logic to esp_do_nodma()")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2464
Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250711204636.542964-8-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
hw/scsi/esp.c
hw/scsi/trace-events
include/hw/scsi/esp.h