AM335x SPL(一)
2016-03-30 11:26
375 查看
AM335x bootloader :
1st stage:RBL (ROM)
2st stage:SPL (内部RAM:0x402f0400)
3st stage:U-Boot (一般外部DDR)
SPL是bootloader的第二部分,由RBL引导运行,主要目的就是引导U-Boot运行。
SPL也叫MLO,一般存放在SD或者Nand中。其中,在Nand中要求存放在从第一个block开始的4个block中,因为RBL会从第一个block开始查找SPL,如果第一个失败后,会从第二个block开始继续查找,直到第四个block查找完毕,因此,SPL必须放在Nand从第一个block开始的4个block中,SPL在Nand中的偏移地址分别为0x0, 0x20000, 0x40000 和 0x60000。U-Boot从第五个block开始存放,即0x80000。假设Nand的block size为128K,则分布图如下:
+------------+-->0x00000000->
SPL start (SPL copy
on 1st block)
| |
| |-->0x0001FFFF->
SPL end
| |-->0x00020000->
SPL.backup1 start
(SPL copy on 2nd block)
|
|
|
|-->0x0003FFFF-> SPL.backup1
end
|
|-->0x00040000-> SPL.backup2
start (SPL copy on 3rd block)
|
|
|
|-->0x0005FFFF-> SPL.backup2
end
|
|-->0x00060000-> SPL.backup3
start (SPL copy on 4th block)
|
|
|
|-->0x0007FFFF-> SPL.backup3
end
|
|-->0x00080000-> U-Boot
start
|
|
|
|-->0x002BFFFF-> U-Boot
end
|
|-->0x00260000-> ENV start
|
|
|
|
|
|-->0x0027FFFF-> ENV
end
|
|-->0x00280000-> Linux Kernel start
|
|
|
|
|
|
| |
|
|-->0x0077FFFF-> Linux Kernel
end
|
|-->0x00780000-> File system start
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+------------+-->0x10000000->
NAND end (Free
end)
1st stage:RBL (ROM)
2st stage:SPL (内部RAM:0x402f0400)
3st stage:U-Boot (一般外部DDR)
SPL是bootloader的第二部分,由RBL引导运行,主要目的就是引导U-Boot运行。
SPL也叫MLO,一般存放在SD或者Nand中。其中,在Nand中要求存放在从第一个block开始的4个block中,因为RBL会从第一个block开始查找SPL,如果第一个失败后,会从第二个block开始继续查找,直到第四个block查找完毕,因此,SPL必须放在Nand从第一个block开始的4个block中,SPL在Nand中的偏移地址分别为0x0, 0x20000, 0x40000 和 0x60000。U-Boot从第五个block开始存放,即0x80000。假设Nand的block size为128K,则分布图如下:
+------------+-->0x00000000->
SPL start (SPL copy
on 1st block)
| |
| |-->0x0001FFFF->
SPL end
| |-->0x00020000->
SPL.backup1 start
(SPL copy on 2nd block)
|
|
|
|-->0x0003FFFF-> SPL.backup1
end
|
|-->0x00040000-> SPL.backup2
start (SPL copy on 3rd block)
|
|
|
|-->0x0005FFFF-> SPL.backup2
end
|
|-->0x00060000-> SPL.backup3
start (SPL copy on 4th block)
|
|
|
|-->0x0007FFFF-> SPL.backup3
end
|
|-->0x00080000-> U-Boot
start
|
|
|
|-->0x002BFFFF-> U-Boot
end
|
|-->0x00260000-> ENV start
|
|
|
|
|
|-->0x0027FFFF-> ENV
end
|
|-->0x00280000-> Linux Kernel start
|
|
|
|
|
|
| |
|
|-->0x0077FFFF-> Linux Kernel
end
|
|-->0x00780000-> File system start
| |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+------------+-->0x10000000->
NAND end (Free
end)
相关文章推荐
- 免费的Flex拓扑图框架iolive
- Velocity语法
- 购物商城shopping连载(6)
- IOS 代理模式 DELEGATE
- oracle锁
- linux文件类型2
- ThreadLocal理解
- 去掉标题栏
- 表单GET 和 POST提交方式
- Erlang--节点
- 103 保序回归 isotonic regression
- 283. Move Zeroes
- Java并发概念汇总
- 1.c++笔记---有趣的bool型
- 【BZOJ 3050】【USACO2013 Jan】Seating 线段树
- 虚拟机ubunt14.04调整分辨率
- 在tomcat中部署测试Servlet(不用eclipse或MyEclipse的tomcat插件)
- Linux 远程复制
- Java的四种引用类型分析
- iframe用target指定跳转时,即使加了target="_self",还是会打开一个新的页面