I have a JMicron JMB585 M.2 Sata controller connected over PCI-e to my UDOO x86 Advanced (kickstarter edition). I have a problem where the controller is not powered or connected about 70% of the time after boot. If it's dead on boot, it will remain dead until a reboot might make it work again. If it starts up correctly, it seems to continue to work as long as the device is powered on without a reboot. When it the JMicron chip doesn't power on, lspci doesn't show anything connected to PCI-e bus 0-1. No leds on the JMicron chip turns on. I'm trying to figure out what's wrong. This feels like it might be a firmware issue, or a loose fit. I haven't updated the firmware since I got the UDOO board. Could this solve it? I've tried to reinstall the m.2 chip in order to make sure it's not a loose fit, but it doesn't seem to make a difference. The times everything works, the leds on the chip turns on directly during POST, that's why I think it might be a firmware issue. Anyone else with problems like this? Where can I find the changelog for the firmware revisions. Could this be the problem?
Ok. I started testing again and I think the problem has to do with pci-e gen version. When testing with other PCI-e cards, and if I configure the m.2 PCI-e port to use a specific PCI-e gen version to either 1 or 2 (instead of auto), it seems to work on every boot (not thoroughly tested though). No idea why this happens. I tested with 1 older card that only works with PCI-e gen 1, and 1 card which works with both gen 1 and gen 2. I could not replicate this on my M.2 JMB585 card which has support for PCI-e gen 3 (UDOO x86 only has support for gen 1 and gen 2). I'll stick with other PCI-e cards for now.