mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
ide/pci: introduce pci_ide_update_mode() function
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: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Message-ID: <20231116103355.588580-3-mark.cave-ayland@ilande.co.uk> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7552488444
commit
fd6a543d19
2 changed files with 85 additions and 0 deletions
|
@ -61,6 +61,7 @@ void bmdma_cmd_writeb(BMDMAState *bm, uint32_t val);
|
|||
void bmdma_status_writeb(BMDMAState *bm, uint32_t val);
|
||||
extern MemoryRegionOps bmdma_addr_ioport_ops;
|
||||
void pci_ide_create_devs(PCIDevice *dev);
|
||||
void pci_ide_update_mode(PCIIDEState *s);
|
||||
|
||||
extern const VMStateDescription vmstate_ide_pci;
|
||||
extern const MemoryRegionOps pci_ide_cmd_le_ops;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue