android13/u-boot/arch/arm/mach-rockchip/make_fit_boot.sh

112 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (C) 2020 Rockchip Electronics Co., Ltd
#
# SPDX-License-Identifier: GPL-2.0+
#
# Process args and auto set variables
source ./${srctree}/arch/arm/mach-rockchip/fit_args.sh
if [ ! -f ${srctree}/images/ramdisk ]; then
touch ${srctree}/images/ramdisk
fi
if [ "${COMPRESSION}" == "gzip" ]; then
gzip -k -f -9 ${srctree}/images/kernel
SUFFIX=".gz"
elif [ "${COMPRESSION}" == "lz4" ]; then
${srctree}/scripts/compress.sh lz4 ${srctree}/images/kernel
SUFFIX=".lz4"
else
COMPRESSION="none"
SUFFIX=
fi
if grep -q '^CONFIG_FIT_ENABLE_RSASSA_PSS_SUPPORT=y' .config ; then
ALGO_PADDING=" padding = \"pss\";"
fi
cat << EOF
/*
* Copyright (C) 2020 Fuzhou Rockchip Electronics Co., Ltd
*
* Minimal dts for a FIT image.
*
* SPDX-License-Identifier: GPL-2.0
*/
/dts-v1/;
/ {
description = "FIT source file for Linux";
#address-cells = <1>;
images {
fdt {
data = /incbin/("./images/dtb");
type = "flat_dt";
arch = "${ARCH}";
compression = "none";
load = <0xffffff00>;
hash {
algo = "sha256";
};
};
kernel {
data = /incbin/("./images/kernel${SUFFIX}");
compression = "${COMPRESSION}";
type = "kernel";
arch = "${ARCH}";
os = "linux";
entry = <0xffffff01>;
load = <0xffffff01>;
hash {
algo = "sha256";
};
};
ramdisk {
data = /incbin/("./images/ramdisk");
compression = "none";
type = "ramdisk";
arch = "${ARCH}";
os = "linux";
load = <0xffffff02>;
hash {
algo = "sha256";
};
};
resource {
data = /incbin/("./images/second");
type = "multi";
arch = "${ARCH}";
compression = "none";
hash {
algo = "sha256";
};
};
};
configurations {
default = "conf";
conf {
description = "Boot Linux kernel with FDT blob";
rollback-index = <0x0>;
fdt = "fdt";
kernel = "kernel";
ramdisk = "ramdisk";
multi = "resource";
signature {
algo = "sha256,rsa2048";
${ALGO_PADDING}
key-name-hint = "dev";
sign-images = "fdt", "kernel", "ramdisk", "multi";
};
};
};
};
EOF