2019-09-25 12:49 PM
I am trying to update the FUS firmware to the latest version on a STM32WB55CG, following the guide in the release notes I get Error: Firmware not authentic!. at step 5 (RSS_IMAGE_NOT_AUTHENTIC).
I have the latest CubeProg version and my actual FUS is 0.5.3
Am I doing something wrong?
Thanks!
Solved! Go to Solution.
2019-09-27 05:49 AM
@Remi QUINTIN SOLVED: as found in another post in this forum https://community.st.com/s/question/0D50X0000Ap44FlSQI/restore-stm32wb55-fus-firmware), I set the read protection byte to 0xBB and then back to 0xAA. After that I was able to upgrade to FUS 1.0.1, you may want to investigate this behavior or wrtite it on some documentation.
Thanks again for your help!
2019-09-26 01:19 AM
First of all you have to upgrade the Firmware Update Service (FUS) from the pre-installed version 0.5.3 to version 1.0.1
With a 1MB Flash device, you should use the USB port in DFU mode and the CubeProgrammer tool is command line mode (CLI).
Launch the following commands
STM32_Programmer_CLI.exe c port=usb1 -fwdelete
STM32_Programmer_CLI.exe-c port=usb1 -fwupgrade stm32wb5x_FUS_fw.bin 0x080EC000 firstinstall=0 –v
STM32_Programmer_CLI.exe -c port=usb1 -r32 0x20030030 1
If the upgrade is successful, the last command should show you the new version of the FUS : 1.0.1
2019-09-26 09:13 AM
@Remi QUINTIN , I tried that but I have the same identical error. I used the FUS bin inside the 1.1.0 Cube package and the release notes confirm that FUS is 1.0.1
Any suggestion?
This is the detailed output
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206E3183414E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M0+/M4
RSS state is RSS_IDLE
RSS status is RSS_NO_ERROR
Old Firmware delete ...
Deleting firmware ...
Firmware delete finished
RSS state is RSS_SERVICE_ONGOING
RSS status is RSS_IMAGE_NOT_FOUND
RSS state is RSS_IDLE
RSS status is RSS_NO_ERROR
Download firmware image at address 0x80ec000 ...
Memory Programming ...
Opening and parsing file: stm32wb5x_FUS_fw.bin
File : stm32wb5x_FUS_fw.bin
Size : 24492 Bytes
Address : 0x080EC000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [236 241]
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.569
RSS state is RSS_IDLE
RSS status is RSS_NO_ERROR
Firmware Upgrade process started ...
Updating firmware ...
Waiting for firmware upgrade end
RSS state is WIRELESS_STACK_UPGRADE_ONGOING
RSS status is RSS_NO_ERROR
RSS state is WIRELESS_STACK_UPGRADE_ONGOING
RSS status is RSS_IMAGE_NOT_AUTHENTIC
Error: Firmware not authentic!
2019-09-26 09:21 AM
Let's try something else.
Please use the stm32wb5x_FUS_fw.bin from the CubeWB FW package V1.2.0.
You can find it on the st.com site.
Inside the FUS version is 1.0.2. It can be uploaded on the WB if and only if the current FUS is V0.5.3.
2019-09-26 09:23 AM
Could you expose the sequence of commands you are using to upgrade the FUS?
2019-09-26 09:27 AM
Just tried it, unfortunately I have the same behavior.
2019-09-26 09:35 AM
the sequence is the following:
Enter in DFU mode through usb (this is working well)
STM32_Programmer_CLI.exe -c port=usb1 -r32 0x20030030 1 gets the following result:
USB speed : Full Speed (12MBit/s)
Manuf. ID : STMicroelectronics
Product ID : DFU in FS Mode
SN : 206E3183414E
FW version : 0x011a
Device ID : 0x0495
Device name : STM32WBxx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M0+/M4
0x20030030 : 00050300
Then erase old image:
STM32_Programmer_CLI.exe -c port=usb1 -fwdelete
RSS state is RSS_IDLE
RSS status is RSS_NO_ERROR
Deleting firmware ...
Firmware delete finished
fwdelete command execution finished
which, if I put the -v arg it gives additionally:
Error: Wrong verify command use: it must be performed just after write command or write 32-bit command
and finally:
STM32_Programmer_CLI.exe -c port=usb1 -fwupgrade stm32wb5x_FUS_fw.bin 0x080EC000 firstinstall=0
which gives the result explained above
2019-09-26 11:44 AM
I am quite puzzled by your situation as I dont see anything wrong that could lead to this error message.
Last point: could you provide me the values of all the option bytes. Just to check if the BOOT0 is set to 1.
Is it your own board or an ST boar (Nucleo or dongle)?
2019-09-27 03:53 AM
Hey @Remi QUINTIN , we are using a custom board.
Option byte boot0 is set from what I see, in the picture the user option bytes that I read from cubeProgrammer in dfu mode.
2019-09-27 04:08 AM
and here the security configuration OB