Announcement

Collapse
No announcement yet.

Thinkpad T490 doesn't detect NVME

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Thinkpad T490 doesn't detect NVME

    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:

    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.
    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
    Last edited by pandrew; 11-13-2023, 03:07 PM.

    #2
    Re: Thinkpad T490 doesn't detect NVME

    Post the bios dump of your machine to the appropriate subforum and post a link to it here. The configuration of flex io in bios might be incorrect.

    Comment


      #3
      Re: Thinkpad T490 doesn't detect NVME

      I've uploaded the BIOS dump here:
      https://www.badcaps.net/forum/showthread.php?p=1289751

      Note that I only have the dump from after I have performed a BIOS and ME update (via lenovo utilities). But it was behaving the same before and after.

      EDIT: Actually this dump is after the BIOS update but before the ME update

      If it is indeed the configuration, could this have happened accidentally? Or did someone mess with it? I don't really know the history of this motherboard, all I know is that the seller thought the bios had to be rewritten cause it was giving some other error when they were trying to boot the motherboard without a display attached.
      Last edited by pandrew; 11-14-2023, 04:00 AM. Reason: wrong info

      Comment


        #4
        Re: Thinkpad T490 doesn't detect NVME

        You might want to try one of the other M2 sockets for a sanity check with a 2230/2242 SSD. I know this does work on the earlier models, albeit a bit slower.

        I'd be also checking with Gen 3x4 and Gen 4x4 NVMe SSD's too. Have had issues with MAC's for example not detecting SSD's models that previously worked. Manufacturer changes something in the firmware, and the BIOS NVMe driver simply doesn't talk to it.

        Comment


          #5
          Re: Thinkpad T490 doesn't detect NVME

          Issue solved by BIOS in the other thread:
          https://www.badcaps.net/forum/showthread.php?p=1289751

          Thanks khaahk!

          Comment

          Working...