Dear Graeme Russ, In message <aanlktiknkfjuq6dmw3ey=0qiekim716e=1+3np3jg...@mail.gmail.com> you wrote: > > > That means you need to build all of U-Boot that way, because > > significant parts of the code already run before relocation > > (including all clocks and timers setup, console setup, printf and all > > routines these pull in). > > Have a look at x86 - Relocation is performed at the first possible moment > > This made full relocation for x86 was relatively trivial :)
Well, U-Boot is not only a fancy boot loader, but also a hardware bringup tool. It was designed to make it as easy for the software guy to bring up code on new hardware. That means, that one of the very first things we always try to do is get a (usually serial) console port working, so we can use printf() to get some helpful information out. This happens especially before doing anythign that is known to be complicated and error prone, like especially the initialization of both the memory controller and the RAM system on the board. I am aware that there are systems out there which perform the RAM initialization either in hardware or for example table-driven by some built-in ROM boot loader code. Here RAM initalization is obviously not such an issue, but nevertheless there is a LOT of code running before we relocate the code to RAM. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de "The glory of creation is in its infinite diversity." "And in the way our differences combine to create meaning and beauty." -- Dr. Miranda Jones and Spock, "Is There in Truth No Beauty?", stardate 5630.8 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot