Paul,

On Thu, Jun 30, 2011 at 12:06 AM, Paul Sokolovsky <paul.sokolovsky@linaro.org> wrote:
Btw I don't yet fully understand Panda boot architecture. This X-Loader
appear to come from SD card. But what boots it then? How that piece is
called, where it comes from, how it should be upgraded, and is that
ever needed? I found this:
https://gforge.ti.com/gf/project/omapzoom/wiki/?pagename=BootingAndFlashing
but it's still a bit confusing (like, doesn't name that first loader,
and from OS perspective, it appears to be 3-stage boot).

on panda, you have an OMAP4430 processor. on power up, the very first s/w which is executed is the OMAP ROM code. this piece of code sits in the OMAP4 ROM. it cannot be changed by definition. the device initialization is described at lenght in the OMAP4 TRM that you can find here: http://pandaboard.org/node/224/#manual, chapter "Device init by ROM Code"

The TI ROM code offers support for multiple boot options. One can boot from SD which is the most common case with panda, but you can boot from USB, eMMC, serial, ... the boot sequence order is defined through the SYSBOOT pins. if i remember correctly, the default boot sequence on panda, is USB then SD. This can be changed with resistors as explained here: http://www.google.com/url?sa=t&source=web&cd=1&ved=0CBUQFjAA&url=http%3A%2F%2Fpandaboard.org%2Fsites%2Fdefault%2Ffiles%2Fboard_reference%2FA1%2FPanda_Board_Spec_DOC-21010_REV0_6.pdf&rct=j&q=pandaboard%20sysboot&ei=WLQLTt3rGYqGhQew-dWFBA&usg=AFQjCNEwl1961HDnAnUoetiJ-Pu_gprjrA&sig2=KTpumCy5hhr46gegERpfMQ&cad=rja

the ROM code is unable to access DDR since it doesn't know anything about the DDR settings. the main goal of the ROM code is to locate the 'first stage' bootloader which it will copy into internal memory, in our case this is x-loader (aka MLO). The sole purpose of xloader (in theory) is to initialize the DDR, locate the 2nd stage bootloader (uboot in our case) , copy uboot into DDR and start it. we need xloader because uboot is too big to fit into internal RAM, unfortunately.

lately there has been some community effort around a tool that would let you boot your panda over USB from your desktop (without the SD), see https://github.com/swetland/omap4boot or http://groups.google.com/group/pandaboard/browse_thread/thread/f73e5e6c7127baab?pli=1

hope this clarifies.