T20 SD Card not mounting

We are currently testing the T30 and T20 for battery life considerations. We have our pins setup and they work for all the peripherals we are using (I2C, SPI, UART, etc…) on both the T30 and T20.

However, there is one part that is being flaky, and that is the SD Card. On the T30 test, it always mounts correctly and can be used. When we put the T20 in, the SD Card is never mounted. The card detect pin (SODIMM 43) correctly changes to polarity 0 when inserted, and polarity 1 when taken out. Also, we use the same pins for both the T20 and T30 for the SD Card

The registry looks like this:

SodimmCardDetect = 43

CardDetectPol = 0

SdioInstance = 4 (2 if T30)

The only thing that is different between the T20 and T30 that I see is that the T20 has 4 extra pins defined for data4 - data7. I assume this is for high speed transfers for the SD, where the T30 only has the 4 data pins.

Additional note, once every 10 bootups or so, the SD card will show on the T20 as mounted. However, you cannot write to it or access it. After taking the SD card out, it will no longer show on subsequent times I plug it back in.

Is there any way to troubleshoot the driver on load of the SD card, or any way to query information about it’s state?

Could you share part of your carrier board schematic related to mentioned SD card?

alt text

Here is the SD card pinout

Could you please update OS to v2.3 and run tests again?
https://developer.toradex.com/software/windows-embedded-compact/t20-t30-wec-software

Upgraded to V2.3 but still no luck.

Tried both manually entering all sodimm pins in the registry as well as trying SdioInstance as well as referenced in the OP.

I did get some extra output on the debug interface. This is what it says as i eject then insert the SD card:
SDHCDIndicateSlotStateChange(DeviceEjected)
SDHCDIndicateSlotStateChange(DeviceInserted)
NvDdkSdioSetClockFrequency: Requested: 100 KHz, Actual: 101 KHz

Hope this helps

Do you have any Toradex carrier board handy?

I dug up an old carrier board and put in a stock T20 on version 2.1b2

After setting up the SDIO in registry (detect, polarity, instance #4) and rebooting, the SD card shows and I can read & write from it. I also did a T30 and it worked as well when changing the instance to #2. This is what I expect from our own board

Any ideas?

I can’t comment on your schematic snippets since it’s hard to read and also not clear how power is connected to SD card.

Please check our design guide schematic example and compare it with yours.

Ok, I will take another look at it. Do you know of any possible differences between T30 and T20 for SD card? pins are same, polarity and detect are same, only difference I see is instance #. Different pullup values perhaps?