Unable to write ZMK (ZMK_WSL=1)

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

Unable to write ZMK (ZMK_WSL=1)

Jump to solution
1,631 Views
ryanm_
Contributor II

I've been able to successfully setup HAB on our board with a V1.1 Vybrid processor.  I'm able to boot a application that has been signed with the CST.  However after booting my signed application I'm  unable to set the SNVS ZMK.  The problem is that SNVS_HPLR - ZMK-WSL = 1.

When I read the text for that for that field it says the following:

pastedImage_0.png

How do I clear the Write Soft Lock with a "system reset"?    I've tried issuing a SW Reset from the SRC without any luck.

Below is a dump of SNVS registers immediately after boot.

Secure boot enabled

HAB Configuration: 0xcc HAB State: 0x99

No HAB Failure Events Found!

0x400a7000 = 0x00000001

0x400a7004 = 0x00002020

0x400a7008 = 0x00000000

0x400a700c = 0x00000000

0x400a7010 = 0x00000000

0x400a7014 = 0x80000d00

0x400a7018 = 0x00000000

0x400a701c = 0x00000000

0x400a7020 = 0x00000000

0x400a7024 = 0x00000000

0x400a7028 = 0x00000000

0x400a702c = 0x00000000

0x400a7030 = 0x00000000

0x400a7034 = 0x00000000

0x400a7038 = 0x00000000

0x400a703c = 0x00000000

0x400a7040 = 0x00000000

0x400a7044 = 0x00000000

0x400a7048 = 0x00000000

0x400a704c = 0x00000008

0x400a7050 = 0x00000000

0x400a7054 = 0x00000000

0x400a7058 = 0x00000000

0x400a705c = 0x00000000

0x400a7060 = 0x00000000

0x400a7064 = 0x00000000

0x400a7068 = 0x00000000

0x400a706c = 0x00000000

0x400a7070 = 0x00000000

0x400a7074 = 0x00000000

0x400a7078 = 0x00000000

0x400a707c = 0x00000000

0x400a7080 = 0x00000000

0x400a7084 = 0x00000000

0x400a7088 = 0x00000000

0x400a708c = 0x00000000

Thanks,

Ryan

Labels (1)
0 Kudos
1 Solution
1,144 Views
ryanm_
Contributor II

Naoum,

The problem with the ZMK_WSL = 1 being set when leaving the bootrom was because the Code Signing Tool (cst) file needed to have Unlock commands added (HABCST_UG.pdf - Section 5.2.17).

By adding unlock commands for SNVS I was able to set the ZMK.

Thanks,

Ryan

View solution in original post

0 Kudos
5 Replies
1,144 Views
naoumgitnik
Senior Contributor V

Dear Ryan,

To expedite the support process, may you, please, be more specific regarding "burning the fuse to go from "Open" to "Closed"”, e.g. refer to the specific place in our documentation? - IMO, at the first glance, it is directly related to it.

Sincerely, Naoum Gitnik.

0 Kudos
1,144 Views
ryanm_
Contributor II

Naoum,

By "Open" to "Closed" I'm referring to changing the Security Configuration (Section 5.3 of the Vybrid Security Reference Manual).  The specific fuse that was blown is "SEC_CONFIG" discussed in section 8.5.14.

We also tried to assert reset via RESET_B but that didn't seem to help clearing the ZML_WSL bit.

Note:  Section 13.5 - SNVS reset and system power up -- has a table that indicates all SNVS_HP and SNVS_LP registers and flopgs are reset with HP Hard (ipg_hard_async_reset_b)

-Ryan

0 Kudos
1,145 Views
ryanm_
Contributor II

Naoum,

The problem with the ZMK_WSL = 1 being set when leaving the bootrom was because the Code Signing Tool (cst) file needed to have Unlock commands added (HABCST_UG.pdf - Section 5.2.17).

By adding unlock commands for SNVS I was able to set the ZMK.

Thanks,

Ryan

0 Kudos
1,144 Views
ryanm_
Contributor II

I forgot to mention that that prior to burning the fuse to go from "Open" to "Closed" I was able to set the SNVS ZMK in the "Non-Secure" state.

0 Kudos
1,144 Views
timesyssupport
Senior Contributor II

This is outside the scope of our standard support for the Linux/MQX environment with Vybrid. Does the Vybrid Design team have any comments on this?

Thanks,

Timesys Support

0 Kudos