
Can u-boot run on top of another bootloader? The board I'm working on has a proprietary boot loader. I cannot totally abandon this bootloader because the vendor is unwilling to disclose some critical details of the board. So I'm thinking of putting u-boot on top of it. Is this idea feasible?
reminds me something ;) (see post a few weeks ago...)
The original boot loader is at 0xFFF00000. One thing I need to do is to move the u-boot location to somewhere else. AFAIK u-boot usually locates at 0xFFF00000. What feature of a board decides the address of the first instruction?
I did the following: The manufacturer provided a srec version of its bootloader and a flash utility. Using a debugger, I made sure I could put back the original bootloader if anything went wrong with u-boot. After this I gathered as much information about the board as I could by: - using the debugger and writing down the values of initialized registers (done by the original bootloader) - using some "utilities" provided by the original bootloader Then I decided where to flash u-boot. On a ppc cpu, the processor first jumps at address 0xfffffffc. At this very address there is a branch instruction to a bootloader. For example, with the original bootloader this could be 0xfff00000. You could replace this value and the position of u-boot in flash by using the config.mk file in the board/$BOARD directory. This will place the .text section at the defined position and replace the branch address from the reset vector to the correct one.
hope this helps,
regards
François-Xavier SEINGIER