I like the troubleshooting steps that you have taken. Since you found that the ZedBoard FSBL file works to boot your board, that tells me that it is unlikely a problem with the SD card itself.
I came across this Xilinx forum thread here:
According to this, an incomplete PS7 config from Vivado can cause the problems you are seeing with a generated FSBL since the FSBL BSP settings are inherited from the hardware platform definition which comes from Vivado.
My recommendation is to double check the PS7 config settings for MIO to the SD card as well as the SD clock settings. The easiest way to take card of all this would be to start a new Vivado project, select ZedBoard as the target, and when you go to place down your "Zynq Processing System 7" IP block, make sure you apply the board settings. This will make sure that the presets for ZedBoard are applied to your Zynq PS7 block so that you don't have to worry about missing any of the necessary settings for SD card boot. If doing this results in a generated FSBL which works okay, then you can go back to your original Vivado project and double check the Zynq PS7 block settings against the one in the second project.
I too am having trouble getting a zedboard to boot from a SDcard. I read lots of forum posts here and at xilinx and none of the suggestions have helped.
I have a standalone design with logic in the PL that works fine loading through jtag using SDK. I am using 2015.2 . I made sure the PS part of the project has the zedboard settings applied to it. I checkd the SD card MIO pins, they seem to be correct, the clock is 50MHz. I created a fsbl project in SDK, made it the first partition in the boot generator gui. After that is the bitfile, then the elf for the standalone app. It creates a boot.bin. It does not boot from my fat32 formatted empty except boot.bin 32GB sdcard. I tried setting the debugging prints for the FSBL project (-D FSBL_DEBUG_INFO) and I get no output. The original SDcard that came with the zed works fine, boots linux. When I put the sd_image dir contents that came with the zedboard OOB design collection, on my 32GB SDcard, it boots as well.
I need help troubleshooting this issue!
First of all, how does the FSBL know to load my (or any) bitfile to the PL?
The ps7_init.c does not have any reference to what would be the port to load the PL, what code does the load?
I found this on a xilinx forum post:
1) the ROM bootloader reads BOOT.BIN from the SD card
2) it extracts the FSBL from the file and executes it
3) FSBL runs the ps7_init code extracted from vivado
4) FSBL reads the boot.bin from the SD card
5) FSBL loads uboot and optional bitstream.
There are a lot of details missing from this list. I dont see any code, source or lib that is in the fsbl project that would handle reading the sd card, loading the bitstream, etc. I wonder if you (ar anybody else) could fill in the details between these items. I'm going to have to dig deep into this problem.
In our Developing Zynq Software Speedway 2016.2, we go through the steps required to create an SD card image for a Zedboard,MicroZed, and PicoZed development platform. I would like you to go through that portion of the Speedway and make sure you can replicate the example. You can find it here http://zedboard.org/course/developing-zynq%C2%AE-7000-all-programmable-soc-software-vivado-20152-and-20162 and please refer to lab07. Please use the 2016.2 toolset while you do so.
Based on what you are saying, you have validated that the Out of Box image works on both your SD card and the SD card that came with your Zedboard. So your SD card should be OK to use.
Iwant to start a standalone elf on the board,
I have imaged three files(fsbl elf, bit, standalone elf )into a bin file , and the mode is setted at SD_START , it doesn't work,
If I replaced the fsbl elf file(generated from defualt set) with the zedboard fsbl elf file ,
and now I don't why the fsbl file (generated from the default parogramme) doesn't work
who can help me ,
thanks very much!!
Xilinx First Stage Boot Loader
Release 2015.2tMar 11 2016-15:12:41
Devcfg driver initialized
Silicon Version 3.1
Boot mode is SD
SD: rc= 0
SD: Unable to open file BOOT.BIN: 3
FSBL Status = 0xA009
This Boot Mode Doesn't Support Fallback
In FsblHookFallback function