#!/bin/bash # # Copyright (C) 2025 Amlogic, Inc. All rights reserved. # set -e # set -x # # Variables # EXEC_BASEDIR=$(dirname $(readlink -f $0)) ACPU_IMAGETOOL=${EXEC_BASEDIR}/../../binary-tool/acpu-imagetool SIGNPIPE_TOOL=${EXEC_BASEDIR}/../../binary-tool/demo-sign.py BASEDIR_TOP=$(readlink -f ${EXEC_BASEDIR}/..) declare -a BLX_BIN_SIZE=("262144" "524288") declare BL33_BIN_SIZE="1572864" # # Settings # #BASEDIR_DEVICE_TEMPLATE="${BASEDIR_ROOTRSA_X}/data/template/device" BASEDIR_CHIPSET_TEMPLATE=$1 BASEDIR_ROOT=${BASEDIR_ROOT:-$BASEDIR_TEMPLATE} #BASEDIR_AESKEY_PROT="${BASEDIR_ROOTRSA_X}/data/key/aesroot" #BASEDIR_RSAKEY_LVLX="${BASEDIR_ROOTRSA_X}/data/key/lvlxrsa" BASEDIR_PAYLOAD=$2 #BASEDIR_EPK="${BASEDIR_ROOTRSA_X}/data/epk" BASEDIR_OUTPUT=$3 input_postfix=.signed output_postfix=.device.signed echo "============ ROOTRSA_INDEX ${DEVICE_ROOTRSA_INDEX}" echo "============ KEY_DIR ${BASEDIR_ROOT}" echo "============ PROJECT ${PROJECT}" if [ -z "$PROJECT" ]; then BASEDIR_AESKEY_ROOT="${BASEDIR_ROOT}/root/aes/rootkey" BASEDIR_RSAKEY_ROOT="${BASEDIR_ROOT}/root/rsa" BASEDIR_BOOTBLOBS_RSAKEY_ROOT="${BASEDIR_ROOT}/boot-blobs/rsa/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_BOOTBLOBS_TEMPLATE_ROOT="${BASEDIR_ROOT}/boot-blobs/template/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_FIP_RSAKEY_ROOT="${BASEDIR_ROOT}/fip/rsa/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_FIP_AESKEY_ROOT="${BASEDIR_ROOT}/fip/aes/protkey" BASEDIR_FIP_TEMPLATE_ROOT="${BASEDIR_ROOT}/fip/template/rootrsa-${DEVICE_ROOTRSA_INDEX}" else BASEDIR_AESKEY_ROOT="${BASEDIR_ROOT}/root/aes/${PROJECT}/rootkey" BASEDIR_RSAKEY_ROOT="${BASEDIR_ROOT}/root/rsa/${PROJECT}" BASEDIR_BOOTBLOBS_RSAKEY_ROOT="${BASEDIR_ROOT}/boot-blobs/rsa/${PROJECT}/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_BOOTBLOBS_TEMPLATE_ROOT="${BASEDIR_ROOT}/boot-blobs/template/${PROJECT}/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_FIP_RSAKEY_ROOT="${BASEDIR_ROOT}/fip/rsa/${PROJECT}/rootrsa-${DEVICE_ROOTRSA_INDEX}" BASEDIR_FIP_AESKEY_ROOT="${BASEDIR_ROOT}/fip/aes/${PROJECT}/protkey" BASEDIR_FIP_TEMPLATE_ROOT="${BASEDIR_ROOT}/fip/template/${PROJECT}/rootrsa-${DEVICE_ROOTRSA_INDEX}" fi BASEDIR_DEVICE_TEMPLATE="${BASEDIR_FIP_TEMPLATE_ROOT}" # # Arguments # BLOB_NAME=$1 EXEC_ARGS="${EXEC_ARGS}" ### Input: ### EXEC_ARGS="${EXEC_ARGS} --infile-blob-bl3-tee=${BASEDIR_PAYLOAD}/blob-bl3-tee.bin.signed" EXEC_ARGS="${EXEC_ARGS} --infile-bl33-payload=${BASEDIR_PAYLOAD}/bl33-payload.bin" EXEC_ARGS="${EXEC_ARGS} --size-payload-bl33=$BL33_BIN_SIZE" ### Input: Device Level-3 private RSA keys and EPKs ### # Device Vendor binaries if [ "x" == "x${CONFIG_SIGNPIPE}" ]; then EXEC_ARGS="${EXEC_ARGS} --infile-signkey-device-lvl2=${BASEDIR_BOOTBLOBS_RSAKEY_ROOT}/key/level-2-rsa-priv.pem" fi if [ "y" != "${DEVICE_NO_CRYPTO_AES}" ]; then EXEC_ARGS="${EXEC_ARGS} --infile-aes256-bl33-payload=${BASEDIR_FIP_AESKEY_ROOT}/genkey-prot-bl33.bin" fi ### Features, flags and switches ### EXEC_ARGS="${EXEC_ARGS} --scs-family=c4" # arb info EXEC_ARGS="${EXEC_ARGS} --val-device-vendor-segid=${DEVICE_VENDOR_SEGID}" EXEC_ARGS="${EXEC_ARGS} --val-device-tee-vers=${DEVICE_TEE_VERS}" EXEC_ARGS="${EXEC_ARGS} --val-device-ree-vers=${DEVICE_REE_VERS}" ### Output: Device FIP ### EXEC_ARGS="${EXEC_ARGS} --outfile-blob-bl3-ree=${BASEDIR_OUTPUT}/blob-bl3-ree.bin${output_postfix}" EXEC_ARGS="${EXEC_ARGS} --outfile-blob-bl3-tee=${BASEDIR_OUTPUT}/blob-bl3-tee.bin${output_postfix}" #EXEC_ARGS="${EXEC_ARGS} --header-layout=compact" #echo ${EXEC_ARGS} # # Main # set -x if [ "x" == "x${CONFIG_SIGNPIPE}" ]; then ${ACPU_IMAGETOOL} \ create-boot-blobs \ ${EXEC_ARGS} else ${ACPU_IMAGETOOL} \ create-boot-blobs \ --cmd-signpipe-device-lvl2="${SIGNPIPE_TOOL} ${EXEC_BASEDIR}/../../../../dv_scs_keys/boot-blobs/rsa/${PROJECT}/rootrsa-${DEVICE_ROOTRSA_INDEX}/key/level-2-rsa-priv.pem" \ ${EXEC_ARGS} fi # vim: set tabstop=2 expandtab shiftwidth=2: