What is the difference between a loadaddress core and an entry point?

I am making my own Linux distribution. Development is going well, but it's hard for me to understand the difference between the kernel boot address and the entry point.

In order for the kernel to boot uBoot, I thought that the memory address in which the kernel is loaded will always be the same as if the kernel record (starting point) was when it was executed (started).

But I assume that since these are two separated values ​​that do not always have to be the same, there is a reason why they should be separated.

Can someone explain me the difference between the two?

+5
source share
1 answer

The boot address is the RAM location where you need to copy the binary image of the kernel. The entry point is the location of the copied binary file that uboot must run to boot the kernel.

If the RAM is mapped to 80000000, and for the LOAD ADDRESS kernel, it is 80008000. bootm will unpack the uImage from the copied image location to address 80008000, and then it will call the kernel entry point (maybe the same address: 80008000) to execute the kernel.

+4
source

Source: https://habr.com/ru/post/1266298/


All Articles