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