mbox series

[0/5] esp.c: only allow ESP commands permitted in the current mode

Message ID 20241101220052.1463805-1-mark.cave-ayland@ilande.co.uk
Headers show
Series esp.c: only allow ESP commands permitted in the current mode | expand

Message

Mark Cave-Ayland Nov. 1, 2024, 10 p.m. UTC
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 3 are simple tidy-ups from investigating the issue. Patch 4 adds
a new asc_mode variable to indicate the current ESP mode, whilst patch 5 implements
the feature which fixes GitLab issue #2464.

IMPORTANT: unfortunately the SeaBIOS (and SeaBIOS hppa) binaries currently
distributed with QEMU also use an illegal ESP command sequence, and so will
fail to boot from an ESP SCSI device until binaries containing the relevant patch at
https://github.com/coreboot/seabios/commit/2424e4c04aa30d90e85073ea41d18a7845460783
have been merged. The hope is that the SeaBIOS binaries will be updated soon to
allow this series to be merged in time for the 9.2 release.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


Mark Cave-Ayland (5):
  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: 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         | 68 +++++++++++++++++++++++++++++++++++++++----
 hw/scsi/trace-events  |  1 +
 include/hw/scsi/esp.h | 15 +++++++++-
 3 files changed, 78 insertions(+), 6 deletions(-)