U-boot load address and kernel's LOADADDR overlap?
Hi all,
The file include/configs/stm32mp1.h in U-boot defines CONFIG_LOADADDR to 0xc2000000. I understand this is the address in RAM where u-boot puts the uImage loaded from persistent storage (SD, NAND, etc).
At the same time, according to [2], the kernel uImage is built with LOADADDR set to 0xc2000040. I understand this is the address where the kernel is relocated.
Wouldn't this be a problem, as the address of the loaded uImage and the address used for relocation seem to overlap?
Also, I think that common convention for ARM is to use <base RAM address> + 0x8000 for relocating the kernel; what is the reason to use 0xc2000040 here?
[1]: https://github.com/STMicroelectronics/u-boot/blob/v2020.01-stm32mp/include/configs/stm32mp1.h
