microblaze: Setup distro boot env variables at run time
authorT Karthik Reddy <t.karthik.reddy@xilinx.com>
Tue, 22 Sep 2020 11:18:54 +0000 (05:18 -0600)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 27 Oct 2020 07:01:36 +0000 (08:01 +0100)
Setup all the distro boot related environment variables at
run time. Add BOOT_SCRIPT_OFFSET config to microblaze board
Kconfig.

Signed-off-by: T Karthik Reddy <t.karthik.reddy@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
board/xilinx/microblaze-generic/Kconfig
board/xilinx/microblaze-generic/microblaze-generic.c

index f2fa0f7..7a97211 100644 (file)
@@ -38,4 +38,9 @@ config XILINX_MICROBLAZE0_HW_VER
        string "Core version number"
        default "7.10.d"
 
+config BOOT_SCRIPT_OFFSET
+        hex "Boot script offset"
+        default 0xFC0000
+        help
+           Specifies distro boot script offset in NAND/QSPI flash.
 endif
index 724c339..c1ae8fb 100644 (file)
@@ -63,6 +63,20 @@ int board_late_init(void)
                                lowmem_size));
        status |= env_set_addr("fdt_high", (void *)min_t(ulong, max_size,
                                lowmem_size));
+
+       status |= env_set_hex("scriptaddr", max_size + SZ_2M);
+
+       status |= env_set_hex("pxefile_addr_r", max_size + SZ_1M);
+
+       status |= env_set_hex("kernel_addr_r", gd->ram_base + SZ_32M);
+
+       status |= env_set_hex("fdt_addr_r", gd->ram_base + SZ_32M - SZ_1M);
+
+       status |= env_set_hex("ramdisk_addr_r",
+                              gd->ram_base + SZ_32M + SZ_4M + SZ_2M);
+
+       status |= env_set_hex("script_offset_f", CONFIG_BOOT_SCRIPT_OFFSET);
+
        if (status)
                printf("%s: Saving run time variables FAILED\n", __func__);