VirtualBox

Opened 9 years ago

Last modified 9 years ago

#14485 new defect

PCI IDE controller (PIIX4) has incorrect programming interface

Reported by: jncronin Owned by:
Component: other Version: VirtualBox 5.0.2
Keywords: pci ide piix4 Cc:
Guest type: all Host type: all

Description

The programming interface field of the PCI configuration space for the PCI IDE controller (PIIX4) as configured in http://www.virtualbox.org/svn/vbox/trunk/src/VBox/Devices/Storage/DevATA.cpp is incorrectly specified as 0x8a. The PIIX4 datasheet (e.g. http://www.microbe.cz/docs/82371AB%20PCI-TO-ISA_IDE%20XCELERATOR%20(PIIX4).pdf) page 91 states it should be 0x80 instead.

The current value 0x8a is invalid because it incorrectly informs drivers that the device supports switching to PCI native mode when by writing 0x8f back to the programming interface field when it does not (specifically, the emulated device does not honour writes to pci configuration space addresses 0x8 through 0xb).

The fix is to either change the current value to 0x80 (line 7446 of DevATA.cpp) or fully implement mode switching in the driver. The former is probably better as it better emulates the PIIX4.

Change History (1)

comment:1 by michaln, 9 years ago

That is interesting, but irrelevant per se. Since all supported guest operating systems (and it's a long list) work with the current implementation, there has to be a very good reason to change it. The datasheet isn't enough.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use