on RT1051 we are able to run an encrypted FW or even a plain-text FW.
The fuses we write to RT1051 are as follows:
- BT_FUSE_SEL 0x460[4]: Boot from fuse
- SW_GP2 0x690 0x6a0 0x6b0 0x6c0: decryption key
- ENCRYPTED_XIP_EN 0x450[1]: as per name
- BEE_KEY0_SEL 0x460[13:12]: 0b11 BEE KEY0 taken from SW_GP2
The rest I keep to default (boot is from NOR on FLexSPI, SEC_CONFIG is Open, etc.).
In this way if the FW is encrypted (with the right key) the micro executes it. But if there is a plain-text FW in the flash, the micro runs it anyway.
On RT117x we are unable to start a plain-text FW.
the fuses I wrote are:
- BT_FUSE_SEL 0x960[4]: Boot from fuse
- ENCRYPT_XIP_EN 0x940[1]: as per name
- USER_KEY5 0x1000 0x1010 0x1020 0x1030: Key encryption key
I keep the rest at default (OTFAD key taken from USER_KEY5, boot takes place from NOR on FLexSPI, SEC_CONFIG is Open, etc.)
Well in this way I can run an encrypted FW. But not a plain-text FW.
The documentation suggests there might be a way, but we're not finding it. In fact, if I understand correctly, OTFAD would try to decipher the keyblob, which a plain-text image does not have, so the operation should fail, and OTFAD should be turned off. And when OTFAD is turned off the data on the bus passes without being modified. Then the FW should be able to run. But that's not the case
We would like to know if there is a way to replicate the same functionality that we use on the RT1051.
best regards
Max