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 <rasmus.villemoes@prevas.dk> Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> Link: https://lore.kernel.org/r/20240911133900.1444083-1-rasmus.villemoes@prevas.dk Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
This commit is contained in:
committed by
Mattijs Korpershoek
parent
3a0b829efc
commit
4b17845529
@@ -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," \
|
||||
|
||||
Reference in New Issue
Block a user