diff --git a/ports/stm32/mboot/fsload.c b/ports/stm32/mboot/fsload.c index 231b07afa5..f3ea57c89f 100644 --- a/ports/stm32/mboot/fsload.c +++ b/ports/stm32/mboot/fsload.c @@ -198,7 +198,7 @@ static int fsload_program_file(bool write_to_flash) { static int fsload_validate_and_program_file(void *stream, const stream_methods_t *meth, const char *fname) { // First pass verifies the file, second pass programs it for (unsigned int pass = 0; pass <= 1; ++pass) { - led_state_all(pass == 0 ? 2 : 4); + mboot_state_change(MBOOT_STATE_FSLOAD_PASS_START, pass); int res = meth->open(stream, fname); if (res == 0) { res = input_stream_init(stream, meth->read); diff --git a/ports/stm32/mboot/mboot.h b/ports/stm32/mboot/mboot.h index db90e07a0e..d8531f19ba 100644 --- a/ports/stm32/mboot/mboot.h +++ b/ports/stm32/mboot/mboot.h @@ -64,6 +64,7 @@ typedef enum { MBOOT_STATE_DFU_END, // arg: unused MBOOT_STATE_FSLOAD_START, // arg: unused MBOOT_STATE_FSLOAD_END, // arg: result of fsload operation + MBOOT_STATE_FSLOAD_PASS_START, // arg: pass number, 0 or 1 (verify and write respectively) MBOOT_STATE_FSLOAD_PROGRESS, // arg: total bytes processed so far, high bit set when doing write pass MBOOT_STATE_ERASE_START, // arg: address of erase MBOOT_STATE_ERASE_END, // arg: result of erase diff --git a/ports/stm32/mboot/ui.c b/ports/stm32/mboot/ui.c index 840803829e..aa62d31a0a 100644 --- a/ports/stm32/mboot/ui.c +++ b/ports/stm32/mboot/ui.c @@ -228,6 +228,10 @@ void mboot_state_change(mboot_state_t state, uint32_t arg) { } break; + case MBOOT_STATE_FSLOAD_PASS_START: + led_state_all(arg == 0 ? 2 : 4); + break; + case MBOOT_STATE_FSLOAD_PROGRESS: break;