• Ben Avison's avatar
    Fix inability to recover from disc errors 08 and 21 · e1cf30a1
    Ben Avison authored
    Detail:
      These disc errors relate to the status of the task file registers before
      a command is issued, however with SATA (unlike PATA) we can't simply read
      the task file on demand, we need to issue a command to cause a register FIS
      transaction to happen on the bus. The only available command which is
      compatible with all device types (packet and non-packet) and which can be
      issued in not-ready state is EXECUTE_DEVICE_DIAGNOSTIC, so issue this when
      either disc error is encountered and retry to give the drive a chance to
      return to ready/not-busy state. This command has the advantage of having
      been mandatory back to ATA-1 so should be harmless for PATA drives, whether
      connected via a PATA-SATA bridge or via a future PATADriver module.
    Admin:
      Tested on Titanium.
    
    Version 4.02. Tagged as 'ADFS-4_02'
    e1cf30a1
VersionNum 805 Bytes