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)
阅读(592) | 评论(0) | 转发(0) |