This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM64X: AM64x rollback protection

Part Number: PROCESSOR-SDK-AM64X

Tool/software:

Hi team

We face some difficulties in understanding how rollback protection is implemented. This page https://software-dl.ti.com/tisci/esd/latest/6_topic_user_guides/secure_boot_signing.html?highlight=rollback#signing-an-unencrypted-binary-for-secure-boot claims, that the "System Firmware Software Revision Extension" shall be populated in the X.509 certificate in order to enforce rollback protection.

Therefore it should be theoretically possible to rollback protect each image that is signed with such a certificate.

However, according https://software-dl.ti.com/tisci/esd/10_00_08/6_topic_user_guides/key_writer.html?highlight=msv#supported-fields there exist only three eFuse fields dedicated to software revision information, namely SWREV-BOARDCONFIG, SWREV-SBL and SWREV-SYSFW.

Based on the documents available to us we assume that SYSFW implements rollback protection by checking the "System Firmware Software Revision Extension" comprised in a image certificate against
an according eFuse field.

This raises some questions:

  1. Is our assumption correct ?
  2. The tiboot3.bin image comprises multiple binaries that are signed with a single X.509 certificate (disregarding inner cert). However, the "System Firmware Software Revision Extension" holds only
    one single number. How is this number mapped to the SWREV-BOARDCONFIG, SWREV-SBL and SWREV-SYSFW eFuse fields ?
  3. There are no eFuse fields provided that keep software revision information for binaries kept in the tispl.bin and u-boot.img images (ATF, OPTEE, DTBs, A53 bootloader code). All available eFuse fields are
    related to the tiboot3.bin image. Is it correct, that rollback protection is not supported for the tispl.bin and u-boot.img images (and therefore must be realized in sofware) ?
  4. The SWREV-* fields are initialized by TI to a value of 1, correct ?
  5. The SWREV-* fields are typically left untouched during commissioning (Keywriter application) but are modified using TISCI API, correct ?
  6. Do we have to raise VPP to 1.8V when we modify the SWREV-* fields using TISCI API ?

Regards

Walter