I.MX6 eMMC 中启动U-boot存放的首地址

/************************************************************************************
 *                      I.MX6 eMMC 中启动U-boot存放的首地址
 * 声明:
 *     本文是解读《I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking》之后对
 * U-boot存放于eMMC 1K地址有疑惑,希望能找到确切的说法。
 *
 *                                          2015-10-14 晴 深圳 南山平山村 曾剑锋
 ***********************************************************************************/

/**
 * 参考文档:
 *     1. i.MX 6Dual/6Quad Multimedia Applications Processor Reference Manual
 *        Chapter 7 --> System Boot
 *            --> 7.6 Program Image
 *                --> 7.6.1 Image Vector Table and Boot Data
 */

The Image Vector Table (IVT) is the data structure that the ROM reads from the boot device supplying the program image containing the required data components to perform a successful boot.
Image向量表是一个存在芯片内部ROM固化的数据结构,用于读取启动设备中的程序,而这些程序包含一些让系统成功运行起来的数据组件(目前个人暂且认为是U-boot)

The IVT includes the program image entry point, a pointer to Device Configuration Data (DCD) and other pointers used by the ROM during the boot process.The ROM locates the IVT at a fixed address that is determined by the boot device connected to the Chip.  The IVT offset from the base address and initial load region size for each boot device type is defined in the table below. The location of the IVT is the only fixed requirement by the ROM. The remainder or the image memory map is flexible and is determined by the contents of the IVT.
IVT向量表包括程序image入口点、设备配置数据指针(DCD)、以及其他一些启动ROM程序运行过程中用到的指针。ROM程序根据不同的启动设备来决定其IVT表的加载地址。IVT偏移地址(相对首地址:0x00000000)和初始化加载程序大小是由启动设备决定,具体情况参照下面表格,IVT表示ROM程序固定的,其他的内存映射并不固定,由IVT表决定(这还不是由IVT表决定?最后一句没理解)。

       Table 7-24. Image Vector Table Offset and Initial Load Region Size
+----------------------+---------------------------+---------------------------+
| Boot Device Type     | Image Vector Table Offset | Initial Load Region Size  |
+----------------------+---------------------------+---------------------------+
| NOR                  | 4 Kbyte = 0x1000 bytes    | Entire Image Size         |
+----------------------+---------------------------+---------------------------+
| NAND                 | 1 Kbyte = 0x400 bytes     | 4 Kbyte                   |
+----------------------+---------------------------+---------------------------+
| OneNAND              | 256 bytes = 0x100 bytes   | 1 Kbyte                   |
+----------------------+---------------------------+---------------------------+
| SD/MMC/eSD/eMMC/SDXC | 1 Kbyte = 0x400 bytes     | 4 Kbyte                   |
+----------------------+---------------------------+---------------------------+
| I2C/SPI EEPROM       | 1 Kbyte = 0x400 bytes     | 4 Kbyte                   |
+----------------------+---------------------------+---------------------------+
| SATA                 | 1 Kbyte = 0x400 bytes     | 4 Kbyte                   |
+----------------------+---------------------------+---------------------------+

由上表,我们也就是到,当我们选择从eMMC启动的的时候,我们的要将U-boot.bin从1Kbyte的基地址开始读取,这《I.MX6 Manufacturing Tool V2 (MFGTool2) ucl2.xml hacking》中烧入U-boot.bin的位置吻合。

 

时间: 2024-07-30 03:58:48

I.MX6 eMMC 中启动U-boot存放的首地址的相关文章

u boot-fsl i.mx6烧写启动烧写的android系统时出现了初始化错误!

问题描述 fsl i.mx6烧写启动烧写的android系统时出现了初始化错误! U-Boot 2009.08 ( 3??? 05 2013 - 17:20:28) CPU: Freescale i.MX6 family TO1.2 at 792 MHz Temperature: 34 C, calibration data 0x5774e769 mx6q pll1: 792MHz mx6q pll2: 528MHz mx6q pll3: 480MHz mx6q pll8: 50MHz ipg

Win8快速开机揭秘 混合启动(Hybrid Boot)

现代人的工作和生活节奏越来越快,我们在使用电脑设备时同时运行的软件.程序以及应用越来越多,电脑开关机时需要启动和关闭的进程自然也非常多,如 何能让让电脑更快地启动并进入熟悉的工作状态成为用户非常关心的问题.除了更高的硬件配置,高效的系统运行效率和策略自然是重中之重.和之前的 Windows版本相比,Win8系统的开机速度有了飞速的提高,如果搭配SSD固态硬盘Win8几乎可以达到7-8秒时间的"瞬间启动".那么Win8 到底是如何做到的呢?秘密就是"混合启动(Hybrid Bo

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行 提问:我运行的是Ubuntu桌面,但是我希望启动后临时进入命令行.有什么简便的方法可以启动进入终端? Linux桌面自带了一个显示管理器(比如:GDM.KDM.LightDM),它们可以让计算机启动自动进入一个基于GUI的登录环境.然而,如果你要直接启动进入终端怎么办? 比如,你在排查桌面相关的问题或者想要运行一个不需要GUI的应用程序. 注意虽然你可以通过按下Ctrl+Alt+F1到F6临时从桌面GUI切换到虚拟终端.

解决方案-Myeclipse中启动Tomcat失败。

问题描述 Myeclipse中启动Tomcat失败. 我的Myeclipse版本是8.6. Tomcat版本是7.0. 今天在Myeclipse里启动Tomcat也没有报错,走到最下面那个地方就不动了. 按照在网上找的解决办法,将server.xml文件中的端口号改成其他的 8088.8099....还是不行 又变成: 信息: Initializing ProtocolHandler ["http-apr-8088"]这种了. 我单独启tomcat是没有问题的,在Myeclipse里就

在BroadcastReceiver中启动Activity的问题

/** * Demo描述: * 在BroadcastReceiver中启动Activity的问题 * * 如果在BroadcastReceiver的onReceive()方法中如下启动一个Activity * Intent intent=new Intent(context,AnotherActivity.class); * context.startActivity(intent); * 可捕获异常信息: * android.util.AndroidRuntimeException: * Ca

I.MX6 Linux Qt 启动流程跟踪

/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 * 声明: * 1. 源代码来源MY-I.MX6: * 2. 本文仅仅是对启动流程的解析,没有解释启动流程为什么是这样的问题. * * 2015-6-13 深圳 晴 南山平山村 曾剑锋 *********************************************************

ubuntu上在androidstudio中启动emulator闪退的解决方法

阅读目录(Content) 平台 现象 解决 一.查看模拟器的信息 二.命令行运行模拟器 平台 Ubuntu14.04 64 现象 在AndrodStudio中点击模拟器的启动按钮后,模拟器界面弹出后,又立刻闪退. 解决 一.查看模拟器的信息 从上面可以看到模拟器的存放路径以及名称: 路径:/home/pengdonglin/.android/avd/4_WVGA_Nexus_S_API_24.avd 名称:4_WVGA_Nexus_S_API_24 架构:x86_64 二.命令行运行模拟器 在

servlet-Red5-1.0集成到eclipse中启动报错

问题描述 Red5-1.0集成到eclipse中启动报错 2015-7-4 19:09:27 org.apache.catalina.core.ApplicationContext log 严重: StandardWrapper.Throwable org.springframework.beans.factory.access.BootstrapException: Unable to initialize group definition. Group resource name [clas

jbpm4.4整合SSH 在tomcat中启动后控制台一直查询JBPM4_JOB表

问题描述 jbpm4.4整合SSH 在tomcat中启动后控制台一直查询JBPM4_JOB表 jbpm4.4整合SSH 在tomcat中启动后控制台一直查询JBPM4__JOB表,_这是正常现象吗,应该这么解决呢????求解答 解决方案 http://download.csdn.net/detail/freedomky/4300308 是不是有业务需要重复执行. 解决方案二: 不会呀 我只整合好了SSH还没什么都没做呢 知识启动了tomcat 我的applicationContext.xml: