Following on from the earlier thread "Implement "non 100% native mode" in via-ide", here is an updated patchset based upon the test cases sent to me off-list.
The VIA IDE controller is similar to early versions of the PIIX controller in that the primary and secondary IDE channels are hardwired to IRQs 14 and 15 respectively. Guest OSs typically handle this by either switching the controller to legacy mode, or using native mode and using a combination of PCI device/vendor ID and/or checking various registers in PCI configuration space to detect this condition and apply a special fixed IRQ 14/15 routing. This patchset effectively updates the VIA IDE PCI device to follow the behaviour in the datasheet in two ways: fixing some PCI configuration space register defaults and behaviours, and always using legacy IRQ 14/15 routing, and once applied allows all our known test images to boot correctly. Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> BALATON Zoltan (2): ide/via: Get rid of via_ide_init() pci: Honour wmask when resetting PCI_INTERRUPT_LINE Mark Cave-Ayland (5): via-ide: move registration of VMStateDescription to DeviceClass via-ide: ensure that PCI_INTERRUPT_LINE is hard-wired to its default value via-ide: initialise IDE controller in legacy mode via-ide: allow guests to write to PCI_CLASS_PROG via-ide: always use legacy IRQ 14/15 routing hw/ide/via.c | 21 +++++---------------- hw/mips/mips_fulong2e.c | 5 ++++- hw/pci/pci.c | 5 ++++- include/hw/ide.h | 1 - 4 files changed, 13 insertions(+), 19 deletions(-) -- 2.20.1