AnsweredAssumed Answered

Downgrade SATA port speed (Windows 7)

Question asked by jd2k4 on Jul 22, 2020

My buddy get HP 15-ba073ur and tried to replace optical drive with SSD in a caddy. He was able to create partition, but failed to format it. I placed SSD drive instead of native, and put old HDD into the caddy. SSD works just fine, HDD - fails. Symptoms were extremely low read/write speed (about 2-3 KB/s) and after I cleaned MBR and created partition Windows failed to format it. Optical drive at the same time works just fine.

 

After some digging under Linux I've found that there are lots of error occurs while transfering data from/to HDD. After some time message appears in Linux kernel log that link speed was restricted to SATA2 and after that no errors produced. This looks like problem with cable and indeed it is: system board of notebook connected to PCB with SATA connector by plain unshielded cable with thin wire gauge. Optical drive supports SATA-150 mode only and so it works just fine. HDD reports that it support SATA3 and fails. If I add option "libata.force=2:3.0" (second port, limit to SATA300) to the Linux kernel, HDD starts to work properly without any error. Windows 7 haven't such options.

 

I dig bit more and found that amd_sata.sys has references to AmdSataChannelSpd and AmdSataDeviceSpd parameters in HKLM\SYSTEM\CurrentControlSet\services\amd_sata\Parameters\Device. Driver looks for them (I've checked code), but they are absent so nothing happens. My question is: what values should be used for these parameter to downgrade one channel (or even whole device) to SATA2 instead of SATA3? Or may be there is special tool to do this? Driver version is 1.2.001.0402.

 

Notebook BIOS contains locked/hidden page with SATA parameters but it only allows to enable/disable controller, encrypt drive and change mode from IDE to AHCI.

Outcomes