summaryrefslogtreecommitdiff
path: root/include/env_callback.h
diff options
context:
space:
mode:
authorRasmus Villemoes <[email protected]>2024-09-11 15:39:00 +0200
committerMattijs Korpershoek <[email protected]>2024-10-01 10:55:09 +0200
commit4b17845529f5f0c94fe68c2daba1948d0ee41bb2 (patch)
tree65899b63101bc1ede3b4ca96e2d53a23e880caaf /include/env_callback.h
parent3a0b829efc35227b1079a444f00e0729502197ad (diff)
dfu: define a callback function for the dfu_alt_info environment variable
I'm trying to use dfu-util for bootstrapping an stm32mp board. It mostly works fine, but something goes horribly wrong as soon as I make use of the ability to run arbitrary u-boot shell commands. The shell commands themselves work fine, but the heuristic "dfu_alt_info may have changed, we have to reinit" seems to cause the board and/or my host machine to go into some bad state, and further dfu-util commands fail. U-Boot already has a mechanism whereby C code can be told about changes to specific environment variables. So instead of always doing re-init, add a hook to the dfu_alt_info variable so that we only do set dfu_reinit_needed if the commands actually did modify that variable. Signed-off-by: Rasmus Villemoes <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
Diffstat (limited to 'include/env_callback.h')
-rw-r--r--include/env_callback.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/env_callback.h b/include/env_callback.h
index 8e500aaaf80..66cc8309e71 100644
--- a/include/env_callback.h
+++ b/include/env_callback.h
@@ -69,6 +69,12 @@
#define BOOTSTD_CALLBACK
#endif
+#ifdef CONFIG_DFU
+#define DFU_CALLBACK "dfu_alt_info:dfu_alt_info,"
+#else
+#define DFU_CALLBACK
+#endif
+
/*
* This list of callback bindings is static, but may be overridden by defining
* a new association in the ".callbacks" environment variable.
@@ -79,6 +85,7 @@
NET_CALLBACKS \
NET6_CALLBACKS \
BOOTSTD_CALLBACK \
+ DFU_CALLBACK \
"loadaddr:loadaddr," \
SILENT_CALLBACK \
"stdin:console,stdout:console,stderr:console," \