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