Skip to content

machine/wd33c9x.cpp: Negate ACK should trigger an irq #14532

@angelosa

Description

@angelosa

As part of its OEM protection the NEC PC-9801-55U/PC-9801-55L does the following things (simplified):

  1. sends an inquiry request to the HDD;
  2. uses a negate ACK once it receives the third byte of scsi_cmdbuf[8], the manufacturer string, cfr.
    strcpy((char *)&scsi_cmdbuf[8], " SEAGATE");
  3. expects said request causes an irq;
  4. wants that the received bytes says NEC otherwise it locks up the machine entirely;

2 and 3 are the important parts of this issue, I'm not sure what kind of interrupt the wd33c9x should really generate, the BIOS makes sure to branch on every single irq state received from the controller. fwiw it's not in initiator state when this happens.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions