So I have implemented an AHCI driver and it works fine in VirtualBox and QEMU, however on the 3 laptops I have tested it on, no data has been transferred. I have checked SSTS (0x133), SCTL (0x700), and SERR (0), and I have noticed that whilst command issue clears, interrupt status is not set unlike in the VMs. I have tried resetting the controller and sending COMRESET to the ports to no avail.
Port code:
https://github.com/fido2020/Lemon-OS/blob/master/Kernel/src/storage/ahciport.cppController code:
https://github.com/fido2020/Lemon-OS/blob/master/Kernel/src/storage/ahci.cpp