Card did not respond to voltage select!


#1

Hello all,

I was following this tutorial for bringing up my custom board based on Cyclone V (Enclustra Mercury SA1).

Everything went fine, but there is one specific problem which I wasn’t able to google how to resolve.

When the board is off for longer period of time (e.g. over night), after first power-up I get the following from u-boot preloader:

U-Boot SPL 2013.01.01 (Nov 21 2016 - 16:21:11)
BOARD : Altera SOCFPGA Cyclone V Board
CLOCK: EOSC1 clock 50000 KHz
CLOCK: EOSC2 clock 25000 KHz
CLOCK: F2S_SDR_REF clock 0 KHz
CLOCK: F2S_PER_REF clock 0 KHz
CLOCK: MPU clock 800 MHz
CLOCK: DDR clock 400 MHz
CLOCK: UART clock 100000 KHz
CLOCK: MMC clock 50000 KHz
CLOCK: QSPI clock 100000 KHz
RESET: COLD
INFO : Watchdog enabled
SDRAM: Initializing MMR registers
SDRAM: Calibrating PHY
SEQ.C: Preparing to start memory calibration
SEQ.C: CALIBRATION PASSED
SDRAM: 1024 MiB
ALTERA DWMMC: 0
Card did not respond to voltage select!
spl: mmc init failed: err - -17
### ERROR ### Please RESET the board ###

Preloader does 3 “warm” resets, and fails. If I hard-reset the board, It boots normally, boots Linux, and continues to work.

Sometimes it happens that after 1h of being off, preloader fails, and after warm reset it boots normally.

What I have already tried:

  • My original design had MMC clock on 25 000 kHz, I tried to increase the clock to 50 000 kHz
  • I tried with two different SD cards, both microSD HC class 4, one is 4GB, second is 8GB
  • I looked through source of preloader, which generates this error, it is in mmc.c file. This happens after timeout occurs, after preloader sends test command to SD card. At least for me, this was not helpful.

Weird thing is that preloader is also stored on SD card (raw binary partition, number 3, size 1 MB), which means that SD card works, if the preloader is loaded from it…

Does anyone have any idea what is wrong here?

Thanx,
Darko


#2

Hello,

Does anyone have any idea about this?

Thank you.


#3

Hello all,

There is an update to this issue: I recently purchased new microSD HC UHS class 1, and I get the mentioned problem only once after cold restart, but after that system boots fine.

Did anyone had a problem with different types of SD cards? I would like to eliminate this problem even after cold restart, but for now I can live with this.

Thanks,
Darko


#4

I’m having the same issue on a different platform. It appears to be timing related. (Someone fixed it by changing a clock from 20 to 50Mhz, but that’s not an option for me).
So, I was wondering, if the size (capacity) of the card plays a role. I’m using a 32GB card. I’m just speculating, but maybe, upon initialization, it performs checks which duration depends on its capacity. Unfortunately, I don’t have smaller cards … (have been ordered).
What size cards (GB) are you using? And when you went from one card to another, did you also change to a different size?


#5

Hi Paul,

I have managed to work around (or fix?) this problem.

Back than I was using class 4 micro SD cards. After switching to class 10 UHS-I micro SD cards I never got this problem again. So I guess it has something to do with timing, rather than capacity.


#6

Thanks for the suggestion. Looks like it’s neither the card (I’ve been using UHS-1 cards all along) nor the capacity: tried with 8 and 16 GB now too, same problem. Beginning to suspect the card slot. Oh well. :wink:
Thanks for responding though!