On Tue, Jun 13, 2023 at 11:13:29AM -0400, Kevin O'Connor wrote: > On Tue, May 30, 2023 at 03:44:05PM +0200, Niklas Cassel via SeaBIOS wrote: > > According to AHCI 1.3.1, 5.3.8.1 RegFIS:Entry, if ERR_STAT is set in the > > received FIS, the HBA shall jump to state ERR:FatalTaskfile, which will > > raise a TFES IRQ. > > > > This means that if ERR_STAT is set in the recevied FIS, PxIS.TFES will > > be set, without either PxIS.DHRS or PxIS.PSS being set. > > > > SeaBIOS function ahci_port_setup() will try to identify an AHCI device > > by sending an ATAPI identify device command. However, such a command > > will be aborted with ERR_STAT set for a regular (non-ATAPI) device. > > > > ahci_command() already performs the correct error recovery steps when > > status is correctly set, so simply modify ahci_command() to read the > > correct status when PxIS.TFES is set. > > > > It is safe to read PxTFD when PxIS.TFES is set, even for systems with a > > port multiplier, see AHCI 1.3.1, 9.3.7 PxTFD Register Information: > > "When a taskfile error occurs (PxIS.TFES is set to '1'), the host may > > refer to the values in PxTFD. The values in PxTFD at this time are > > guaranteed to correspond to the device that reported the taskfile error > > condition." > > > > Without this, each boot will be delayed by 32 seconds, waiting for the > > AHCI command to timeout. > > Gerd, would you be able to review this patch?
Description and patch look good to me, testing with qemu works fine. Tested-by: Gerd Hoffmann <kra...@redhat.com> Acked-by: Gerd Hoffmann <kra...@redhat.com> take care, Gerd _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org