cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Observer
Observer
3,466 Views
Registered: ‎10-13-2011

How to understand "The FSBL is responsible for placing the MB0 ELF at 0x30000000" in XAPP1093?

Jump to solution

Hi,

 

I want to implement a microblaze in PL on my zynq board. I have established the hardware, programmed both ps0 application and microblaze application, and test them under SDK by referring UG940 and XAPP1093.

 

Trying to create boot.bin for sd booting.

 

if I just creat boot.bin with FSBL.elf+.bit+ps0.elf+mb.elf, only the ps0 application is running.

if I create in the same way but add [load = 0x08000000] for mb.elf, none of applications works, i.e. 0x08000000 is the 

I should have missed something, but got no explict hints after I searched a lot online.

 

Someone mentioned a solution is to initialize the bram of microblaze with its appliction elf if it is small, how to realize such initialization?

In XAPP1093, it says "The FSBL is responsible for placing the MB0 ELF at 0x30000000" with C_BASE_VECTORS = 0x30000000 for microblaze, how does FSBL finish this work? no modification on generated FSBL project is described in XAPP1093.

 

Thank you.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Scholar
Scholar
4,724 Views
Registered: ‎11-09-2013

you can try adding mb0.elf in vivado, then it would be merged into bitstream and loaded at the same time as bitstream

View solution in original post

0 Kudos
3 Replies
Highlighted
Scholar
Scholar
4,725 Views
Registered: ‎11-09-2013

you can try adding mb0.elf in vivado, then it would be merged into bitstream and loaded at the same time as bitstream

View solution in original post

0 Kudos
Highlighted
Scholar
Scholar
3,426 Views
Registered: ‎05-28-2012

Never used this scenario. Some comments based upon the doc and experience with the FSBL.

The ELF files contain the entry point and load addresses. Bootgen will convert the ELF files to a binary image partition and put the entry point / load address into a partition header. The FSBL will use the partition header to determine where to load the binary image and what address to jump to. The FSBL will load all non-bootloader ELFs but jump to the first non-bootloader ELF.

In theory, a boot.bin file of FSBL.elf+.bit+ps0.elf+mb.elf will result in PS.ELF and MB.ELF being loaded and control passed to PS.ELF. MB.ELF may be loaded but the MicroBlaze is held in reset. XAPP109 says that code in PS.ELF will release the reset on MicroBlaze to start it running.

I don't think it is an issue with the FSBL loading the MicroBlaze memory. Maybe be try dumping out a few memory locations from the PS app to see if the MB app got loaded. Stating the obvious, I would guess that something is stopping the MicroBlaze from starting.

The auto-generated FSBL should not need modification. It does need a BSP that points to the correct hardware platform export. I believe that is the only external depedency that FSBL has.

0 Kudos
Highlighted
Observer
Observer
3,385 Views
Registered: ‎10-13-2011
Thanks a lot for so much details about FSBL, I got better understanding. But for simplicity, I just used the "associate elf files" tool as suggested by trenz-al since the mb app is kind of small enough.
Thank you again.
0 Kudos