i.MX6q Linux SATA problems

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX6q Linux SATA problems

1,388 Views
jal21
Contributor I

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

Labels (2)
Tags (3)
0 Kudos
5 Replies

1,122 Views
zhangjunsheng
Contributor III

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

0 Kudos

1,122 Views
jal21
Contributor I

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

0 Kudos

1,122 Views
weidong_sun
NXP TechSupport
NXP TechSupport

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

0 Kudos

1,122 Views
jal21
Contributor I

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

0 Kudos

1,122 Views
weidong_sun
NXP TechSupport
NXP TechSupport

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

0 Kudos