AHCI: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
m Corrected obvious error in code (can't find how to fix cmdslots though)
m Add GHC.AHCI_ENABLE as a suggested method of detecting controller in AHCI mode
Line 243: Line 243:
=== Determining what mode the controller is in ===
=== Determining what mode the controller is in ===
As you may be aware, a SATA controller can either be in IDE emulation mode or in AHCI mode. The problem that enters here is simple: <br />
As you may be aware, a SATA controller can either be in IDE emulation mode or in AHCI mode. The problem that enters here is simple: <br />
'''How to find what mode the controller is in'''. The documentation is really obscure on this. Perhaps the best way is to initialize a SATA controller as both IDE and AHCI. In this way, as long as you are careful about non-existent ports, you cannot go wrong.
'''How to find what mode the controller is in'''. The documentation is really obscure on this. Perhaps the best way is to initialize a SATA controller as both IDE and AHCI. In this way, as long as you are careful about non-existent ports, you cannot go wrong.

One possible way of doing this is by checking the bit 31 of GHC register. It's labeled as AHCI Enable.


== AHCI Registers and Memory Structures ==
== AHCI Registers and Memory Structures ==