i.MX8MQ NVMe SSD device not detected

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

i.MX8MQ NVMe SSD device not detected

7,232 Views
harshitshah
Contributor III

Hi NXP Team,

 

We are trying to connect the NVMe SSD device (WD SN720) on PCIe2 of the i.MX8MQ processor custom board on L5.4.3_1.0.0 version. Please find attached schematics of the same.

 

We are able to detect the device over PCIe. 

# lspci
00:00.0 PCI bridge: Synopsys, Inc. DWC_usb3 (rev 01)
01:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD

However, there is NO any /dev/nvm* devices on the file-system. While checking on the same we are getting following error logs in dmesg.

# dmesg | grep pcie
[ 1.583425] imx6q-pcie 33c00000.pcie: 33c00000.pcie supply epdev_on not found, using dummy regulator
[ 1.592848] imx6q-pcie 33c00000.pcie: host bridge /soc@0/pcie@33c00000 ranges:
[ 1.600090] imx6q-pcie 33c00000.pcie: No bus range found for /soc@0/pcie@33c00000, using [bus 00-ff]
[ 1.613536] imx6q-pcie 33c00000.pcie: IO 0x27f80000..0x27f8ffff -> 0x00000000
[ 1.620961] imx6q-pcie 33c00000.pcie: MEM 0x20000000..0x27efffff -> 0x20000000
[ 1.827645] imx6q-pcie 33c00000.pcie: Link up
[ 1.931556] imx6q-pcie 33c00000.pcie: Link up
[ 1.935936] imx6q-pcie 33c00000.pcie: Link up, Gen2
[ 1.940909] imx6q-pcie 33c00000.pcie: PCI host bridge to bus 0000:00
[ 2.088845] pcieport 0000:00:00.0: PME: Signaling with IRQ 216
[ 2.094855] pcieport 0000:00:00.0: AER: enabled with IRQ 216

# dmesg | grep nvme
[ 2.100861] nvme nvme0: pci function 0000:01:00.0
[ 2.105602] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[ 2.255312] nvme nvme0: Removing after probe failure status: -19

 

Hardware Setup

DAS/DSS - Ball#H5 - SAI2_MCLK
DEVSLP - Ball#H3 - SAI2_RXC
PCIe2_RESETn - Ball#N4 - SAI5_RXFS
PCIe2_WAKE - Ball#H1 - SAI1_TXFS

Please find attached the schematic reference attachment and respective device tree entries.

Query

Can you please let us know why device /dev/nvme is not detected and we are getting the above error in kernel logs? Please check the device tree node and hardware setup.

 

Regards.

Labels (1)
0 Kudos
9 Replies

7,207 Views
harshitshah
Contributor III

Hi @weidong_sun ,

 

Sorry for the confusion, we have used the external oscillator so in our case the ext_osc = <1>;

Please find attached schematics for the same.

 

Regards.

0 Kudos

7,191 Views
weidong_sun
NXP TechSupport
NXP TechSupport

For your logs:

......[ 35.967604] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[ 35.973400] nvme nvme0: Removing after probe failure status: -19
[ 35.999636] Buffer I/O error on dev nvme0n1, logical block 250051136, async page read
[ 36.028678] nvme nvme0: failed to set APST feature (-19)

.....

It seems that you are using a pcie switch , right?

So:

1. if using pcie switch and it has 3 ports, switch core power with 1.0V should be 1.0A at least 

2. add "pci=nomsi" to linux command line, which is for high speed.

 

try it, please!

Have a nice day!

B.R,

Weidong

 

 

0 Kudos

7,182 Views
harshitshah
Contributor III

Hi @weidong_sun ,

 

We do not have a PCIe switch in our connection. We are doing a direct connection from the processor to the M.2 connector to connect the SSD drive. Tried with the "pci=nomsi" argument but no update on the result. 

One more observation is sometimes ( 1 out of 5 times), after bootup, I am getting the /dev/nvme0n1 device however when I apply the below command it is giving a similar error.

# nvme list

[ 35.869040] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10
[ 35.909048] blk_update_request: recoverable transport error, dev nvme0n1, sector 2000409088 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
identify failed
NVMe status: Unknown(0x370)

[ 35.941052] nvme 0000:01:00.0: enabling device (0000 -> 0002)
[ 35.946853] nvme nvme0: Removing after probe failure status: -19
[ 35.965032] Buffer I/O error on dev nvme0n1, logical block 250051136, async page read
[ 35.993844] nvme nvme0: failed to set APST feature (-19)

 

Regards.

0 Kudos

7,175 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Do you have i.MX8MQ-EVK ?

i.MX8MQ-EVK M2 E KEY---->M KEY adapter---->nvme SSD.

design team has ever tested PCIe NVME SSD.

So if you have evk, could you test it on EVK?

 

have a nice day!

B.R

weidong

 

0 Kudos

7,171 Views
harshitshah
Contributor III

Hi @weidong_sun ,

 

As per our hardware team, our SSD form factor size is M.2 2280 so it won't be fitted on the EVK with the adapter. So, we would not be able to check the same on EVK.

Regards. 

0 Kudos

7,193 Views
weidong_sun
NXP TechSupport
NXP TechSupport

 

ext_osc = <1>  is correct.  

and  nvme driver in linux kernel should be selected.

 

B.R,

weidong

 

 

 

0 Kudos

7,217 Views
harshitshah
Contributor III

Hi @weidong_sun ,

 

Still getting the same issue with ext_osc=<0>;

 

Regards.

0 Kudos

7,213 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi,

 

    please measure pcie reference clock, and check if it outputs!

    The clock should be 100MHz.

 

B.R,

weidong

 

0 Kudos

7,221 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hi,

 From your schematic, you didn't use external clock generator for PCIE reference clock, so in device tree, ext_osc should be 0.

ext_osc = <0>;   /* it means internal REF CLOCK will be used*/

 

Try it , please!

Have a nice day!

B.R,

Weidong

0 Kudos