SD card fails initialize/identification timeout

Not sure if this is the right forum to discuss this. Really just looking for some guidance on how to troubleshoot this more or any next steps to attempt.

We have an embedded system that uses a Zynq Ultra Scale (Zu3+) and a SD card interface. The Zynq project is setup for 3.3V IO using SD 2.0 standards with a micro-usb connector interface. Our manufacturing process uses the SD card to load QSPI and finalize the card for secure boot process. We have several boards that fail to boot from SD or fail during the SD card driver launch (when booted from QSPI). We have captured many scope waveforms of the whole initialization and identification process during OS driver launch (as well as during the boot process). Verified 3.3V startup ramp and SD card signal integrity. Recently we have enabled verbose flags to the driver to log where it is failing. Driver is = devb-sdmmc-xzynq 1.00A

Basically we see CMD0,8,44,41 get sent out and receive a 0xFF8000 response. This CMDA41 repeats 500 times while it attempts to change the clock speed and the voltage detection until it eventually times out and says “unsupported card inserted”. Same card will also work at times. Makes no difference between a standard SD card or a high speed card. We have a support ticket into Xilinx but I have a feeling they are going to say it is not a Xilinx problem.

We do have different designs that do not have this problem (but use a level shifter and full-size SD cards) as well as one that is almost identical (3.3V microSD) also not having the problem. So trying to say we do have experience with the Zynq firmware and in doing layout. Not sure why these are not also having problems. We have worked closely with the contract manufacturer to analyze the BGA soldering process as well.

One recent observation is when booting from QSPI, and the driver launch fails to mount the SD card… we can “hot swap” the SD card in and the driver will ~mostly launch successfully. This lead us to investigate the 3.3V power ramp (~3ms) which is within spec. Issue is we can’t do this during SD card boot which is currently required to program the QSPI and setup the secure boot process.

Any help would be appreciated. I can provide scope waveforms and driver log files if needed.

Seeing CMD8 response is comming back bad. Area in attached waveforms between the cursors at the end shows there is contention. Tried multiple cards with the same failure.
When it passes, this contention is not there.

Hi @hcalreg,

Have you opened a Support Case? If not opened, for more information, please contact the SD Technical Support team for best assistance and troubleshooting: