HSE update

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

HSE update

Jump to solution
891 Views
liyongfeng
Contributor III

Problem Description:
When updating the HSE firmware in A/B SWAP mode, the following steps were performed:

Step 1:
Current code runs in active_A.
No user code is copied to passive_B.
Only the HSE service is called: TrigUpdateHSEFW(&pHseRamAddr[0], HSE_ACCESS_MODE_ONE_PASS, hseFwLength);
Then, the HSE service HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK is called to swap.

Step 2: Reset the system.

Step 3:
Now, active_B has no code and cannot run.
An ELF file is downloaded to active_B via the debugger.
The HSE version read is the latest version.
No HSE FW update is performed on passive_A.
The HSE service HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK is called again to swap.
Reset the system.

Step 4:
After reset, reading the HSE version from active_A shows the latest version.
Expected behavior: Since A-side HSE FW was not updated, it should still show the old version.
Question: Why does active_A report the latest version even though it was not updated?

      •  

       

0 Kudos
Reply
1 Solution
864 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @liyongfeng 

There's nothing wrong, this is correct and expected behavior. You are not supposed to run the update service 2x for both partition separately. You are supposed to run the service only 1x and then call  HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK and reset the device. The HSE will automatically write the new firmware to both partitions. 

Please read "11.3 HSE Firmware update (AB_SWAP)" in HSE Firmware Reference Manual v2.5 for more details. 

The key point:

"The HSE takes the backup of itself in the new passive partition after reset post every swap service, whether FW is updated or not. So, for these sequences, the boot time will be more by approximately 1 second as HSE FW takes backup."

Regards,

Lukas

View solution in original post

0 Kudos
Reply
1 Reply
865 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @liyongfeng 

There's nothing wrong, this is correct and expected behavior. You are not supposed to run the update service 2x for both partition separately. You are supposed to run the service only 1x and then call  HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK and reset the device. The HSE will automatically write the new firmware to both partitions. 

Please read "11.3 HSE Firmware update (AB_SWAP)" in HSE Firmware Reference Manual v2.5 for more details. 

The key point:

"The HSE takes the backup of itself in the new passive partition after reset post every swap service, whether FW is updated or not. So, for these sequences, the boot time will be more by approximately 1 second as HSE FW takes backup."

Regards,

Lukas

0 Kudos
Reply