aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Goger <klaus.goger@theobroma-systems.com>2018-02-19 08:02:26 +0100
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>2018-03-13 18:12:35 +0100
commit0c8e0b319f38da8a2a6424f742303a5291bc3f94 (patch)
tree67246b9eed1b06af562eae4cc095ca8803a17c20
parentf9326ec318e07841d7cd0c4e3fd0fc4b1eb15605 (diff)
downloadu-boot-0c8e0b319f38da8a2a6424f742303a5291bc3f94.zip
u-boot-0c8e0b319f38da8a2a6424f742303a5291bc3f94.tar.gz
u-boot-0c8e0b319f38da8a2a6424f742303a5291bc3f94.tar.bz2
rockchip: add text_offset to kernel_addr_r on aarch64 platforms
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>
-rw-r--r--include/configs/rk3328_common.h2
-rw-r--r--include/configs/rk3399_common.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/include/configs/rk3328_common.h b/include/configs/rk3328_common.h
index 7018668..517d058 100644
--- a/include/configs/rk3328_common.h
+++ b/include/configs/rk3328_common.h
@@ -42,7 +42,7 @@
"scriptaddr=0x00500000\0" \
"pxefile_addr_r=0x00600000\0" \
"fdt_addr_r=0x01f00000\0" \
- "kernel_addr_r=0x02000000\0" \
+ "kernel_addr_r=0x02080000\0" \
"ramdisk_addr_r=0x04000000\0"
#include <config_distro_bootcmd.h>
diff --git a/include/configs/rk3399_common.h b/include/configs/rk3399_common.h
index d700bf2..8582252 100644
--- a/include/configs/rk3399_common.h
+++ b/include/configs/rk3399_common.h
@@ -53,7 +53,7 @@
"scriptaddr=0x00500000\0" \
"pxefile_addr_r=0x00600000\0" \
"fdt_addr_r=0x01f00000\0" \
- "kernel_addr_r=0x02000000\0" \
+ "kernel_addr_r=0x02080000\0" \
"ramdisk_addr_r=0x04000000\0"
#include <config_distro_bootcmd.h>