We have a custom i.MX6Quad board with a SSD connected via M.2 SATA running a mainline Linux 4.14.x kernel.
Some SSD are not always detected during start. With others we see random CRC errors during read tests.
I know that we can tweak the parameters in IOMUXC_GPR13 via device tree attributes to get a more stable SATA connection.
Is there anything similar to the DDR3 RAM stress test program in order to find the best parameter set?
If not, what is the recommended way to determine these parameters?
Thanks,
Joerg
Hi Joerg:
I am bringing up IMX6Q based board m2 sata ssd function, but our device is not detected.
ahci-imx 2200000.sata: SSS flag set, parallel bus scan disabled
ahci-imx 2200000.sata: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
ahci-imx 2200000.sata: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst
ahci-imx 2200000.sata: no device found, disabling link.
ahci-imx 2200000.sata: pass ahci_imx..hotplug=1 to enable hotplug
Can you share how you make m2 sata ssd functional.
1. Is any hardware ciruit required (we use same circuit for general sata and confirm general sata working).
2. Is any u-boot code, kernel defconfig/dts configuration required basides for general sata?
Thanks and best regards.
Johnson
Hi,
> 1. Is any hardware ciruit required (we use same circuit for general sata and confirm general sata working).
M.2 SATA does not require any special hardware compared to general SATA, it is just another form factor for a SATA device.
> 2. Is any u-boot code, kernel defconfig/dts configuration required basides for general sata?
Not to my knowledge.
I'd check if SATA A and B are connected correctly. If your M.2 SATA SSD supports DEVSLP, check that this pin is grounded. Also check Vcc to the SSD.
Passing hotplug=1 to the ahci_imx driver (e.g. via a new file /etc/modprobe.d/ahci_imx.conf) may help in the search.
This will cause the SATA controller in the iMX.6 to continously send out OOB COMRESET, which you may see on a decent oscilloscope.
Cheers,
Joerg
Hi Joerg,
>>Is there anything similar to the DDR3 RAM stress test program in order to find the best parameter set?
No, there is not. We don't have this kind of tool.
For SATA SSD, such CRC error warnings often occur on PC computers, and you can search the Internet for relevant discussions. Generally speaking, the cause of this problem is caused by M.2 interface and transmission data line. So you need to try cleaning up the M.2 interface and replacing several different data lines.
Have a nice day!
BR,
weidong
Hi,
thanks for the quick answer! As we see the crc errors on a custom built board we would try to adapt the parameters in IOMUXC_GPR13 to our board. We have these device tree parameters available (plus fsl,no-spread-spectrum which is just a flag):
+ fsl,receive-eq-mdB
+ fsl,transmit-atten-16ths
+ fsl,transmit-boost-mdB
+ fsl,transmit-level-mV
Is there any recommended procedure in order to find the best matching values of these parameters for a custom build board?
Best Regards,
Joerg
Hello Joerg,
>>Is there any recommended procedure in order to find the best matching values of these parameters for a custom build board?
Unfortunately, We don't have a better solution or tool to recommend to you.
Have a nice day!
BR,
Weidong