
Hi Guys,
I have been chasing my tail on this one. But I just want to make sure others don't have to go through this process.
Below is a solution that works for me.
1. When using the ml507_flash design you need to map your onboard NOR FLASH at 0xFE000000 to 0xFFFFFFFF. More precisely you need to have the end of your FLASH memory butting up against 0xFFFFFFFF. This is because the initial boot code needs to reside in the last 4K of memory from address 0xFFFFFFFC.
2. Because of point 1, you cannot have your EDK application program (E.g. bootloop or your custom bootloader program) running when U-Boot is installed and boot from FLASH. This is because the EDK application program also needs to install its boot.o boot code in the same address space. There are ways at which you can do this but you will need to do a bit of linking magic and break up your application into separate memory address range making sure they will work for both your application and u-boot.
3. Personally, I find the easiest way to have both your EDK application program and U-Boot cohabit on your embedded system is to:
a) Have a BRAM block butting up to 0xffffffff
b) Install your EDK application code in the BRAM
c) Build a RAM based U-Boot image
b) Install your U-Boot image in FLASH
e) Use your EDK application to load the U-Boot image from FLASH to RAM
f) Branch to it to boot strap your U-Boot kernel.
There should be plenty of other alternatives to do this.
Cheers,
Benny