Hi,

> When binding AHCI controller to virtual machine, the attached ATA device 
> cannot be recognized for the following reason:
>  The first Identify PACKET CMD will be failed without dobut which will lead 
> PORT_IRQ_TF_ERR be set in PxIS due to ERR bit set to 1 in D2H Register 
> FIS(PxTFD.STS.ERR=1). In this case, the first CMD will be timeout for seabios 
> only polling PORT_IRQ_D2H_REG_FIS & PORT_IRQ_PIOS_FIS before triggering error 
> handling which leads AHCI controller is an error state, then the second 
> IDENTIFY CMD cannot be issued by AHCI controller, no ATA device will be 
> detected.
> 
>  In AHCI spec HBA Port State Machine section(5.3.8.1 and 5.3.16.5), we can 
> see this sequence: RegFIS:Entry --> ERR:FatalTaskfile (PxTFD.STS.ERR=1) --> 
> ERR:WaitForClear, no entry for PORT_IRQ_D2H_REG_FIS/PORT_IRQ_PIOS_FIS to be 
> set at this time.

>  May be we can also add PORT_IRQ_TF_ERR bit check when polling command 
> completion status?

Patch looks reasonable.  I'm wondering how to reproduce the bug?  When
booting guests in qemu using the q35 machine (with built-in ahci
controller) seabios detects everything just fine in my testing.

thanks,
  Gerd
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to