]> git.sur5r.net Git - u-boot/commitdiff
keystone2: add env option to do unitrd dt fixup
authorMurali Karicheri <m-karicheri2@ti.com>
Wed, 9 Jul 2014 20:44:45 +0000 (23:44 +0300)
committerTom Rini <trini@ti.com>
Fri, 25 Jul 2014 20:26:10 +0000 (16:26 -0400)
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

index 3333eb067cd704ced10ccf60ea7bdfebde315ac7..646ecb37e7378bf3ba01eb8b0cf4a79dfeff9163 100644 (file)
@@ -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,