MLO(最小引导加载程序)如何工作?

时间:2014-11-19 09:10:00

标签: linux-kernel embedded-linux bootloader texas-instruments dm814x

我试图了解如何将MLO加载到SOC的片上并执行最小配置。我正在使用TI DM8168 soc。

我已经通过以下链接了解MLO或x-loader:

http://omappedia.org/wiki/Bootloader_Project

我知道ROM代码将MLO(x-loader)加载到SoC的片上RAM中,它执行最小配置,最后加载uboot(通用引导加载程序),最终启动linux内核。

我怀疑的是我的片上RAM大小为64 KB,MLO大小为116 KB,然后ROM代码如何将MLO加载到片上RAM

1 个答案:

答案 0 :(得分:1)

似乎DM8168具有超过64KiB的内部RAM:如中所述 DM816x AM389x PSP 04.00.01.13 Feature Performance Guide,它至少还有两个内部RAM块,标记为OMC0和OMC1,两者的大小都是256KiB。

根据这份文件,u-boot可以使用这两个银行:

OCMC0 0x40300000 - 0x4033FFFF ROM代码和U-boot将使用OCMC 0。 Linux内核启动后,OCMC0是免费的,内核可以使用它。如果使用CCS加载,则不应使用OCMC0加载u-boot。

OCMC1 0x40400000 - 0x4043FFFF OCMC 1将由ROM代码和U-boot使用。 Linux内核启动后,OCMC0是免费的,内核可以使用它。

来自u-boot-omap3 / board / ti / ti8168 / config.mk,似乎u-boot正在使用OMC1

TI_LOAD_ADDR = 0x40400000

这可以解释为什么您的116KiB u-boot映像可以放入DM8168内部RAM中。