In AM335x the ROM code serves as the bootstrap loader, sometimes referred to as the Initial Program Loader (IPL)
or the Primary Program Loader (PPL). The booting is completed in two consecutive stages by U-Boot [1] binaries.
The binary for the 1st U-Boot stage is referred to as the Secondary Program Loader (SPL) or the MLO. The binary
for the 2nd U-Boot stage is simply referred to as U-Boot. SPL is a non-interactive loader and is a specially built
version of U-Boot. It is built concurrently when building U-Boot.

This section gives an overview of the two stage U-Boot approach adopted for TI814X and TI813X.
The size of the internal RAM in TI814X is 128KB out of which 18KB at the end is used by the ROM code. This
placed a limit of 110KB on the size of the U-Boot binary which the ROM code can transfer to the internal RAM.
U-Boot also requires some space for the stack, heap and global data during executing and this region currently needs
to be setup before the TEXT_BASE of U-Boot.
Since it is not possible to squeeze in all the functionality that is normally expected from U-Boot in < 110KB (after
setting aside some space for stack, heap etc) a two stage approach has been adopted.
The first stage (or rather the 2nd stage if the ROM code is also considered) is built using a minimal configuration and
has an embedded ENV. The purpose of this stage is to initialize the necessary peripherals, especially DDR, so that a
full fledged U-Boot can be transferred to DDR from NAND/SPI/SD/UART/NOR and then control passed to it.
The boot command that the minimal U-Boot uses for fetching the larger U-Boot will not change for a particular boot
mode as long as the same layout is used and is hence fixed. If any other behavior required then the minimal U-Boot
stage can be interrupted and a different command issued.
The minimal U-Boot binary also has a hole at the top which is used as the space for stack, heap and global data.
After some analysis the size of the hole has currently been set as 12KB.

Note
To avoid over-writing U-Boot when it is executing make sure that an address greater than 0x80800000 is used when
downloading the kernel and/or filesystem images

参考:

AM335x U-Boot User's Guide

TI81XX PSP UBOOT User Guide

最新文章

  1. Android中Fragment和ViewPager那点事儿(仿微信APP)
  2. Web 项目中分享到微博、QQ空间等分享功能
  3. IE安全分析
  4. MySQL中无GROUP BY直接HAVING的问题【转】
  5. CSS的一些小事
  6. 项目源码--Android视频MV类网站客户端
  7. linux常识
  8. js方法重载
  9. asp.net mvc4 signalR后台自推送
  10. build.gradle中引入jar
  11. 阅读express的感悟
  12. postman模拟HttpPost请求的方法
  13. 异常-----Template user.ftl not found
  14. 首次使用AndroidStudio创建hello world遇到的坑!(Mac系统下)
  15. JavaScript快速入门-ECMAScript函数
  16. 常用的 Linux iptables 规则
  17. c# 利用t4模板,自动生成Model类
  18. 曾经我是一个只会excel的数据分析师,直到我遇到了……
  19. HDU3681 Prison Break
  20. recyclerView中的方法

热门文章

  1. 代码怎样重构&lt;1&gt;
  2. django+vue+nginx生产环境部署配置
  3. java 基于tcp客户端服务端发送接收数据
  4. poj 1061(线性同余)
  5. 分享Kali Linux 2017年第17周镜像文件
  6. GRDB自定义的纯函数
  7. httperf+autobench测试web应用
  8. 某考试 T1 fair (18.5.1版)
  9. jcraft--SFTP demo
  10. PostgreSQL 10.0 preview 功能增强