2

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

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

http://omapedia.org/wiki/Bootloader_Project

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

我的疑问是我的片上 RAM 大小是 64 KB,而 MLO 大小是 116 KB,那么 ROM 代码如何将 MLO 加载到片上 RAM

4

1 回答 1

1

DM8168 似乎有超过 64KiB 的内部 RAM:如DM816x AM389x PSP 04.00.01.13 功能性能指南中所述,它至少有两个内部 RAM 块,参考 OMC0 和 OMC1,大小均为 256KiB。

u-boot可以根据这个文档使用这两个bank:

OCMC0 0x40300000 - 0x4033FFFF OCMC 0 将被 ROM 代码和 U-boot 使用。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。

于 2014-12-04T03:12:33.293 回答