I’m having difficulty with my VisionFive 2 and a Mushkin Tempest 256-gig M.2 SSD (MKNSSDTS256GB-D8) I purchased for the project.
The SSD is only recognized by the Linux kernel about half the time, when I boot (the boot image comes from the TF card, of course). When it works, it works very well indeed - good speed, fully reliable. I was able to transfer the current Debian image over from the TF card and run with the appropriate NVMe partition as the root filesystem. When it doesn’t work, the boot hangs at the “waiting for root filesystem” stage, and eventually times out.
I though that the problem might be one of intermittent contacts between the SSD and the M.2 socket. I’ve re-seated the module repeatedly, played around with its exact angle, position of the hold-down screw, and so forth, and this hasn’t helped.
In my latest experiment I left the board and module in exactly the same positions, rebooted repeatedly using the board’s RESET button, and making no other changes between trials. The success rate was approximately 50% - on half of the boot attempts the system came up fine, and on the others the console log didn’t show the PCIe interface coming up and the NVMe wasn’t seen.
I’ve tried a couple of different USB power supplies, including a 4-amp 5-volt supply, and a PD-capable charger. The results are the same for both.
At this point it’s feeling like some sort of PCIe link-training problem between the board and the module when Linux tries to bring up PCIe.
Since the current boot code doesn’t have NVME support compiled in, I can’t tell whether the problem is specific to the Linux kernel, or whether it’s a hardware incompatibility, or whether I have broken hardware.
Any hints for further debugging?