[2/6] keystone2: add env option to do unitrd dt fixup

Message ID 1404938689-11379-3-git-send-email-ivan.khoronzhuk@ti.com
State Accepted
Commit 0bedbb81351193f1507ad127b6b26e19a93c2c42
Headers show

Commit Message

Ivan Khoronzhuk July 9, 2014, 8:44 p.m.
From: Murali Karicheri <m-karicheri2@ti.com>

With latest v3.13 kernel, unitrd dt fixup is not needed. However for
older kernel versions such as v3.8/v3.10, it is needed. So to work
with both, add a u-boot env variable that can be set to do dt fixup
for older kernels.

Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
---
 board/ti/k2hk_evm/board.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Patch

diff --git a/board/ti/k2hk_evm/board.c b/board/ti/k2hk_evm/board.c
index 3333eb0..646ecb3 100644
--- a/board/ti/k2hk_evm/board.c
+++ b/board/ti/k2hk_evm/board.c
@@ -157,11 +157,14 @@  void ft_board_setup(void *blob, bd_t *bd)
 	u64 size[2];
 	char name[32], *env, *endp;
 	int lpae, nodeoffset;
+	int unitrd_fixup = 0;
 	u32 ddr3a_size;
 	int nbanks;
 
 	env = getenv("mem_lpae");
 	lpae = env && simple_strtol(env, NULL, 0);
+	env = getenv("uinitrd_fixup");
+	unitrd_fixup = env && simple_strtol(env, NULL, 0);
 
 	ddr3a_size = 0;
 	if (lpae) {
@@ -204,10 +207,11 @@  void ft_board_setup(void *blob, bd_t *bd)
 	fdt_fixup_memory_banks(blob, start, size, nbanks);
 
 	/* Fix up the initrd */
-	if (lpae) {
+	if (lpae && unitrd_fixup) {
 		u64 initrd_start, initrd_end;
 		u32 *prop1, *prop2;
 		int err;
+
 		nodeoffset = fdt_path_offset(blob, "/chosen");
 		if (nodeoffset >= 0) {
 			prop1 = (u32 *)fdt_getprop(blob, nodeoffset,