cancel
Showing results for 
Search instead for 
Did you mean: 

Nucleo STM32WB55: Firmware delete and Firmware Upgrade fails with FUS_STATE_ERR_UNKNOWN

Rena Z.
Associate II

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?

RenaZ_0-1717487328051.png

RenaZ_1-1717487459097.png

RenaZ_0-1717489156339.png

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)



 

4 REPLIES 4
STTwo-32
ST Employee

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.

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:

RenaZ_0-1717521903970.png

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

 RenaZ_1-1717522495407.png



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!

 




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.

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?