diff options
-rw-r--r-- | board/xilinx/zynqmp/zynqmp.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index c198a4d9206..8b6c0ea4669 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -346,6 +346,7 @@ int board_late_init(void) u8 bootmode; const char *mode; char *new_targets; + char *env_targets; int ret; if (!(gd->flags & GD_FLG_ENV_DEFAULT)) { @@ -418,10 +419,16 @@ int board_late_init(void) * One terminating char + one byte for space between mode * and default boot_targets */ - new_targets = calloc(1, strlen(mode) + - strlen(env_get("boot_targets")) + 2); + env_targets = env_get("boot_targets"); + if (env_targets) { + new_targets = calloc(1, strlen(mode) + + strlen(env_targets) + 2); + sprintf(new_targets, "%s %s", mode, env_targets); + } else { + new_targets = calloc(1, strlen(mode) + 2); + sprintf(new_targets, "%s", mode); + } - sprintf(new_targets, "%s %s", mode, env_get("boot_targets")); env_set("boot_targets", new_targets); return 0; |