Understanding MLO and X-loader

I also want to know this! every time I need copy MLO at first, and the
second coping file is u-boot.bin ,and the uImage at last,
why I should copy these files in that sequence? and what is the MLO used
for? as far as i know, the u-boot can boot the board enough.

MLO fits entirely on on-chip memory and configures the external memory
for use. u-boot requires more memory than what is on-chip. If you
are using the on-flash u-boot, then all you really need on the SD card
is a kernel and a root file system.

hi. do you means that either MLO or u-boot.bin can boot up the board?


To be 100% clear: ROM code loads MLO from MMC card in case of MMC booting.

The MLO binary then loads u-boot.bin, which then again loads the kernel image.

As such, it should be possible to combine the MLO and u-boot.bin binaries into one binary called MLO in case you can make it fit in the OMAP35xx internal memory. The image needs to fit into internal memory only, since the ROM code doesn’t assume anything about external memory, and thereby can’t use it…

I hope this answered your question?

But again, as Jason wrote: If you are using the on-flash u-boot you really only need to copy the kernel image and rootfs to the SD card…

Best regards


Here is a generic tutorial on the Linux boot process. While not
specific to BeagleBoard, it does cover the conceptual layers nicely.


The "Stage 1 Boot Loader" for BeagleBoard is MLO. Its purpose is load
the Stage 2 Boot Loader.

The "Stage 2 Boot Loader" for BeagleBoard is u-boot. Its purpose is
to load the Linux kernel.

Hope this helps.

1 Like