]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blobdiff - packages/ti/drv/sciclient/tools/firmwareHeaderGen.sh
Firmware gen.sh update for ES1.1 HS testing
[processor-sdk/pdk.git] / packages / ti / drv / sciclient / tools / firmwareHeaderGen.sh
index 874824882f47f9474aa63fd62e8e93153fbf971e..963c1ea58aea3db35b63efab2722bcfd2a5e05d5 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (c) 2018, Texas Instruments Incorporated
+# Copyright (c) 2018-2020, Texas Instruments Incorporated
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-# Usage : For AM65XX    : ./firmwareHeaderGen.sh am65xx
-#         For AM65XX-HS : ./firmwareHeaderGen.sh am65xx-hs
-#         For J721E     : ./firmwareHeaderGen.sh j721e
-#         For J721E-HS  : ./firmwareHeaderGen.sh j721e-hs
+# Usage : For AM65XX            : ./firmwareHeaderGen.sh am65x
+#         For AM65XX            : ./firmwareHeaderGen.sh am65x_sr2
+#         For AM65XX-HS         : ./firmwareHeaderGen.sh am65x-hs
+#         For AM65XX-HS         : ./firmwareHeaderGen.sh am65x_sr2-hs
+#         For J721E             : ./firmwareHeaderGen.sh j721e
+#         For J721E-HS          : ./firmwareHeaderGen.sh j721e-hs
+#         For J721E-HS (ES1.1)  : ./firmwareHeaderGen.sh j721e_sr1_1-hs
+#         For AM64x             : ./firmwareHeaderGen.sh am64x
+#         For J7200             : ./firmwareHeaderGen.sh j7200
 export RM=rm
 export MV=mv
 export MAKE=gcc
@@ -41,10 +46,11 @@ export ECHO=echo
 export CHMOD=chmod
 export COPY=cp
 export CAT=cat
-#Default SOC is am65xx .This can be changed by using first parameter
+#Default SOC is am65x .This can be changed by using first parameter
 # as ,for example, "j721e". Assumes device type is GP by default.
-export SOC=am65xx
-export SOC_TYPE=gp
+export FW_SOC=am65x
+export FW_SOC_TYPE=-gp
+export BIN_EXT=
 
 if [[ $OS == 'Windows_NT' ]]; then
 export BIN2C_EXE=bin2c.exe
@@ -67,38 +73,95 @@ export BIN2C_GEN=$SCI_CLIENT_DIR/tools/bin2c/$BIN2C_EXE
 # PRSDK.
 if [ "$#" -gt 1 ]; then
 export ROOTDIR=$2
-export SOC=$1
+export FW_SOC=$1
 elif [ "$#" -gt 0 ]; then
 export ROOTDIR=$(cd "$SCI_CLIENT_DIR/../../.." && pwd )
-export SOC=$1
+export FW_SOC=$1
 else
 export ROOTDIR=$(cd "$SCI_CLIENT_DIR/../../.." && pwd )
 fi
 
 # Pickup correct sysfw binary
-if [[ $SOC == *"hs"* ]]; then
-  SOC_TYPE=hs-enc
-  SOC=${SOC%-hs}
+if [[ $FW_SOC == *"hs"* ]]; then
+  FW_SOC_TYPE=-hs-enc
+  FW_SOC=${FW_SOC%-hs}
+  BIN_EXT=-hs-enc
+fi
+
+if [[ $FW_SOC == *"vlab"* ]]; then
+  FW_SOC=${FW_SOC%-vlab}
+  FW_SOC_TYPE=-gp-vlab
+  BIN_EXT=-vlab
+fi
+if [[ $FW_SOC == *"zebu"* ]]; then
+  FW_SOC=${FW_SOC%-zebu}
+  FW_SOC_TYPE=-gp-zebu
+  BIN_EXT=-zebu
 fi
 
 export SCI_CLIENT_IN_SOC_DIR=$SCI_CLIENT_DIR/soc/sysfw/binaries
 
-if [ "$SOC" = "am65xx" ]; then
+if [ "$FW_SOC" = "am65x" ]; then
 export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V0
-export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-am65x-$SOC_TYPE.bin
-export SYSFW_SE_INNER_CERT=$SCI_CLIENT_OUT_SOC_DIR/ti-sci-cert-am65x-$SOC_TYPE.bin
-export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V0.h
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V0$BIN_EXT.h
+export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/sysfw$BIN_EXT.bin
+export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC$FW_SOC_TYPE.bin
+export SYSFW_SE_INNER_CERT=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC${FW_SOC_TYPE%-enc}-cert.bin
+export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/sysfw_cert.bin
+export SYSFW_LOAD_ADDR=0x40000
 fi
 
-if [ "$SOC" = "j721e" ]; then
+if [ "$FW_SOC" = "am65x_sr2" ]; then
+export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V0
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V0_sr2$BIN_EXT.h
+export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/sysfw_sr2$BIN_EXT.bin
+export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC$FW_SOC_TYPE.bin
+export SYSFW_SE_INNER_CERT=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC${FW_SOC_TYPE%-enc}-cert.bin
+export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/sysfw_cert.bin
+export SYSFW_LOAD_ADDR=0x40000
+fi
+
+if [ "$FW_SOC" = "j721e" ]; then
 export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V1
-export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-j721e-$SOC_TYPE.bin
-export SYSFW_SE_INNER_CERT=$SCI_CLIENT_OUT_SOC_DIR/ti-sci-cert-j721e-$SOC_TYPE.bin
-export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V1.h
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V1$BIN_EXT.h
+export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/tifs$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.bin
+export SYSFW_LOAD_ADDR=0x40000
 fi
 
+if [ "$FW_SOC" = "j721e_sr1_1" ]; then
+export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V1
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V1_sr1.1$BIN_EXT.h
+export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/tifs_sr1.1$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_sr1.1.bin
+export SYSFW_LOAD_ADDR=0x40000
+fi
+
+
+if [ "$FW_SOC" = "j7200" ]; then
+export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V2
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V2$BIN_EXT.h
+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_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/tifs$BIN_EXT.bin
+export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/tifs_cert.bin
+export SYSFW_LOAD_ADDR=0x40000
+fi
+
+if [ "$FW_SOC" = "am64x" ]; then
+export SCI_CLIENT_OUT_SOC_DIR=$SCI_CLIENT_DIR/soc/V3
+SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/sysfw$BIN_EXT.bin
+export SCICLIENT_FIRMWARE_HEADER=sciclient_firmware_V3$BIN_EXT.h
+export FIRMWARE_SILICON=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC$FW_SOC_TYPE.bin
+export SYSFW_SE_INNER_CERT=$SCI_CLIENT_IN_SOC_DIR/ti-sci-firmware-$FW_SOC${FW_SOC_TYPE%-enc}-cert.bin
 export SYSFW_SE_CUST_CERT=$SCI_CLIENT_OUT_SOC_DIR/sysfw_cert.bin
-export SYSFW_SE_SIGNED=$SCI_CLIENT_OUT_SOC_DIR/sysfw.bin
+export SYSFW_LOAD_ADDR=0x44000
+fi
+
 
 # SBL_CERT_GEN may already be depending on how this is called
 export SBL_CERT_GEN="${SBL_CERT_GEN:-$ROOTDIR/ti/build/makerules/x509CertificateGen.sh}"
@@ -112,27 +175,29 @@ fi
 
 $ECHO "Building the bin2c generation c tool"
 cd $SCI_CLIENT_DIR/tools/bin2c/
-$RM $BIN2C_EXE
+$RM -f $BIN2C_EXE
 $MAKE bin2c.c -o $BIN2C_EXE
 cd -
 
 $CHMOD a+x $SBL_CERT_GEN
 $CHMOD a+x $BIN2C_GEN
 
-if [ "$SOC_TYPE" == "gp" ]; then
+if [[ $FW_SOC == *"gp"* || $FW_SOC_TYPE == *"gp"* ]]; then
 $ECHO "Generating the Header file for " $FIRMWARE_SILICON
 export SBL_CERT_KEY=$ROOTDIR/ti/build/makerules/rom_degenerateKey.pem
-$SBL_CERT_GEN -b $FIRMWARE_SILICON -o $SYSFW_SE_SIGNED -c DMSC_I -l 0x40000 -k $SBL_CERT_KEY
+$SBL_CERT_GEN -b $FIRMWARE_SILICON -o $SYSFW_SE_SIGNED -c DMSC_I -l $SYSFW_LOAD_ADDR -k $SBL_CERT_KEY
 else
 $ECHO "Generating outer certificate for " $SYSFW_SE_INNER_CERT
 export SBL_CERT_KEY=$ROOTDIR/ti/build/makerules/k3_dev_mpk.pem
-$SBL_CERT_GEN -b $SYSFW_SE_INNER_CERT -o $SYSFW_SE_CUST_CERT -c DMSC_O -l 0x40000 -k $SBL_CERT_KEY
+$SBL_CERT_GEN -b $SYSFW_SE_INNER_CERT -o $SYSFW_SE_CUST_CERT -c DMSC_O -l $SYSFW_LOAD_ADDR -k $SBL_CERT_KEY
 
 $ECHO "Generating the Header file for " $FIRMWARE_SILICON
 $CAT $SYSFW_SE_CUST_CERT $FIRMWARE_SILICON > $SYSFW_SE_SIGNED
-$RM $SYSFW_SE_CUST_CERT
+$RM -f $SYSFW_SE_CUST_CERT
 fi
 
+$ECHO "Generating the Header file for the soc in the folder"
 $BIN2C_GEN $SYSFW_SE_SIGNED $SCICLIENT_FIRMWARE_HEADER SCICLIENT_FIRMWARE > $SCI_CLIENT_OUT_SOC_DIR/$SCICLIENT_FIRMWARE_HEADER
 
 $ECHO "Done."
+