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?
> 
>  fail log:
>  02.386: |bffa6000| AHCI/1: link up
>  02.387: |bffa6000| AHCI/1: send cmd ...
>  02.387: |bffa7000| phys_free bffa9c00 (detail=0xbffaa320)
>  02.396: |bffa7000| phys_free bffaa200 (detail=0xbffaa1d0)
>  02.396: |bffa7000| phys_free bffaa000 (detail=0xbffaa1a0)
>  02.396: |bffa7000| phys_free bffaa380 (detail=0xbffaa350)
>  02.400: \bffa7000/ End thread
>  02.401: phys_free bffa7000 (detail=0xbffaa170)
>  34.391: |bffa6000| WARNING - Timeout at ahci_command:153!
>  34.392: |bffa6000| AHCI/1: send cmd ...
>  66.397: |bffa6000| WARNING - Timeout at ahci_command:153!
> 
> Signed-off-by: zhaoxin\runaguooc <runaguo...@zhaoxin.com>

Patch doesn't apply to git master.  Can you rebase and resend?  And
while being at it wrap the commit message to hot have lines longer than
80 chars?

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

Reply via email to