blob: 99f01c0325bac04769ca70796d35f50040643866 [file] [log] [blame]
Bo Lv36091f52022-08-16 13:37:41 +08001#!/bin/bash
2
3set -e
4# set -x
5
6#
7# Variables
8#
9
10EXEC_BASEDIR=$(dirname $(readlink -f $0))
11ACPU_IMAGETOOL=${EXEC_BASEDIR}/../binary-tool/acpu-imagetool
12
13BASEDIR_TOP=$(readlink -f ${EXEC_BASEDIR}/..)
14
15#
16# Settings
17#
18
19BASEDIR_PAYLOAD=$1
20
21BASEDIR_NONCE="./nonce"
22
23CHIPSET_NAME=$3
24KEY_TYPE=$4
Bo Lv6aa7b002022-10-25 15:06:28 +080025SOC_FAMILY=$5
Bo Lv36091f52022-08-16 13:37:41 +080026CHIPSET_VARIANT_SUFFIX=$6
27
Bo Lv6aa7b002022-10-25 15:06:28 +080028BASEDIR_AESKEY_PROT_BL2="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl2/aes/${CHIPSET_NAME}"
29BASEDIR_RSAKEY_LVLX_BL2="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl2/rsa/${CHIPSET_NAME}"
Bo Lv36091f52022-08-16 13:37:41 +080030
Bo Lv6aa7b002022-10-25 15:06:28 +080031BASEDIR_AESKEY_PROT_BL31="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl31/aes/${CHIPSET_NAME}"
32BASEDIR_RSAKEY_LVLX_BL31="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl31/rsa/${CHIPSET_NAME}"
Bo Lv36091f52022-08-16 13:37:41 +080033
Bo Lv6aa7b002022-10-25 15:06:28 +080034BASEDIR_AESKEY_PROT_BL32="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl32/aes/${CHIPSET_NAME}"
35BASEDIR_RSAKEY_LVLX_BL32="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl32/rsa/${CHIPSET_NAME}"
Bo Lv36091f52022-08-16 13:37:41 +080036
Bo Lv6aa7b002022-10-25 15:06:28 +080037BASEDIR_AESKEY_PROT_BL40="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl40/aes/${CHIPSET_NAME}"
38BASEDIR_RSAKEY_LVLX_BL40="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/bl40/rsa/${CHIPSET_NAME}"
Bo Lv36091f52022-08-16 13:37:41 +080039
Bo Lv6aa7b002022-10-25 15:06:28 +080040BASEDIR_TEMPLATE="${BASEDIR_TOP}/keys/${KEY_TYPE}/${SOC_FAMILY}/chipset/cert-template/${CHIPSET_NAME}"
Bo Lv36091f52022-08-16 13:37:41 +080041
42BASEDIR_OUTPUT_BLOB=$2
43postfix=.signed
44#
45# Arguments
46#
47#stage 1
48BB1ST_ARGS="${BB1ST_ARGS}"
49
50### Input: template ###
51
52BB1ST_ARGS="${BB1ST_ARGS} --infile-template-bb1st=${BASEDIR_TEMPLATE}/bb1st${FEAT_BL2_TEMPLATE_TYPE}${CHIPSET_VARIANT_SUFFIX}.bin"
53
54### Input: payloads ###
55BB1ST_ARGS="${BB1ST_ARGS} --infile-bl2-payload=${BASEDIR_PAYLOAD}/bl2-payload.bin"
56
57### Input: Chipset Level-1/2 Private RSA keys
58
59BB1ST_ARGS="${BB1ST_ARGS} --infile-signkey-chipset-lvl1=${BASEDIR_RSAKEY_LVLX_BL2}/level-1-rsa-priv.pem"
60BB1ST_ARGS="${BB1ST_ARGS} --infile-signkey-chipset-lvl2=${BASEDIR_RSAKEY_LVLX_BL2}/level-2-rsa-priv.pem"
61
62### Input: pre-generated ProtKey for payloads
63BB1ST_ARGS="${BB1ST_ARGS} --infile-aes256-bl2-payload=${BASEDIR_AESKEY_PROT_BL2}/genkey-prot-bl2.bin"
64
Bo Lvcc4e9072022-12-07 20:25:25 +080065BB1ST_ARGS="${BB1ST_ARGS} --scs-family=s5"
Bo Lv6aa7b002022-10-25 15:06:28 +080066
Bo Lv36091f52022-08-16 13:37:41 +080067### Features, flags and switches ###
68
69### Output: blobs ###
70BB1ST_ARGS="${BB1ST_ARGS} --outfile-bb1st=${BASEDIR_OUTPUT_BLOB}/bb1st${FEAT_BL2_TEMPLATE_TYPE}${CHIPSET_VARIANT_SUFFIX}.bin.bl2-only"
71
72#
73# Main
74#
75
76set -x
77
78${ACPU_IMAGETOOL} \
79 create-boot-blobs \
80 ${BB1ST_ARGS}
81
82# vim: set tabstop=2 expandtab shiftwidth=2: