2024-06-04 12:57 AM - edited 2024-06-04 01:32 AM
Start FUS: works
Read FUS info: works (see screenshot)
Neither firmware deleting nor Firmware upgrading is possible with my STM32WB55 Nucleo board.
Always receiving FUS_STATE_ERR_UNKNOWN.
Can you please advise how to proceed?
Below you can find the option bytes of the board:
STM32_Programmer_CLI.exe -c port=SWD -ob displ
-------------------------------------------------------------------
STM32CubeProgrammer v2.16.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF545057717867195119
ST-LINK FW : V2J43M28
Board : P-NUCLEO-WB55
Voltage : 3.26V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x495
Revision ID : Rev B
Device name : STM32WB5x/35xx
Flash size : 1 MBytes
Start Address : 8000000
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xD2
Debug in Low Power mode enabled
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x58004020
Size : 96 Bytes
██████████████████████████████████████████████████ 100%
Bank : 0x01
Address : 0x58004080
Size : 8 Bytes
██████████████████████████████████████████████████ 100%
OPTION BYTES BANK: 0
Read Out Protection:
RDP : 0xAA (Level 0, no protection)
BOR Level:
BOR_LEV : 0x0 (BOR Level 0 reset level threshold is around 1.7 V)
User Configuration:
nBOOT0 : 0x1 (nBOOT0=1 Boot from main Flash)
nBOOT1 : 0x1 (Boot from code area if BOOT0=0 otherwise system Flash)
nSWBOOT0 : 0x0 (BOOT0 taken from the option bit nBOOT0)
SRAM2RST : 0x0 (SRAM2 erased when a system reset occurs)
SRAM2PE : 0x1 (SRAM2 parity check disable)
nRST_STOP : 0x1 (No reset generated when entering the Stop mode)
nRST_STDBY : 0x1 (No reset generated when entering the Standby mode)
nRSTSHDW : 0x1 (No reset generated when entering the Shutdown mode)
WWDGSW : 0x1 (Software window watchdog)
IWDGSTDBY : 0x1 (Independent watchdog counter running in Standby mode)
IWDGSTOP : 0x1 (Independent watchdog counter running in Stop mode)
IWDGSW : 0x1 (Software independent watchdog)
IPCCDBA : 0x0 (0x0)
Security Configuration Option bytes - 1:
ESE : 0x0 (Security disabled)
PCROP Protection:
PCROP1A_STRT : 0x1FF (0x80FF800)
PCROP1A_END : 0x0 (0x8000800)
PCROP_RDP : 0x1 (PCROP zone is erased when RDP is decreased)
PCROP1B_STRT : 0x1FF (0x80FF800)
PCROP1B_END : 0x0 (0x8000800)
Write Protection:
WRP1A_STRT : 0xFF (0x80FF000)
WRP1A_END : 0x0 (0x8000000)
WRP1B_STRT : 0xFF (0x80FF000)
WRP1B_END : 0x0 (0x8000000)
OPTION BYTES BANK: 1
Security Configuration Option bytes - 2:
SFSA : 0xD4 (0x80D4000)
FSD : 0x1 (System and Flash non-secure)
DDS : 0x1 (CPU2 debug access disabled)
C2OPT : 0x1 (SBRV will address Flash)
NBRSD : 0x1 (SRAM2b is non-secure)
SNBRSA : 0x14 (0x2003D000)
BRSD : 0x1 (SRAM2a is non-secure)
SBRSA : 0xA (0x20032800)
SBRV : 0x3D800 (0x20000000)
2024-06-04 08:21 AM
Hello @Rena Z.
According to your screenshot, SBRV is equal to 0x3D800 that indicate FUS v0.5.3 is running on your board. So, you must update the FUS using the stm32wb5x_FUS_fw_for_fus_0_5_3.bin binary.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-06-04 10:35 AM
Hi @STTwo-32 ,
thanks for the quick response. Sorry, but you may haven't fully read my post "Neither firmware deleting nor Firmware upgrading is possible". I tried updating with STM32CubeProgrammer GUI:
and also with the CLI tool (see below). Seems that uploading (1.step of FUS) works but starting the firmware (2.step of FUS) always fails with FUS_STATE_ERR_UNKNOWN.
Meanwhile I read some other posts and found that FUS_STATE_ERR_UNKNOWN is maybe an issue with "ESE bit set"?
https://community.st.com/t5/stm32-mcus-wireless/unable-to-start-fus/td-p/132074/page/3
STM32_Programmer_CLI.exe -c port=swd -vb 2 -fwupgrade "D:\_bu\stm32\_nucleo_wb55rg\STM32Cube_FW_WB_V1.19.0\STM32WB_Copro_Wireless_Binaries\STM32WB5x\stm32wb5x_FUS_fw_for_fus_0_5_3.bin" 0x080EC000 firstinstall=1
-------------------------------------------------------------------
STM32CubeProgrammer v2.16.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF545057717867195119
ST-LINK FW : V2J43M28
Board : P-NUCLEO-WB55
Voltage : 3.26V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x495
Revision ID : Rev B
flash loader D:/vm_cb/STM32CubeProgrammer/bin/FlashLoader/0x495.stldr is loaded
Device name : STM32WB5x/35xx
Flash size : 1 MBytes
Start Address : 8000000
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xD2
Debug in Low Power mode enabled
Download firmware image at address 0x80EC000 ...
Memory Programming ...
Opening and parsing file: stm32wb5x_FUS_fw_for_fus_0_5_3.bin
File : stm32wb5x_FUS_fw_for_fus_0_5_3.bin
Size : 23.92 KB
Address : 0x080EC000
Erasing memory corresponding to segment 0:
Memory Erase via FlashLoader!
Memory erase...
halt ap 0
Erasing internal memory sectors [236 241]
Init flashloader...
halt ap 0
run ap 0
halt ap 0
Loader sector erase...
run ap 0
halt ap 0
Download in Progress:
Size : 24496 Bytes
Address : 0x080EC000
halt ap 0
Loader write range...
Init flashloader...
halt ap 0
run ap 0
halt ap 0
run ap 0
run ap 0
Segment[0] downloaded successfully
File download complete
Time elapsed during download operation: 00:00:00.768
Firmware Upgrade process started ...
UPLOADING OPTION BYTES DATA ...
Bank : 0x00
Address : 0x58004020
Size : 96 Bytes
Bank : 0x01
Address : 0x58004080
Size : 8 Bytes
PROGRAMMING OPTION BYTES AREA ...
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
Warning: Option Byte: nboot0, value: 0x1, was not modified.
Warning: Option Byte: nboot1, value: 0x1, was not modified.
Warning: Option Bytes are unchanged, Data won't be downloaded
Time elapsed during option Bytes configuration: 00:00:00.032
Succeed to set nSWboot0=0 nboot1=1 nboot0=1
Memory Programming ...
Opening and parsing file: 0x495_FUS_Operator.bin
File : 0x495_FUS_Operator.bin
Size : 8.00 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Memory Erase via FlashLoader!
Memory erase...
halt ap 0
Erasing internal memory sectors [0 1]
Init flashloader...
halt ap 0
run ap 0
halt ap 0
Loader sector erase...
run ap 0
halt ap 0
Download in Progress:
Size : 8192 Bytes
Address : 0x08000000
halt ap 0
Loader write range...
Init flashloader...
halt ap 0
run ap 0
halt ap 0
run ap 0
run ap 0
Segment[0] downloaded successfully
File download complete
Time elapsed during download operation: 00:00:00.411
Application is running, Please Hold on...
Reconnecting...
Disconnected
ST-LINK SN : 0669FF545057717867195119
ST-LINK FW : V2J43M28
Board : P-NUCLEO-WB55
Voltage : 3.26V
SWD freq : 4000 KHz
Connect mode: Hot Plug
Reset mode : Software reset
Device ID : 0x495
Revision ID : Rev B
Reconnected !
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Error: fwupgrade Command Failure!
2024-06-13 08:30 AM
Hello @Rena Z.
When it fails on the first time on the firmware starting, can you try again by clicking on the "Start FUS" Button. It may fail on the first time.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
2024-06-20 06:44 AM
Hi @STTwo-32,
Start FUS + Read FUS infos always work,
but Firmware upgrade + Start Wireless Stack always fail with FUS_STATE_ERR_UNKNOWN.
Do you have another idea?
2024-06-28 05:00 AM
Hello @Rena Z.
Have you activated the anti-rollback mechanism before installing any stack. If so, the stack reference version is considered as FFFFFFFF (while no stack installed and anti-rollback is activated), so no firmware update is allowed after that, and no recovery is possible at this point.
Best Regards.
STTwo-32
To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.