
On 19 Feb 2018, at 08:02, Klaus Goger klaus.goger@theobroma-systems.com wrote:
Booting a aarch64 Linux kernel requires the image to be placed text_offset bytes from a 2MB aligned address. See https://www.kernel.org/doc/Documentation/arm64/booting.txt
booti_setup() takes care about this alignment and will relocate the image if not properly aligned with memmove(). This can require up to double the size of the loaded image and therefore accidentally overwrite content placed there (i.e ramdisk_addr_r) for large kernel images.
By adding text_offset to the default kernel_addr_r we can prevent that from happening for kernels larger 18MB and also save a few cycles.
We can assume a text_offset of 0x80000 for most cases, all others will be handled by booti_setup() anyway.
Signed-off-by: Klaus Goger klaus.goger@theobroma-systems.com
Acked-by: Philipp Tomsich philipp.tomsich@theobroma-systems.com Reviewed-by: Philipp Tomsich philipp.tomsich@theobroma-systems.com