blob: 834c07f79b39a6140e687d6e7519ab57d926e863 [file] [log] [blame]
#!/bin/bash
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# This utility uses cbootimage to signs a bootstub so that the Tegra boot ROM
# will load and run it.
# Include common CrOS utilities.
. "/usr/lib/crosutils/common.sh"
# Command line options
DEFINE_string bct "" "DDR memory timing BCT file."
DEFINE_string bootstub "" "Bootstub firmware image to sign."
DEFINE_string output "bootstub.bin" "Signed bootstub + BCT output file."
DEFINE_string text_base "0xe08000" "Load address and entry point for bootstub."
DEFINE_string config "" "Directory for temporary configuration files."
# Parse command line.
FLAGS "$@" || exit 1
eval set -- "${FLAGS_ARGV}"
# Die on errors.
set -e
CROS_LOG_PREFIX="cros_sign_bootstub"
function construct_config() {
local bct_file="$1"
local bootstub="$2"
local text_base="$3"
echo "Version = 1;"
echo "Redundancy = 1;"
echo "Bctfile = ${bct_file};"
echo "BootLoader = ${bootstub},${text_base},${text_base},Complete;"
}
###############################################################################
check_for_file "BCT" " " "${FLAGS_bct}"
check_for_file "bootstub" " " "${FLAGS_bootstub}"
check_for_tool "cbootimage" "cbootimage"
if [ -z "${FLAGS_config}" ]; then
config=$(mktemp -d)
trap "rm -rf ${config}" EXIT
else
mkdir -p "${FLAGS_config}"
config=${FLAGS_config}
fi
construct_config \
"${FLAGS_bct}" \
"${FLAGS_bootstub}" \
"${FLAGS_text_base}" > "${config}/boot.cfg"
cbootimage "${config}/boot.cfg" "${FLAGS_output}"