03-27-2012 03:05 AM
I have a ML605 in hand .I create a project using BSB, and I get system.bit. Then I export the design to SDK .
I can run peripheral_test in the SDK (peripheral_test.elf was gen). But when the board is out off power,the program disappears
Now I have:system.bit 、 download.bit、peripheral_test.elf。 What else should I do if I want to Program the FPAG?(Make it work any time when re-power on)
Tell the details
Solved! Go to Solution.
03-27-2012 06:01 AM
The fpga can be configured at startup from non volatile memory (FLASH i guess on ML605), You should take a look a ML605 user guide, it shall be explain how to program the FLASH.
I think you have microblaze running on the FPGA. But you have to store your software (peripheral_test.elf) in a non volatile memory to (Can be the same memory where to bitstream is stored).
Then you have to used a bootloader program that read the memory, copy the sofware in ram and executes it. I think that EDK can generate such program (i have never used it, allways used my own bootloader).
The bootloder must be small enought to be stored in FPGA's BRAM block.
This is quite a long and difficult process....
03-27-2012 07:27 PM
When I run the elf in the SDK, I find the download.bit is gen by system.bit and bootloop.elf.
but the bootloop.elf is not my program, mine is peripheral_test.elf.
But ,it runs well when i run it target to the board ML605.
The ,I want to program the soft design into the non volatile memory, so i download peripheral_test.elf into FLASH, and I use iPACK to download the download.bit into platform flash XL. But it doesn't work.
I don't how to do. But I know that: if a bootloader wants to load a *.elf(or other program), he must know the The starting address of the *.elf
But in my desgin, I didn't tell the bootload where to boot.
I fill so confused.
03-28-2012 01:19 AM - edited 03-28-2012 01:21 AM
I don't how to do. But I know that: if a bootloader wants to load a *.elf(or other program), he must know the The starting address of the *.elf But in my desgin, I didn't tell the bootload where to boot.
That is why i use my own bootloader. I don't know how Xilinx's bootloader works...
First you have to introduce the bootloader into FPGA BRAM block using the data2Mem command. Then you have to convert peripheral_test.elf into a srec file(beacause bootloader.elf understand only srec format). I don't remember how to do this...
Then you have to program the FLASH with the generated srec file.
You should take a look xapp482.pdf and xapp1106.pdf