转自:https://coherentmusings.wordpress.com/2012/09/05/what-is-mlo-file/

I have had the Beagle-xM for a while now. If you have worked on it, you must have noticed the MLO file, which is required to be present in the boot partition of the Micro SD card. The file is necessary for booting the system. So ever wondered, what is this MLO file? No? What are you doing with the Beagle-xM anyways? Yes? Well, then read on.

1. What is RBL (ROM bootloader)

As far as i know, all TI SOC’s like DM368 and DM3730 (on which i have worked) have a ROM bootloader(onchip). On sytem start up or reset, the ROM bootloader (RBL) starts running. The job of this RBL, is to do some very bare minimum initialisation and then find and boot from a device such as MMC card or flash. The RBL has got the capability to boot from a variety of devices like NOR flash, NAND flash, MMC, USB or UART. To know everything in detail, read the 26th chapter of the DM3730 Technical Reference Manual having the TI document number SPRUGN4N.

2. How to know which device to boot from

Now, how does the chip know which device to boot from you ask?. The chip has got a set of pins, sys_boot[4:0] pins, whose state decides what memory or peripheral to boot from. Also, there is a predefined booting order in the case of both memory booting or peripheral booting. For example, let’s say the state of sys_boot[4:0] pins is 0b01110. Then, the booting order will be XIPwait, DOC, USB, UART3 and finally MMC1. XIPwait is Execute in Place memory with wait monitoring and DOC is DiskOnChip memory. You can find this information on Page 3549 of the DM3730 TRM.

3. What's the procedure of reading MLO

In the case of Beagle-xM, the state of the sys_boot pins cause it to boot from the MMC card at the start. As a result, on power on, the ROM will initialise the SD/MMC device, detect a card and look for a boot image. The ROM bootloader is capable of reading from the card with a filesystem. It will search for a file named MLO which should be located on the boot partition, on a partition of type FAT16/32. So, this explains the name MLO.

4. What's the procedure of MLO to kernel & rootfs

Now, let’s talk about the flow of control. The sys_boot pins specify where the first external boot loader MLO can be found. After the MLO is located and executed, it passes the control to the second external boot loader viz. uboot. Have you seen the uboot.bin file in the boot partition of the micro SD card? No? Jeez, have you been sleeping? U-boot is the application which passes control to the Linux system.  The main goal of u-boot is to retrieve the Linux kernel and provide the kernel with information about the location of the Linux filesystem.  U-boot can be configured to retrieve the kernel from a variety of options like NFS or flash. U-boot then boots the Linux kernel.  The Linux kernel mounts the Linux root filesystem.

In case, you are interested further in knowing the boot sequence, below is a link, which describes the boot sequence. http://blog.techveda.org/ . It uses AT91RM9200 as the reference, but, still should be very informative enough. Also, you can use this link http://lxr.free-electrons.com/ to browse the source.

--------------------------------------------------------------------------------

Hope you found this “What is MLO file?” post informative.

Addendum: Mikkel Nielsen shared quite a few important links and had this to quote. You can also find this in the comments.

Think it could also be Memory LOader, as it is a file containing (apart from metadata) binary code that is loaded directly into internel SoC memory.

TI also refers to it as X-loader; http://processors.wiki.ti.com/index.php/Boot_Sequence.

This suggests it is short for Memory LOcator; https://groups.google.com/forum/#!msg/beagleboard/M-ew_WGjE_A/W2OerOFV3yYJ

Some history about why it is like that here; http://lists.denx.de/pipermail/u-boot/2013-December/168481.html.

[uboot]What is MLO file?的更多相关文章

  1. [uboot]MLO和uboot-spl.bin, uboot.img和uboot.bin

    前段时间使用TI的am4378芯片,发现系统在SD卡启动的时候,启动文件使用的是MLO和uboot.img:而Norflash和eMMC启动的时候使用的是 uboot-spl.bin和uboot.bi ...

  2. [uboot]uboot如何引导系统

    转自:http://bbs.elecfans.com/jishu_455028_1_1.html 如6410的bootcmd和bootargs默认存在于uboot1.1.6/include/confi ...

  3. 在U-Boot中添加自定义命令以实现自动下载程序【转】

    本文转载自:https://gaomf.cn/2016/06/26/%E5%9C%A8U-Boot%E4%B8%AD%E6%B7%BB%E5%8A%A0%E8%87%AA%E5%AE%9A%E4%B9 ...

  4. Android eMMC Booting

    Android eMMC Booting Contents [hide] 1 eMMC binaries 1.1 Creating the GPT table 1.2 Modifying .IMG F ...

  5. Android gingerbread eMMC booting

    Android gingerbread eMMC booting This page is currently under construction. The content of this page ...

  6. ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking

    #!/bin/bash # # ti processor sdk linux am335x evm /bin/create-sdcard.sh hacking # 说明: # 本文主要对TI的sdk中 ...

  7. TI芯片android环境搭建和编译

    1>. Reading package lists... Done Building dependency tree        Reading state information... Do ...

  8. 【图像处理】【SEED-VPM】5.uImage的烧写 & NFS烧写文件系统

    基于 TFTP 烧写 uImage 当用户对 SEED-VPM6467 下的内核驱动源码进行调整或者添加新的设备驱动后,需要对内核进行重新编译配置,编译生成内核镜像后,可以通过 tftp 下载到 SE ...

  9. sam9x5 sam-ba

     调试参考 http://www.docin.com/p-872951702.html AT91SAM9x5 EK Board SoC Features Kit Information Kit Ove ...

随机推荐

  1. 微信小程序:bindtap方法传参

    1.wxml <view bindtap="pay_again" data-name="{{orderList.jid}}" data-fee=" ...

  2. 由select/epoll返回的非阻塞connect还会是EINPROGRESS状态吗?

    一般情况下,我们像下面代码中所示的这样使用非阻塞connect: #include <stdio.h> #include <stdlib.h> #include <str ...

  3. java多线程(四)之同步机制

    1.同步的前提 多个线程 多个线程使用的是同一个锁 2.同步的好处 同步的出现解决了多线程的安全问题 3.同步的弊端 当线程较多时, 因为每个线程都会去判断同步上的锁, 这样是很耗费资源的, 会降低程 ...

  4. 史上最全的iOS面试题及答案,且看且珍藏,错过就没有喽!

    1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答:Object-c的类不可以多重继承;可以实现多个接口,通过实现多 ...

  5. 【LeetCode】41. First Missing Positive (3 solutions)

    First Missing Positive Given an unsorted integer array, find the first missing positive integer. For ...

  6. Zookeeper监控工具

    Zookeeper的常用开源监控工具可以参考:http://zqhxuyuan.github.io/2016/12/31/BigData-Monitor-Tool

  7. TDR,阻抗匹配,反射,源端匹配,终端匹配

    什么是阻抗 阻抗分三种,电阻.电容.电感,三者阻抗表达式如下: 符号 单位 表达式 备注 电阻 R 欧姆 Ω 电压电流相位相同 电容 C 法拉 F 电压相位落后电流90度 电感 L 亨利 H 电压相位 ...

  8. ArraySegmentSample

    class Program { static void Main() { , , , , , }; , , , , , , }; ] { , ), , ) }; var sum = SumOfSegm ...

  9. Ruby gem 更换国内源

    gem sources --add http://gems.ruby-china.org/ --remove https://rubygems.org/

  10. 在Spring中注入Java集合

    集合注入重要是对数组.List.Set.map的注入,具体注入方法请参照一下代码(重点是applicationContext.xml中对这几个集合注入的方式): 1.在工程中新建一个Departmen ...