Relationship between U-boot CONFIG_SYS_TEXT_BASE and SDRAM

0

At present, my understanding of u-boot is as follows

  1. ROM Code load SPL
  2. SPL initialize RAM, and load u-boot to CONFIG_SYS_TEXT_BASE RAM address
  3. u-boot relocates itself
  4. Boot the kernel

I check my u-boot configuration, CONFIG_SYS_TEXT_BASE is 0x80000000, but I am curious, my RAM size is only 1G, and it still can work fine.

1G is equal to 0x40000000, less than 0x80000000

So, I want to know if I have a misunderstanding about CONFIG_SYS_TEXT_BASE or my concept is wrong?

linux-kernel
arm
ram
bootloader
u-boot
asked on Stack Overflow Mar 22, 2019 by Desmond

1 Answer

1

I check my u-boot configuration, CONFIG_SYS_TEXT_BASE is 0x80000000, but I am curious, my RAM size is only 1G, and it still can work fine.

1G is equal to 0x40000000, less than 0x80000000

So, I want to know if I have a misunderstanding about CONFIG_SYS_TEXT_BASE or my concept is wrong?

Your understanding of CONFIG_SYS_TEXT_BASE is correct. What is wrong is that the RAM size is related to the RAM physical start address. The RAM starts at 0x80000000 and ends at 0xC0000000 (1G later). So 0xC0000000-0x80000000 = 0x40000000 = 1G.

You would have an issue if your ram was at 0xD0000000 an was 1G big or something like that. Normally people would not build such a system.

answered on Stack Overflow Mar 22, 2019 by artless noise

User contributions licensed under CC BY-SA 3.0