• P
    ahci: fix FIS I bit and PIO Setup FIS interrupt · ae79c2db
    Paolo Bonzini 提交于
    The "I" bit in PIO Setup and D2H FISes is exclusively a device concept
    and the irqstatus register in the controller does not matter.  The SATA
    spec says when it should be one; for D2H FISes in practice it is always
    set, while the PIO Setup FIS has several subcases that are documented in
    the patch.
    
    Also, the PIO Setup FIS interrupt is actually generated _after_ data
    has been received.
    
    Someone should probably spend some time reading the SATA specification and
    figuring out the more obscure fields in the PIO Setup FIS, but this is enough
    to fix SeaBIOS booting from ATAPI CD-ROMs over an AHCI controller.
    
    Fixes: 956556e1Reported-by: NGerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    Reviewed-by: NJohn Snow <jsnow@redhat.com>
    Message-id: 20180622165159.19863-1-pbonzini@redhat.com
    [Minor edit to avoid ATAPI comment ambiguity. --js]
    Signed-off-by: NJohn Snow <jsnow@redhat.com>
    ae79c2db
ahci.c 38.9 KB