From 25d4eb8091f4c410987c139161d3621e0fb1fbca Mon Sep 17 00:00:00 2001
From: Masahiro Yamada <yamada.masahiro@socionext.com>
Date: Sat, 9 Jan 2016 02:12:27 +0900
Subject: [PATCH] ARM: uniphier: add bootm_low environment

The load address of the kernel can be changed via "kernel_addr_r"
environment.  The device tree and the initramdisk should be relocated
according to the kernel location.

The "bootm_low" should be calculated by masking the lower bits
(TEXT_OFFSET part) of the "kernel_addr_r" environment value.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---
 include/configs/uniphier.h | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/include/configs/uniphier.h b/include/configs/uniphier.h
index c7d86286b0..599b26959e 100644
--- a/include/configs/uniphier.h
+++ b/include/configs/uniphier.h
@@ -201,15 +201,18 @@
 	"ramdisk_addr_r=0x84a00000\0" \
 	"ramdisk_size=0x00600000\0" \
 	"ramdisk_file=rootfs.cpio.uboot\0" \
-	"norboot=setexpr kernel_addr $nor_base + $kernel_addr &&" \
+	"norboot=setexpr bootm_low $kernel_addr_r '&' fe000000 &&" \
+		"setexpr kernel_addr $nor_base + $kernel_addr &&" \
 		"setexpr ramdisk_addr $nor_base + $ramdisk_addr &&" \
 		"setexpr fdt_addr $nor_base + $fdt_addr &&" \
 		"bootz $kernel_addr $ramdisk_addr $fdt_addr\0" \
-	"nandboot=nand read $kernel_addr_r $kernel_addr $kernel_size &&" \
+	"nandboot=setexpr bootm_low $kernel_addr_r '&' fe000000 &&" \
+		"nand read $kernel_addr_r $kernel_addr $kernel_size &&" \
 		"nand read $ramdisk_addr_r $ramdisk_addr $ramdisk_size &&" \
 		"nand read $fdt_addr_r $fdt_addr $fdt_size &&" \
 		"bootz $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0" \
-	"tftpboot=tftpboot $kernel_addr_r $bootfile &&" \
+	"tftpboot=setexpr bootm_low $kernel_addr_r '&' fe000000 &&" \
+		"tftpboot $kernel_addr_r $bootfile &&" \
 		"tftpboot $ramdisk_addr_r $ramdisk_file &&" \
 		"tftpboot $fdt_addr_r $fdt_file &&" \
 		"bootz $kernel_addr_r $ramdisk_addr_r $fdt_addr_r\0"
-- 
2.39.5