U引导CONFIG_SYS_TEXT_BASE与SDRAM之间的关系

时间:2019-03-22 16:14:26

标签: linux-kernel arm ram bootloader u-boot

目前,我对u-boot的理解如下

  1. ROM代码加载SPL
  2. SPL初始化RAM,然后将u-boot加载到 CONFIG_SYS_TEXT_BASE RAM地址
  3. u-boot自行重定位
  4. 启动内核

我检查了我的u-boot配置, CONFIG_SYS_TEXT_BASE 0x80000000,但我很好奇,我的RAM大小只有1G,它仍然可以正常工作。

1G等于0x40000000,小于0x80000000

所以,我想知道我是否对 CONFIG_SYS_TEXT_BASE 有误解,或者我的概念是错误的?

1 个答案:

答案 0 :(得分:1)

  

我检查我的u-boot配置,CONFIG_SYS_TEXT_BASE为0x80000000,但是我很好奇,我的RAM大小只有1G,它仍然可以正常工作。

     

1G等于0x40000000,小于0x80000000

     

所以,我想知道我是否对CONFIG_SYS_TEXT_BASE有误解,或者我的概念是错误的?

您对CONFIG_SYS_TEXT_BASE的理解是正确的。错误的是RAM大小与RAM物理起始地址有关。 RAM开始于0x80000000,结束于0xC0000000(1G之后)。因此0xC0000000-0x80000000 = 0x40000000 = 1G。

如果您的内存为0xD0000000且内存为1G大或类似的值,您将遇到问题。通常人们不会建立这样的系统。