Page 1 of 1
AHCI Question
Posted: Tue Mar 15, 2016 9:54 am
by BrightLight
I've just noticed something in the Windows Device Manager. My laptop's AHCI controller uses I/O ranges 0x3088 to 0x308F, 0x3094 to 0x3097, 0x3080 to 0x3087, 0x3090 to 0x3093 and 0x3060 to 0x307F. Let's say the first I/O range, 0x3088 to 0x308F, can it be used as an ATA bus? For example, can 0x3088 be the data port, 0x308E be the drive select port, and so on?
If not, how does IDE emulation from AHCI work?
Re: AHCI Question
Posted: Tue Mar 15, 2016 2:11 pm
by Kevin
IDE emulation is usually activated in the BIOS setup. It means that already on the PCI bus a different device appears. So if you see an AHCI device there, you can't access it as IDE; and vice versa, if IDE emulation is activated, you can't access the AHCI interface. Switching the device between these modes requires chipset specific code, so you probably don't want to do that. Just write both an IDE and an AHCI driver.
Re: AHCI Question
Posted: Fri Mar 18, 2016 3:11 pm
by BrightLight
Kevin wrote:IDE emulation is usually activated in the BIOS setup. It means that already on the PCI bus a different device appears. So if you see an AHCI device there, you can't access it as IDE; and vice versa, if IDE emulation is activated, you can't access the AHCI interface. Switching the device between these modes requires chipset specific code, so you probably don't want to do that. Just write both an IDE and an AHCI driver.
Thanks! Actually, after I configure my laptop's BIOS to use IDE emulation, my OS detects a PCI IDE controller and my ATA driver works on my SATA drive! Yay!