
Thanks for the answers. I apologize that I did not make it clear. My board is a PXA270, it will, of cause, boot from 0x0000. But our customer has a tiny tiny boot loader which just generates some special data and save it in flash. (So they reserved the flash blocks from the 0x0000 to 0x40000.) Then it make PXA270 jump to the 0x40000 and run the real boot loader from there. We used blob and it works fine with kernel 2.4. But I am porting the new Linux 2.6 to the board and I decide to switch to u-boot. My understanding is that after the u-boot get the control, ie, the CPU jump to the first instruct of the u-boot code. u-boot will do some initialization on the CPU's cache to build a simple C environment and then copy part of itself from the flash into the cache and run from there to initial the memory controller etc. The code then will copy all (or the rest) the u-boot from the flash to the memory. My question is, in default, u-boot will copy itself from the 0x0000 (right?). How could I let it know that the u-boot is actually locates in the 0x40000. thanks, Ray
Ray Zhao wrote: My board need keep the first 0x40000 flash for special purpose. Is it easy to modify the u-boot to load itself from 0x40000 instead from the 0x0000? Any help is appreciated.
Ray
If your hardware supports it, probably. Otherwise no. Perhaps you could tell us what your hardware is?
gvb
It's not U-Boot code what determines the boot address, but your processor. So your real question is if you can teach your CPU to start from a different reset vector. But sorry, we cannot answer this here.
Best regards,
Wolfgang Denk