stm32/boards/LEGO_HUB_NO6: Write key after writing elements.
In case there is a power failure after during this operation, the key must be the last thing that is written, to indicate valid data. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
parent
b1ac266bb5
commit
b896fa9b1f
@ -198,9 +198,9 @@ void board_mboot_state_change(int state, uint32_t arg) {
|
|||||||
// The FS-load update is about to start. Program the update key and FS-load elements
|
// The FS-load update is about to start. Program the update key and FS-load elements
|
||||||
// into the flash so they can be retrieved if there is a power failure during the update.
|
// into the flash so they can be retrieved if there is a power failure during the update.
|
||||||
mp_spiflash_erase_block(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR);
|
mp_spiflash_erase_block(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR);
|
||||||
|
mp_spiflash_write(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR + 4, ELEM_DATA_SIZE, ELEM_DATA_START);
|
||||||
uint32_t key = SPIFLASH_UPDATE_KEY_VALUE;
|
uint32_t key = SPIFLASH_UPDATE_KEY_VALUE;
|
||||||
mp_spiflash_write(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR, 4, (const uint8_t *)&key);
|
mp_spiflash_write(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR, 4, (const uint8_t *)&key);
|
||||||
mp_spiflash_write(MBOOT_SPIFLASH_SPIFLASH, SPIFLASH_UPDATE_KEY_ADDR + 4, ELEM_DATA_SIZE, ELEM_DATA_START);
|
|
||||||
} else if (state == MBOOT_STATE_FSLOAD_END) {
|
} else if (state == MBOOT_STATE_FSLOAD_END) {
|
||||||
// The FS-load update completed (either with success or failure), so erase the
|
// The FS-load update completed (either with success or failure), so erase the
|
||||||
// update key and write the result of the FS-load operation into flash.
|
// update key and write the result of the FS-load operation into flash.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user