
Hi Simon,
On Tue, Jun 20, 2023 at 4:24 PM Simon Glass sjg@chromium.org wrote:
The "bootargs" environment variable is used to set the command-line arguments to pass to the OS. Use this same mechanism with bootstd as well. When the variable is updated, it is written to the current bootflow. When the current bootflow is updated, the environment variable is updated too.
Signed-off-by: Simon Glass sjg@chromium.org
(no changes since v1)
boot/bootflow.c | 59 ++++++++++++++++++++++++++++++++++++++++++ cmd/bootflow.c | 6 +++++ include/env_callback.h | 6 +++-- 3 files changed, 69 insertions(+), 2 deletions(-)
diff --git a/boot/bootflow.c b/boot/bootflow.c index 487552fa28c0..62b7f45ab278 100644 --- a/boot/bootflow.c +++ b/boot/bootflow.c @@ -12,6 +12,7 @@ #include <bootmeth.h> #include <bootstd.h> #include <dm.h> +#include <env_internal.h> #include <malloc.h> #include <dm/device-internal.h> #include <dm/uclass-internal.h> @@ -552,3 +553,61 @@ int bootflow_iter_check_system(const struct bootflow_iter *iter)
return -ENOTSUPP;
}
+/**
- bootflow_cmdline_set() - Set the command line for a bootflow
- @value: New command-line string
- Returns 0 if OK, -ENOENT if no current bootflow, -ENOMEM if out of memory
- */
+int bootflow_cmdline_set(struct bootflow *bflow, const char *value) +{
char *cmdline = NULL;
if (value) {
cmdline = strdup(value);
if (!cmdline)
return -ENOMEM;
}
free(bflow->cmdline);
v1 comment was not addressed. But I assume bflow->cmdline is zero for the very first time so there will be no issue.
bflow->cmdline = cmdline;
return 0;
+}
Reviewed-by: Bin Meng bmeng.cn@gmail.com
Regards, Bin