Flash RH850U2A16 custom hex file via Thor commands is not working

DRIVE OS Version: 7.0.3

Issue Description: Flash RH850U2A16 custom hex file via Thor commands is not working, via MCU_Flashing.py USB is working.

I tried to flash the RH850 via Thor with the original hex file and is working. I tried to flash a custom hex file for rh850, with MCU_Flashing.py is working but via Thor not and i got this

thor-endp@tegra-ubuntu:/$ sudo /bin/bash /etc/systemd/scripts/nv_renesas_check_fw.sh -force_update \ DRIVE-V7.0.3-P3960
-AFW-RH850-U2A16-3.00.03.hex
starting Renesas FW checking…
Checking Ping to Renesas
Ping to Renesas successful
Renesas Update : Main FW selected: AFW
Rootfs FW version is 3.00.03.0, DRIVE-V7.0.3-P3960-AFW-RH850-U2A16-3.00.03
Response_From_Renesas
Flashed FW version is 1.00.03.00
Syncing File System done
flash_mcu_fw called
FW version is not present in HexFile
Read Hexfile Version failed. not supported in the hexfile
Force Update MCU FW Failed

Dear @gabriele-andrea.blasciuc1 ,
Does that mean, you could flash the hex files provided as part of DRIVE OS but custom hex you prepared has issue?

Yes, i would like to know what lead to “version info not found in hex file” as i cannot see the source code as its a lib. with MCU_Flashing is working, the mcu version is found at the address specified. For flash via thor is seems that version is expected to be at another location?

DRIVE-V7.0.3-P3960-AFW-RH850-U2A16-3.00.03.txt (4.0 MB)

DRIVE-V7.0.3-P3960-AFW-RH850-U2A16-2.03.12.txt (2.7 MB)

custom hex file is the one with 3.00.03

original 2.03.12

any hint?

Do you see any confirmation message like printing version info in log when using MCU_flashing.py?

Could you please provide any update for this topic?

Command from Linux pc: “sudo python3 MCU_Flashing.py 115200 /dev/ttyUSB8 . rh850u2a.hex --no_tegra_recovery”

Output:

MCUFlashingScript: Starting the script
MCUFlashingScript: Fw version in given Hex File
Major version 3
Minor version 0
Revision Number 3
Snapshot Number 42
Board Type 9
Fw Type 1
Mcu Type 2
MCUFlashingScript: Processing of Hex file finished
Total Number of pages is 6833
MCUFlashingScript: Initializing /dev/ttyUSB8 with baudrate 115200
MCUFlashingScript: Sending command - startmcuflashing
MCU Response

startmcuflashing
Info: Executing cmd: startmcuflashing, argc: 0, args:
CFMAPSTT = 0xfffffffc
CFSWSTT = 0xfffffffc
Command Executed
MCUFlashingScript: Adding wait of 7 seconds
MCUFlashingScript: Sending command - version
MCU Response

version
Info: Executing cmd: version, argc: 0, args:
Command Executed
MCUFlashingScript: Sending command - hwpropstatus
MCU Response

hwpropstatus
Info: Executing cmd: hwpropstatus, argc: 0, args:
Dual Memory Map Mode
Bank B and D are valid
CSA1 is valid
SSA0 is valid
SWA1 is valid
SWA flag is valid
Command Executed
MCUFlashingScript: Setting UART baudrate to 115200
MCUFlashingScript: Sending command - startmcuflashing
MCU Response

startmcuflashing
Info: Executing cmd: startmcuflashing, argc: 0, args:
CFMAPSTT = 0xfffffffc
CFSWSTT = 0xfffffffc
Command Executed
MCUFlashingScript: SendgetfwversionCommand
MCUFlashingScript: Fw version obtained successfully
Major version 3
Minor version 0
Revision Number 3
Snapshot Number 42
Board Type 9
Fw Type 1
Mcu Type 2
MCUFlashingScript: Downloading FW to Target
MCUFlashingScript: Download completed

MCUFlashingScript: SendEndofProgrammingCommand
MCUFlashingScript: Waiting for bootup after reset
MCUFlashingScript: Sending command - hwpropstatus
MCU Response


Check for VRS10…
Check for VRS10…
Check for VRS10…
hwpropstatus
Info: Executing cmd: hwpropstatus, argc: 0, args:
Dual Memory Map Mode
Bank B and D are valid
CSA0 is valid
SSA0 is valid
SWA0 is valid
SWA flag is valid
Command Executed
MCUFlashingScript: Sending command - version
MCU Response

version
Info: Executing cmd: version, argc: 0, args:
Command Executed
MCUFlashingScript: SendgetfwversionCommand
MCUFlashingScript: INFO - FW update successful
Adding 6s of Delay
MCUFlashingScript: Script Execution Completed
MCUFlashingScript: Total Script Execution Time : 250.30765438079834 seconds

starting Renesas FW checking…
Checking Ping to Renesas
Ping to Renesas successful
Renesas Update : Main FW selected: AFW
Rootfs FW version is 3.00.03.0, DRIVE-V7.0.3-P3960-AFW-RH850-U2A16-3.00.03
Response_From_Renesas
Flashed FW version is 3.00.03.00
Syncing File System done
flash_mcu_fw called
New MCU FW version from Hexfile 3.0.3.0
FWUPDATE_START : Query FW Version Successful
Flashed FW version 3.0.3.0
Force flash of MCU FW is enabled
Start linear address

Erasing Sector 0x02000000
Flashing Sector 0x02000000

Erasing Sector 0x025f0000
Flashing Sector 0x025f0000
..Program PFlash error at 2003400
Sending Renesas Program failed
Sending End Renesas Program failed
Request MCU to Firmware Flashing Failed …
CommonIf_E_WR_FLASH_ERR
Force Update MCU FW Failed → on RH850 side Info: CmnIf: Erasing sector
ValidateAddr: 0x025F0000
FACI Status: 0x00000000, FACI#: 1, LockCheck: 85
FACI Status: 0x00000000, FACI#: 1, LockCheck: 0

Info: CmnIf: Erasing sector
ValidateAddr: 0x02000000
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
Info: CmnIf: Flash programming enabled
ValidateAddr: 0x02000000
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000200
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000400
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000800
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000A00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000C00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02000E00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001000
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001200
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001400
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001600
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001800
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001A00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001C00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02001E00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002000
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002200
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002400
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002600
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002800
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002A00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002C00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02002E00
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x02003000
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.
Info: CmnIf: Erasing sector
ValidateAddr: 0x025F0000
FACI Status: 0x00000000, FACI#: 1, LockCheck: 85
FACI Status: 0x00000000, FACI#: 1, LockCheck: 0
Info: CmnIf: Flash programming enabled
ValidateAddr: 0x02003200
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00000000, FACI#: 0, LockCheck: 0
.ValidateAddr: 0x025F0000
FACI Status: 0x00000000, FACI#: 1, LockCheck: 85
FACI Status: 0x00000000, FACI#: 1, LockCheck: 0
.ValidateAddr: 0x02003200
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00001004, FACI#: 0, LockCheck: 0
FACI Error! lRetValRFD=0x00001004
Error Command 12, Sub-Command 4, ErrorCode f7
Info: CmnIf: Property Programming Started
ValidateAddr: 0x02003400
FACI Status: 0x00000000, FACI#: 0, LockCheck: 85
FACI Status: 0x00001001, FACI#: 0, LockCheck: 0
FACI Error! lRetValRFD=0x00001001
Error Command 12, Sub-Command 6, ErrorCode f9 eplxain what happens line by line

so i dont why with UART and MCU_FLashing.py works the flashing and with UDP via sudo /bin/bash /etc/systemd/scripts/nv_renesas_check_fw.sh -force_update it seems it switches between FACI0 and FACI1 and twice tries to program address 2003400