Mount thinklife NVME M.2 2242 128G failed

I’m using a SSD thinklife NVME M.2 2242 128G with the M2-PCIE adaptator from taobao
https://item.taobao.com/item.htm?spm=a230r.1.14.268.54ed6f58jTufcS&id=622862952349&ns=1&abbucket=2#detail.
and when i boot the nano, The NVMe is visible in the lspci but not in the fdisk.
lspci -vvv

01:00.0 Non-Volatile memory controller: Device 1987:5008 (rev 01) (prog-if 02 [NVM Express])
Subsystem: Device 1987:5008
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Interrupt: pin A routed to IRQ 84
Region 0: Memory at 13000000 (64-bit, non-prefetchable) [size=16K]
Capabilities:

and the log nvme_ssd_err.log (38.8 KB)

Hi,

Could you try to disable aspm by adding below into kernel commandline?

pcie_aspm=off

when i disable aspm. the NVME is not visible in the lspci .
and the log. nvme_ssd_err2.log (59.4 KB)

I see “PCIE: Response decoding error” errors. This could possibly happen because of the NVMe device not asserting the CLKREQ signal all through.
Could you please add “nvidia,disable-clock-request” in the root port nodes of the PCIe controllers?
Also, if you could compile the kernel quickly, then, as an experiment, the following kernel change could be tried out as well.

diff --git a/drivers/pci/host/pci-tegra.c b/drivers/pci/host/pci-tegra.c
index 63c0e343d388..8e9fac26e9eb 100644
--- a/drivers/pci/host/pci-tegra.c
+++ b/drivers/pci/host/pci-tegra.c
@@ -3480,6 +3480,7 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie)
                        return -EADDRNOTAVAIL;
                rp->disable_clock_request = of_property_read_bool(port,
                        "nvidia,disable-clock-request");
+               rp->disable_clock_request = 1;

                rp->rst_gpio = of_get_named_gpio(port, "nvidia,rst-gpio", 0);
                if (gpio_is_valid(rp->rst_gpio)) {

i’m so sorry for the late reply. when i change the kernel code, the ssd can be identify sometimes. ok log nvme_ok.log (58.0 KB) . err log nvme_err.log (57.4 KB)

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Did you confirm that the change is indeed getting reflected? I’m afraid we can’t do much beyond this point other than connecting the PCIe analyzer and find out what is going wrong.
Also, do you observe this issue only with this endpoint or is this issue seen with other endpoints as well?