2023-04-13 02:25 AM
I am trying to do some testing with the new Matter protocol and using Thread and BLE on the Nucleo STM32WB55RG. Installing the new wireless stack firmware (found on the STM32 GitHub Hotspot), went just fine.
After using the nucleo for a different usecase, I tried to reinstall the correct copro wireless binaries. By accident I activated the anti-rollback option in STM32CubeProgrammer previously.
Now I cannot update the wireless stack back to stm32wb5x_BLE_Thread_ForMatter_fw.bin from the STM32 Hotspot or even stm32wb5x_Thread_FTD_fw.bin from the CubeWB-1.16.0.
Is there a way do disable the anti-rollback or get a newer version of the stm32wb5x_BLE_Thread_ForMatter_fw.bin firmware?
2023-04-20 07:18 AM
Hello,
According to AN5185, there is no possibility to disable the anti-rollback:
When FUS supports Anti-rollback, it is possible to activate this feature by sending a command to the FUS. When this command is executed by FUS, it is no longer possible to deactivate it. This feature is executed through FUS_ACTIVATE_ANTIROLLBACK command. After sending this command it is possible to check its status by sending FUS_GET_STATE command. The FUS then returns the state FUS_STATE_IDLE. This command is not reversible. This command does not apply to FUS, as no rollback is possible on FUS anyway. Important: Before activating Anti-rollback, ensure that a wireless stack is correctly installed, and that it has not been deleted. If it is activated without any wireless stack installed, the FUS registers 0xFFFFFFFF as new version, and it is not possible to install a wireless stack. When Anti-rollback is activated, it locks the version of wireless stack that can be installed. It is impossible to install any wireless stack with a version lower than the current one. For example, if wireless stack V1.9.0 is installed, when Anti-rollback is activated, only wireless stacks with versions V1.9.0 or higher can be installed (it is no longer possible to install, for example, V1.8.0).
The release v1.0.1 of stm32wb-matter-device-over-thread package is available.
Best Regards
2023-04-20 07:57 AM
Hello Remy,
At the moment, only the stm32wb5x_BLE_Stack_full_fw.bin from V1.16.0 will successfully install on the nucleo.
Trying to install other wireless stacks, the stm32wb5x_Thread_FTD_fw.bin or stm32wb5x_BLE_Thread_dynamic_fw.bin will give the anti-rollback error.
I would assume that they should be possible to install on the nucleo since they are from the same release?
Looking at the release of v1.0.1 for the Matter over Thread example, that firmware is based on the v1.15.0 stack release.
Thanks in advance.
2023-04-21 12:36 AM
Hello,
Yes, it should be possible to install any wireless stack from the same version or higher that the current install on the board.
Best Regards
2023-04-21 01:59 AM - edited 2023-11-20 08:20 AM
Hello,
Reading the FUS information gives the following results:
Trying to install the following wireless coprocessor binaries give me the anti-rollback error message:
10:23:53 : UPLOADING ...
10:23:53 : Size : 4 Bytes
10:23:53 : Address : 0x1FFF8070
10:23:53 : Read progress:
10:23:53 : Data read successfully
10:23:53 : Time elapsed during the read operation is: 00:00:00.002
10:24:06 : Old Firmware delete ...
10:24:06 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
10:24:06 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
10:24:06 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
10:24:06 : Warning: Option Bytes are unchanged, Data won't be downloaded
10:24:06 : Time elapsed during option Bytes configuration: 00:00:00.000
10:24:06 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:24:06 : Memory Programming ...
10:24:06 : Opening and parsing file: 0x495_FUS_Operator.bin
10:24:06 : File : 0x495_FUS_Operator.bin
10:24:06 : Size : 8,00 KB
10:24:06 : Address : 0x08000000
10:24:06 : Erasing memory corresponding to segment 0:
10:24:06 : Erasing internal memory sectors [0 1]
10:24:06 : Download in Progress:
10:24:06 : File download complete
10:24:06 : Time elapsed during download operation: 00:00:00.258
10:24:06 : Application is running, Please Hold on...
10:24:13 : Reconnecting...
10:24:13 : Reconnected !
10:24:13 : Warning: FUS_STATE_IMG_NOT_FOUND, Flash already empty !
10:24:14 : Firmware delete Success
10:24:14 : Download Stack/FUS image at address 0x8085000 ...
10:24:14 : Memory Programming ...
10:24:14 : Opening and parsing file: stm32wb5x_Thread_FTD_fw.bin
10:24:14 : File : stm32wb5x_Thread_FTD_fw.bin
10:24:14 : Size : 441,14 KB
10:24:14 : Address : 0x08085000
10:24:14 : Erasing memory corresponding to segment 0:
10:24:15 : Erasing internal memory sectors [133 243]
10:24:17 : Download in Progress:
10:24:24 : File download complete
10:24:24 : Time elapsed during download operation: 00:00:09.306
10:24:24 : Firmware Upgrade process started ...
10:24:24 : Application is running, Please Hold on...
10:24:56 : Reconnecting...
10:24:56 : Reconnected !
10:24:56 : Error: Rollback to older version of FW detected and not allowed!:
10:21:04 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
10:21:04 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
10:21:04 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
10:21:04 : Warning: Option Bytes are unchanged, Data won't be downloaded
10:21:04 : Time elapsed during option Bytes configuration: 00:00:00.001
10:21:04 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:21:04 : Memory Programming ...
10:21:04 : Opening and parsing file: 0x495_FUS_Operator.bin
10:21:04 : File : 0x495_FUS_Operator.bin
10:21:04 : Size : 8,00 KB
10:21:04 : Address : 0x08000000
10:21:04 : Erasing memory corresponding to segment 0:
10:21:05 : Erasing internal memory sectors [0 1]
10:21:05 : Download in Progress:
10:21:05 : File download complete
10:21:05 : Time elapsed during download operation: 00:00:00.286
10:21:05 : Application is running, Please Hold on...
10:21:05 : Reconnecting...
10:21:05 : Reconnected !
10:21:06 : FUS_STATE_IDLE
10:21:06 : Read FUS state command execution finished
10:21:06 : UPLOADING ...
10:21:06 : Size : 4 Bytes
10:21:06 : Address : 0x20010010
10:21:06 : Read progress:
10:21:06 : Data read successfully
10:21:06 : Time elapsed during the read operation is: 00:00:00.001
10:21:06 : UPLOADING ...
10:21:06 : Size : 4 Bytes
10:21:06 : Address : 0x20010014
10:21:06 : Read progress:
10:21:06 : Data read successfully
10:21:06 : Time elapsed during the read operation is: 00:00:00.001
10:21:06 : UPLOADING ...
10:21:06 : Size : 4 Bytes
10:21:06 : Address : 0x8001FFC
10:21:06 : Read progress:
10:21:06 : Data read successfully
10:21:06 : Time elapsed during the read operation is: 00:00:00.000
10:21:26 : Old Firmware delete ...
10:21:26 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
10:21:26 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
10:21:26 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
10:21:26 : Warning: Option Bytes are unchanged, Data won't be downloaded
10:21:26 : Time elapsed during option Bytes configuration: 00:00:00.000
10:21:26 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:21:26 : Memory Programming ...
10:21:26 : Opening and parsing file: 0x495_FUS_Operator.bin
10:21:26 : File : 0x495_FUS_Operator.bin
10:21:26 : Size : 8,00 KB
10:21:26 : Address : 0x08000000
10:21:26 : Erasing memory corresponding to segment 0:
10:21:26 : Erasing internal memory sectors [0 1]
10:21:26 : Download in Progress:
10:21:26 : File download complete
10:21:26 : Time elapsed during download operation: 00:00:00.279
10:21:26 : Application is running, Please Hold on...
10:21:33 : Reconnecting...
10:21:33 : Reconnected !
10:21:34 : Firmware delete Success
10:21:34 : Download Stack/FUS image at address 0x805B000 ...
10:21:34 : Memory Programming ...
10:21:34 : Opening and parsing file: stm32wb5x_BLE_Thread_dynamic_fw.bin
10:21:34 : File : stm32wb5x_BLE_Thread_dynamic_fw.bin
10:21:34 : Size : 608,75 KB
10:21:34 : Address : 0x0805B000
10:21:34 : Erasing memory corresponding to segment 0:
10:21:34 : Erasing internal memory sectors [91 243]
10:21:38 : Download in Progress:
10:21:47 : File download complete
10:21:47 : Time elapsed during download operation: 00:00:12.538
10:21:47 : Firmware Upgrade process started ...
10:21:47 : Application is running, Please Hold on...
10:22:19 : Reconnecting...
10:22:19 : Reconnected !
10:22:19 : Error: Rollback to older version of FW detected and not allowed!:
Only stm32wb5x_BLE_Stack_full_fw.bin will succeed.
10:29:16 : File download complete
10:29:16 : Time elapsed during download operation: 00:00:00.283
10:29:16 : Application is running, Please Hold on...
10:29:16 : Reconnecting...
10:29:16 : Reconnected !
10:29:16 : Warning: FUS_STATE_NOT_RUNNING
10:29:16 : the Fus getState command Failed
10:29:16 : Warning: Read FUS state Operation Failure! STACK is Running...Switch to FUS
10:29:16 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
10:29:16 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
10:29:16 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
10:29:16 : Warning: Option Bytes are unchanged, Data won't be downloaded
10:29:16 : Time elapsed during option Bytes configuration: 00:00:00.001
10:29:16 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:29:16 : Memory Programming ...
10:29:16 : Opening and parsing file: 0x495_FUS_Operator.bin
10:29:16 : File : 0x495_FUS_Operator.bin
10:29:16 : Size : 8,00 KB
10:29:16 : Address : 0x08000000
10:29:16 : Erasing memory corresponding to segment 0:
10:29:16 : Erasing internal memory sectors [0 1]
10:29:16 : Download in Progress:
10:29:17 : File download complete
10:29:17 : Time elapsed during download operation: 00:00:00.259
10:29:17 : Application is running, Please Hold on...
10:29:17 : Reconnecting...
10:29:17 : Reconnected !
10:29:21 : Reconnecting...
10:29:21 : Reconnected !
10:29:22 : StartFus activated successfully
10:29:22 : FUS_STATE_IDLE
10:29:22 : Start FUS execution finished
10:29:22 : FUS is now running
10:29:22 : Requesting Read FUS Info
10:29:22 : Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
10:29:22 : Warning: Option Byte: nboot0, value: 0x1, was not modified.
10:29:22 : Warning: Option Byte: nboot1, value: 0x1, was not modified.
10:29:22 : Warning: Option Bytes are unchanged, Data won't be downloaded
10:29:22 : Time elapsed during option Bytes configuration: 00:00:00.001
10:29:22 : Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
10:29:22 : Memory Programming ...
10:29:22 : Opening and parsing file: 0x495_FUS_Operator.bin
10:29:22 : File : 0x495_FUS_Operator.bin
10:29:22 : Size : 8,00 KB
10:29:22 : Address : 0x08000000
10:29:22 : Erasing memory corresponding to segment 0:
10:29:22 : Erasing internal memory sectors [0 1]
10:29:22 : Download in Progress:
10:29:22 : File download complete
10:29:22 : Time elapsed during download operation: 00:00:00.282
10:29:22 : Application is running, Please Hold on...
10:29:22 : Reconnecting...
10:29:22 : Reconnected !
10:29:23 : FUS_STATE_IDLE
10:29:23 : Read FUS state command execution finished
10:29:23 : Read FUS Info execution finished
10:29:23 : UPLOADING ...
10:29:23 : Size : 4 Bytes
10:29:23 : Address : 0x20010010
10:29:23 : Read progress:
10:29:23 : Data read successfully
10:29:23 : Time elapsed during the read operation is: 00:00:00.001
10:29:23 : UPLOADING ...
10:29:23 : Size : 4 Bytes
10:29:23 : Address : 0x20010014
10:29:23 : Read progress:
10:29:23 : Data read successfully
10:29:23 : Time elapsed during the read operation is: 00:00:00.000
10:29:23 : UPLOADING ...
10:29:23 : Size : 4 Bytes
10:29:23 : Address : 0x8001FFC
10:29:23 : Read progress:
10:29:23 : Data read successfully
10:29:23 : Time elapsed during the read operation is: 00:00:00.000
Is there any solution to allow the installation of those other binaries?
Can stm32wb5x_BLE_Stack_full_fw.bin be used to replace stm32wb5x_BLE_Thread_dynamic_fw.bin?
Best Regards
2023-04-26 09:21 AM
Hello,
The version of BLE Full stack (stm32wb5x_BLE_Stack_full_fw.bin) is v1.16.0.4. The version of Thread FTD stack (stm32wb5x_Thread_FTD_fw.bin) and BLE Thread dynamic stack (stm32wb5x_BLE_Thread_dynamic_fw.bin
) are v1.16.0.0. That's why in your case, you can't change the wireless stack from BLE Full stack to Thread FTD or BLE Thread dynamic stack. So, the only solution is to wait the next STM32CubeWB release v1.17.0 or to buy another board.
You can't replace stm32wb5x_BLE_Thread_dynamic_fw.bin by stm32wb5x_BLE_Stack_full_fw.bin.
Best Regards