On Tue, Aug 04, 2020 at 11:17:05AM -0000, runaguo...@zhaoxin.com wrote:
> 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?

Thanks.  Gerd wrote the AHCI support.  (As well as the XHCI support
referenced in your other report.)  Hopefully he'll be able to comment.

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

Reply via email to