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.

[FAQ] TDA4VM-Q1: TDA4VM SR2.0 SBL and SPL boot flow

Part Number: TDA4VM-Q1
Other Parts Discussed in Thread: TDA4VM

Tool/software:

Hi Customer,

This FAQ will introduce the detail steps for different SDK in SBL or SPL.

BR,

Biao 

  • SR2.0 upgrade steps: 

    For example1, if you are using the TDA4VM88T5CALFRQ1, SDK version is SDK8.0, boot flow is SPL. we will provide below files to you. you need apply this as below steps. if you apply the patch fail, you need look into those patch, apply it manually.

    1. Keywriter: Follow the FAQ to change the TDA4VM_HS_FS to TDA4VM_HS_SE.  --- need Use the file OTP_KEYWRITER_ADD_ON_j721e_sr2_09_02_00_05-linux-installer.run
    2. Apply the SPL Patch to your SDK, in order to remove some firewalls.                    --- need Use the file 0001-arm-mach-k3-common-reorder-removal-of-firewalls.PATCH
    3. Apply the MISR Patch to your SDK, in order to add the correct MISR value for SR2.0 during the BIST. --- need Use the file 0001-C7x-MISR-Update-ES2.0.patch
    4. Replace the tifs.bin in SDK, and rebuild it then generate the sysfw.itb to boot.   --- need Use the file v2021.05.ZIP/ti-fs-firmware-j721e_sr2-hs-cert.bin + ti-fs-firmware-j721e_sr2-hs-enc.bin

    For example2, if you are using the TDA4VM88TRCALFRQ1, SDK version is SDK7.3, boot flow is SBL. because of the SOC type is HS prime, we deliver the source code to you, so that you can't use the tifs binary directly, we will provide another tifs patch to you.

    1. Keywriter: Follow the FAQ to change the TDA4VM_HS_FS to TDA4VM_HS_SE.  --- need Use the file OTP_KEYWRITER_ADD_ON_j721e_sr2_09_02_00_05-linux-installer.run
    2. Apply the SPL Patch to your SDK, in order to remove some firewalls.                    --- need Use the file PDK_SBL_changes_2_0.PATCH
    3. Apply the MISR Patch to your SDK, in order to add the correct MISR value for SR2.0 during the BIST. --- need Use the file 0001-C7x-MISR-Update-ES2.0.patch
    4. Apply the tifs patch in your tifs source code sdk and rebuild the tifs.bin  --- need Use the file v2021.01a_j721e_pka_update_diff.TXT

  • Regrading the tifs.bin for SBL generate:

    ti-fs-firmware-j721e_sr2-hs-cert.bin + ti-fs-firmware-j721e_sr2-hs-enc.bin ---> tifs.bin

    1. copy the binary to <pdk>packages/ti/drv/sciclient/soc/sysfw/binaries (make sure you are following the naming convention please have a look into the other binaries which are already present there )
    2. cd <pdk>/packages/ti/drv/sciclient/tools
    3. open sysfw_migrate.sh and check if there is any support to generate binary for j721e_sr2-hs if not you can use any exesting one just need to make sure you also renamed the binary accordingly as mentioned in the above step.
    4. run this command: ./firmwareHeaderGen.sh j721e_sr2-hs this will generate the tifs.bin

    For example in SDK7.x, you need apply some change as below:

    git diff ../../tools/firmwareHeaderGen.sh

    diff --git a/packages/ti/drv/sciclient/tools/firmwareHeaderGen.sh b/packages/ti/drv/sciclient/tools/firmwareHeaderGen.sh

    index 963c1ea..f731d3c 100755

    --- a/packages/ti/drv/sciclient/tools/firmwareHeaderGen.sh

    +++ b/packages/ti/drv/sciclient/tools/firmwareHeaderGen.sh

    @@ -37,6 +37,7 @@

    #         For J721E             : ./firmwareHeaderGen.sh j721e

    #         For J721E-HS          : ./firmwareHeaderGen.sh j721e-hs

    #         For J721E-HS (ES1.1)  : ./firmwareHeaderGen.sh j721e_sr1_1-hs

    +#         For J721E-HS (ES2.0)  : ./firmwareHeaderGen.sh j721e_sr2-hs

    #         For AM64x             : ./firmwareHeaderGen.sh am64x

    #         For J7200             : ./firmwareHeaderGen.sh j7200

    export RM=rm

    @@ -141,6 +142,15 @@ export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/tifs_cert_sr1.1.bin

    export SYSFW_LOAD_ADDR=0x40000

    fi

     

    +if [ "$FW_SOC" = "j721e_sr2" ]; then

    +export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V1

    +export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V1_sr2.0$BIN_EXT.h

    +export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/tifs_sr2.0$BIN_EXT.bin

    +export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-fs-firmware-$FW_SOC$FW_SOC_TYPE.bin

    +export SYSFW_SE_INNER_CERT=$SCI_CLIENT_IN_SOC_DIR/ti-fs-firmware-$FW_SOC${FW_SOC_TYPE%-enc}-cert.bin

    +export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/tifs_cert_sr2.0.bin

    +export SYSFW_LOAD_ADDR=0x40000

    +fi

     

     if [ "$FW_SOC" = "j7200" ]; then

    export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V2

     

    git diff ../../tools/sysfw_migrate.sh

    diff --git a/packages/ti/drv/sciclient/tools/sysfw_migrate.sh b/packages/ti/drv/sciclient/tools/sysfw_migrate.sh

    index 1da9236..93c296d 100755

    --- a/packages/ti/drv/sciclient/tools/sysfw_migrate.sh

    +++ b/packages/ti/drv/sciclient/tools/sysfw_migrate.sh

    @@ -223,6 +223,7 @@ if [ "$SKIP_GEN_BIN" != "YES" ];  then

         ./firmwareHeaderGen.sh j721e

         ./firmwareHeaderGen.sh j721e-hs

         ./firmwareHeaderGen.sh j721e_sr1_1-hs

    +    ./firmwareHeaderGen.sh j721e_sr2-hs

         ./firmwareHeaderGen.sh am64x

         ./firmwareHeaderGen.sh j7200

    For SPL will use the sysfw.itb, will generate by makefile automatically. you only need replace the binaries locate in ~/board-support/prebuilt-images/ti-fs-firmware-j721e_sr2-hs-cert.bin + ti-fs-firmware-j721e_sr2-hs-enc.bin only. (make sure you are following the naming convention(maybe ti-fs-firmware-j721e-hs-enc.bin) please have a look into the other binaries which are already present there )

  • Important Info: At first, you need contact with your TI contact window (FAE or Sales) for the Patch and tifs binary. you should provide the SDK version, BOOT flow (SPL or SBL) and Specific PN to us, then TI will provide the correct tifs binary and patches to you. Below is the available SDK version and boot flow combination now. if you can't find the combination in below form, pls escalate to your contact window.

    SDK Boot Loader TIFS Version Patch TIFS name 
    7.3 SPL new version on top SDK 7.3 0001-arm-mach-k3-common-reorder-removal-of-firewalls.PATCH v2021.01a
    7.3 SBL new version on top SDK 7.3 PDK_SBL_changes_2_0.PATCH v2021.01a
    8 SPL new version on top SDK 8.0 0001-arm-mach-k3-common-reorder-removal-of-firewalls.PATCH v2021.05
    8 SBL new version on top SDK 8.0 PDK_SBL_changes_2_0.PATCH v2021.05
    8.4 SPL new version on top SDK 8.4 0001-arm-mach-k3-common-reorder-removal-of-firewalls.PATCH v08.04.01
    8.4 SBL new version on top SDK 8.4 PDK_SBL_changes_2_0.PATCH v08.04.01
    8.2 SBL new version on top SDK 8.2 PDK_SBL_changes_2_0.PATCH v2022.01
    8.2 SPL new version on top SDK 8.2 0001-arm-mach-k3-common-reorder-removal-of-firewalls.PATCH v2022.01
    7.1 SBL new version on top SDK 7.1 PDK_SBL_changes_2_0.PATCH v2020.08b
    8.1 SBL new version on top SDK 8.1 0001-Support-to-enable-J721E-SR2.0.patch v2021.09a