Skip to content
  • Mark Cave-Ayland's avatar
    fd6a543d
    ide/pci: introduce pci_ide_update_mode() function · fd6a543d
    Mark Cave-Ayland authored
    
    
    This function reads the value of the PCI_CLASS_PROG register for PCI IDE
    controllers and configures the PCI BARs and/or IDE ioports accordingly.
    
    In the case where we switch to legacy mode, the PCI BARs are set to return zero
    (as suggested in the "PCI IDE Controller" specification), the legacy IDE ioports
    are enabled, and the PCI interrupt pin cleared to indicate legacy IRQ routing.
    
    Conversely when we switch to native mode, the legacy IDE ioports are disabled
    and the PCI interrupt pin set to indicate native IRQ routing. The contents of
    the PCI BARs are unspecified, but this is not an issue since if a PCI IDE
    controller has been switched to native mode then its BARs will need to be
    programmed.
    
    Signed-off-by: default avatarMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Message-ID: <20231116103355.588580-3-mark.cave-ayland@ilande.co.uk>
    Reviewed-by: default avatarKevin Wolf <kwolf@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    fd6a543d
    ide/pci: introduce pci_ide_update_mode() function
    Mark Cave-Ayland authored
    
    
    This function reads the value of the PCI_CLASS_PROG register for PCI IDE
    controllers and configures the PCI BARs and/or IDE ioports accordingly.
    
    In the case where we switch to legacy mode, the PCI BARs are set to return zero
    (as suggested in the "PCI IDE Controller" specification), the legacy IDE ioports
    are enabled, and the PCI interrupt pin cleared to indicate legacy IRQ routing.
    
    Conversely when we switch to native mode, the legacy IDE ioports are disabled
    and the PCI interrupt pin set to indicate native IRQ routing. The contents of
    the PCI BARs are unspecified, but this is not an issue since if a PCI IDE
    controller has been switched to native mode then its BARs will need to be
    programmed.
    
    Signed-off-by: default avatarMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
    Message-ID: <20231116103355.588580-3-mark.cave-ayland@ilande.co.uk>
    Reviewed-by: default avatarKevin Wolf <kwolf@redhat.com>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Loading