I have a Thinkpad T490 (NM-B901 Rev 1.0) that cannot detect an NVME M.2 SSD,
but it works fine with a SATA M.2 SSD.
When connecting an NVME M.2 SSD I get while booting:
"2101: Detection error on HDD0 (Main HDD)"
I can continue and boot a live linux distro from a USB stick, but it doesn't show up in lspci,
and I don't notice any relevant error messages in dmesg.
I have tried two different M.2 NVME SSDs (both working fine on a different machine),
and the behavior is the same.
I am pretty sure that all the important PCI-Express pins are connected through correctly to the CPU,
I've put all the measurement details in a code block below, feel free to skip over it:
I have also checked the +/-PCIE13_CLK_100M pins with an oscilloscope:
- when booting with a SATA M.2 drive, this pair is clocked at 100MHz for about 2.5-2.8 seconds.
- when booting with a PCIE M.2 drive, this pair is clocked at 100MHz for over 4 seconds.
Not sure if this difference is caused by the -SATA_DTCT signal going high,
or by -CLKREQ_PCIE13, but both of those appear to have a semiconductor junction on the other end,
so I don't think the computer thinks it's the wrong type of drive, although I can't be sure, the
error message is not very descriptive.
I have also checked the L0 TX pair, and I see some activity on it during boot, although my 500MHz ancient
oscilloscope is not good enough to really properly sample, so all I can say the pins aren't idle.
I have seen no activity on the L1 TX pair though. (I'm not a PCIE expert but I'd expect the second lane to
be negotiated after contact is made on lane 0, so I think this doesn't indicate any specific problem)
The SSD I'm trying to connect has only two lanes.
I have also tried updating the BIOS, EC and ME firmware to the latest, and I've seen all 3 versions
increment, but no change in behavior. Restoring the BIOS settings to factory default,
or removing the CMOS battery also doesn't help.
Any ideas on how I could continue debugging this problem?
Note: See here for schematics: https://www.badcaps.net/forum/attach...8&d=1690910760
but it works fine with a SATA M.2 SSD.
When connecting an NVME M.2 SSD I get while booting:
"2101: Detection error on HDD0 (Main HDD)"
I can continue and boot a live linux distro from a USB stick, but it doesn't show up in lspci,
and I don't notice any relevant error messages in dmesg.
I have tried two different M.2 NVME SSDs (both working fine on a different machine),
and the behavior is the same.
I am pretty sure that all the important PCI-Express pins are connected through correctly to the CPU,
I've put all the measurement details in a code block below, feel free to skip over it:
Code:
All readings measured with an EEVBLOG 121GW multimeter, without M.2 card connected. The following diode mode readings are measured between ground and the signal at the pins on the back of the m.2 socket. First number is red wire to ground, second number is black wire to ground: PCIE13_CLK_100M: 0.296V 0.324V -PCIE13_CLK_100M: 0.294V 0.325V PCIE13_L0_SATA1_RXP: 0.307V 0.832V PCIE13_L0_SATA1_RXN: 0.306V 0.832V PCIE13_L1_RXP: 0.302V 0.832V PCIE13_L1_RXN: 0.303V 0.832V PCIE13_L2_RXP: 0.302V 0.832V PCIE13_L2_RXN: 0.306V 0.832V PCIE13_L3_RXP: 0.302V 0.833V PCIE13_L3_RXN: 0.302V 0.832V The TX pairs have series capacitors, so these diode mode readings are between ground and the cpu-side of these series capacitors. PCIE13_L0_SATA1_TXP: 0.286V 0.383V PCIE13_L0_SATA1_TXN: 0.286V 0.383V PCIE13_L1_TXP: 0.286V 0.383V PCIE13_L1_TXN: 0.286V 0.384V PCIE13_L2_TXP: 0.287V 0.383V PCIE13_L2_TXN: 0.287V 0.385V PCIE13_L3_TXP: 0.287V 0.382V PCIE13_L3_TXN: 0.286V 0.386V SATA_DTCT to VCC3SUS: 0.488V VCC3SUS to SATA_DTCT: 0.936V The pull-up resistors of SATA_DTCT (R1006) in-circuit as 9,95kohm. Furthermore measuring SATA_DTCT on the pull-up resistor has the correct voltage levels, low when SATA, high when PCIe SSD_DTCT to VCC3M: 0.564V VCC3M to SSD_DTCT: 0.934V I have also checked continuity from the TX series capacitors to the pins on the back of the connector. I've measured the TX series capacitors (technically not in circuit cause one end is floating) PCIE13_L0_SATA1_TXP: 0.153 uF PCIE13_L0_SATA1_TXN: 0.167 uF PCIE13_L1_TXP: 0.181 uF PCIE13_L1_TXN: 0.188 uF PCIE13_L2_TXP: 0.190 uF PCIE13_L2_TXN: 0.191 uF PCIE13_L3_TXP: 0.188 uF PCIE13_L3_TXN: 0.183 uF I have checked that -PLTRST_FAR as seen by the card goes high. In diode mode: GND to -CLKREQ_PCIE13: 0.794V -CLKREQ_PCIE13 to GND: 0.891V No pairs of pins are shorted I did the same measurements again on a dead donor board, and the values have similar magnitudes. Visual inspection of the connector under microscope looks good.
- when booting with a SATA M.2 drive, this pair is clocked at 100MHz for about 2.5-2.8 seconds.
- when booting with a PCIE M.2 drive, this pair is clocked at 100MHz for over 4 seconds.
Not sure if this difference is caused by the -SATA_DTCT signal going high,
or by -CLKREQ_PCIE13, but both of those appear to have a semiconductor junction on the other end,
so I don't think the computer thinks it's the wrong type of drive, although I can't be sure, the
error message is not very descriptive.
I have also checked the L0 TX pair, and I see some activity on it during boot, although my 500MHz ancient
oscilloscope is not good enough to really properly sample, so all I can say the pins aren't idle.
I have seen no activity on the L1 TX pair though. (I'm not a PCIE expert but I'd expect the second lane to
be negotiated after contact is made on lane 0, so I think this doesn't indicate any specific problem)
The SSD I'm trying to connect has only two lanes.
I have also tried updating the BIOS, EC and ME firmware to the latest, and I've seen all 3 versions
increment, but no change in behavior. Restoring the BIOS settings to factory default,
or removing the CMOS battery also doesn't help.
Any ideas on how I could continue debugging this problem?
Note: See here for schematics: https://www.badcaps.net/forum/attach...8&d=1690910760
Comment