From: Murali Karicheri <m-kariche...@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-kariche...@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronz...@ti.com>
---
 board/ti/k2hk_evm/board.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

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,
-- 
1.8.3.2

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to