diff options
Diffstat (limited to 'common/command.c')
-rw-r--r-- | common/command.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/common/command.c b/common/command.c index 41c91c6d8c..7a86bd76a4 100644 --- a/common/command.c +++ b/common/command.c @@ -13,7 +13,9 @@ #include <command.h> #include <console.h> #include <env.h> +#include <image.h> #include <log.h> +#include <mapmem.h> #include <asm/global_data.h> #include <linux/ctype.h> @@ -654,3 +656,20 @@ int cmd_process_error(struct cmd_tbl *cmdtp, int err) return CMD_RET_SUCCESS; } + +int cmd_source_script(ulong addr, const char *fit_uname, const char *confname) +{ + char *data; + void *buf; + uint len; + int ret; + + buf = map_sysmem(addr, 0); + ret = image_locate_script(buf, 0, fit_uname, confname, &data, &len); + unmap_sysmem(buf); + if (ret) + return CMD_RET_FAILURE; + + debug("** Script length: %d\n", len); + return run_command_list(data, len, 0); +} |