I bought a Microzed board for implementing my projects on it. One of my projects is writing a second stage boot loader (SSBL) for it.
So the flow of booting is:
- Booting of Boot Rom
- Booting of First Stage Boot Loader (FSBL) (the FSBL is the example which is in SDK)
- The FSBL loads the my SSBL (in the SSBL I use LWIP lib for having network connection, the load address is 0xA00000)
- At the end the SSBL loads my application (the load address is 0x100000).
All the codes are loaded from QSPI.
Some additional information about my SSBL, I have used LoadBootImage() and FsblHandoff() functions as they are in FSBL. The difference between my SSBL and FSBL is that in the SSBL some data is received from network and stored in QSPI. Then the loading of my application is done.
The problem is that sometimes my application runs but sometimes it does not run. Sometimes When the application runs the FsblHandoff() function is not invoked. I do not know how it is possible.
Please help me how could I solve the problem? And what is my mistake?