您的位置:首页 > 其它

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: