02-15-2019 03:07 PM
We are facing an issue on the Zynq-7020 boot process that is literally driving us mad...
We have an amount of custom made boards, all with the same hardware, that work with our application loaded into petalinux, the entire firmware is on an SD card (fsbl, bitfile, uboot, linux ramdisk).
It happens that with some board / SD card combination (and with cheap class 4 cards) the boot stops with a read error.
We started to analzye the failure, and we found that, the SD card that causes the problem, is readable an writeable with a common PC, without any major issue.
After some while I strated playing with the FSBL to understant better the cause, and this is what I found:
1) the FSBL is on the SD card too, but it's always loaded without any issue.
2) the FPGA is always programmed
3) the handoff to uboot always fails
to do an additonal test i changed the FSBL to program the FPGA in a infinte loop, again and again, and, suprise, on the "bad" SD the FPGA is programmed ONLY one time then i get the read error.
It looks like after the power on reset i can do only a couple of reading from the SD, no matter what, the third one will always fail.
I wired a scope to the SD signals and what happed is just that a CMD18 command receives no reply at all.
Does somebody have any clue? What can make the SD work systematically for only two readings before stopping? May there be something that can make the card reset?
Thanks a lot,
02-21-2019 10:34 AM
You can try slowing down the FSBL to "standard speed" 25MHz and see if that helps (You need to hack the Xilffs library or the SD driver).
Another thing is the SD reference clock .... be sure it's 200MHz.
I saw also the card not responding if the unused DAT lines are NOT pulled up (but this usually ended up with the device not even getting to the FSBL).
03-01-2019 01:50 AM
We will try and let you know, about the pullups i keep getting mixed adivices, somebody will tell to remove them sombody will tell to put them.
Is there a way to reinit the SD card after a read?