]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
zynq_common: Add uEnv.txt boot environment load support
authorNathan Rossi <nathan.rossi@xilinx.com>
Fri, 30 Aug 2013 06:13:15 +0000 (16:13 +1000)
committerMichal Simek <michal.simek@xilinx.com>
Mon, 2 Sep 2013 07:39:14 +0000 (09:39 +0200)
Add support for using a uEnv.txt file for loading and or modifying the
existing boot environment during a Zynq "sdboot". If the environment
fails to load during the "sdboot" continue booting from SD normally.

This uEnv.txt and bootenv/uenv default environment variables are based
on the implementation used in omap3_beagle.h.

Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
include/configs/zynq_common.h

index 762aacae496125778c850ce43582f6ddf9d647cd..a7cadc4b5d12aec66122a0a0f96ad983658d569c 100644 (file)
        "devicetree_image=devicetree.dtb\0"     \
        "bitstream_image=system.bit.bin\0"      \
        "loadbit_addr=0x100000\0"       \
+       "loadbootenv_addr=0x2000000\0" \
        "kernel_size=0x500000\0"        \
        "devicetree_size=0x20000\0"     \
        "ramdisk_size=0x5E0000\0"       \
        "fdt_high=0x20000000\0" \
        "initrd_high=0x20000000\0"      \
+       "bootenv=uEnv.txt\0" \
+       "loadbootenv=fatload mmc 0 ${loadbootenv_addr} ${bootenv}\0" \
+       "importbootenv=echo Importing environment from SD ...; " \
+               "env import -t ${loadbootenv_addr} $filesize\0" \
        "mmc_loadbit_fat=echo Loading bitstream from SD/MMC/eMMC to RAM.. && " \
                "mmcinfo && " \
                "fatload mmc 0 ${loadbit_addr} ${bitstream_image} && " \
                "echo Copying ramdisk... && " \
                "sf read 0x2000000 0x620000 ${ramdisk_size} && " \
                "bootm 0x3000000 0x2000000 0x2A00000\0" \
-       "sdboot=echo Copying Linux from SD to RAM... && " \
-               "mmcinfo && " \
-               "fatload mmc 0 0x3000000 ${kernel_image} && " \
-               "fatload mmc 0 0x2A00000 ${devicetree_image} && " \
-               "fatload mmc 0 0x2000000 ${ramdisk_image} && " \
-               "bootm 0x3000000 0x2000000 0x2A00000\0" \
+       "uenvboot=" \
+               "if run loadbootenv; then " \
+                       "echo Loaded environment from ${bootenv}; " \
+                       "run importbootenv; " \
+               "fi; " \
+               "if test -n $uenvcmd; then " \
+                       "echo Running uenvcmd ...; " \
+                       "run uenvcmd; " \
+               "fi\0" \
+       "sdboot=if mmcinfo; then " \
+                       "run uenvboot; " \
+                       "echo Copying Linux from SD to RAM... && " \
+                       "fatload mmc 0 0x3000000 ${kernel_image} && " \
+                       "fatload mmc 0 0x2A00000 ${devicetree_image} && " \
+                       "fatload mmc 0 0x2000000 ${ramdisk_image} && " \
+                       "bootm 0x3000000 0x2000000 0x2A00000; " \
+               "fi\0" \
        "nandboot=echo Copying Linux from NAND flash to RAM... && " \
                "nand read 0x3000000 0x100000 ${kernel_size} && " \
                "nand read 0x2A00000 0x600000 ${devicetree_size} && " \