blob: aea73c73cc99b3bb198bf5b1c0408470ffc08d58 [file] [log] [blame]
Leonardo Sandoval9dfdd1b2020-08-06 17:08:11 -05001#!/usr/bin/env bash
Fathi Boudra422bf772019-12-02 11:10:16 +02002#
Manish V Badarkhe224bf182022-03-07 21:14:07 +00003# Copyright (c) 2019-2022 Arm Limited. All rights reserved.
Fathi Boudra422bf772019-12-02 11:10:16 +02004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7
8set -u
9
Maksims Svecovsa6c4dc22021-10-21 12:01:17 +010010# Pre-built SCP/MCP binaries
Jayanth Dodderi Chidanandcd8da662022-04-06 14:11:00 +010011scp_bl1_url="$scp_mcp_downloads/juno/release/juno-bl1-bypass.bin"
12scp_bl2_url="$scp_mcp_downloads/juno/release/juno-bl2.bin"
Alexei Fedorov812ba0a2021-04-27 18:50:47 +010013
Zelalem219df412020-05-17 19:21:20 -050014psci_reset2_scp_bl2_url="$tfa_downloads/psci_reset2/scp_bl2.bin"
Fathi Boudra422bf772019-12-02 11:10:16 +020015uboot_bl33_url="$linaro_release/juno-latest-oe-uboot/SOFTWARE/bl33-uboot.bin"
Zelalem219df412020-05-17 19:21:20 -050016optee_fip_url="$linaro_release/juno-ack-android-uboot/SOFTWARE/fip.bin"
17
Fathi Boudra422bf772019-12-02 11:10:16 +020018juno_recovery_root="$linaro_release/juno-latest-oe-uboot"
19
20uboot32_fip_url="$linaro_release/juno32-latest-oe-uboot/SOFTWARE/fip.bin"
21juno32_recovery_root="$linaro_release/juno32-latest-busybox-uboot"
Zelalem219df412020-05-17 19:21:20 -050022juno32_recovery_root_oe="$linaro_release/juno32-latest-oe-uboot"
Fathi Boudra422bf772019-12-02 11:10:16 +020023
Leonardo Sandovalbe690bd2020-10-12 17:59:39 -050024juno_rootfs_url="${juno_rootfs_url:-$linaro_release/linaro-image-minimal-genericarmv8-20170127-888.rootfs.tar.gz}"
25juno32_rootfs_url="${juno32_rootfs_url:-$linaro_release/linaro-image-alip-genericarmv7a-20150710-336.rootfs.tar.gz}"
Fathi Boudra422bf772019-12-02 11:10:16 +020026
Fathi Boudra422bf772019-12-02 11:10:16 +020027get_optee_bin() {
Zelalem219df412020-05-17 19:21:20 -050028 local tmpdir="$(mktempdir)"
29
30 pushd "$tmpdir"
31 extract_fip "$optee_fip_url"
32 mv "tos-fw.bin" "bl32.bin"
Fathi Boudra422bf772019-12-02 11:10:16 +020033 archive_file "bl32.bin"
Zelalem219df412020-05-17 19:21:20 -050034 popd
Fathi Boudra422bf772019-12-02 11:10:16 +020035}
36
Zelalem0a944bb2021-04-09 17:16:35 -050037# Get scp_bl1 and scp_bl2 binaries
38# from $url and store as $saveas
39get_scp_bl_bin() {
40 url="$url" saveas="$saveas" fetch_file
41}
42
Fathi Boudra422bf772019-12-02 11:10:16 +020043get_scp_bl2_bin() {
44 url="$scp_bl2_url" saveas="scp_bl2.bin" fetch_file
45 archive_file "scp_bl2.bin"
46}
47
Zelalem219df412020-05-17 19:21:20 -050048get_psci_reset2_scp_bl2_bin() {
49 url="$psci_reset2_scp_bl2_url" saveas="scp_bl2.bin" fetch_file
50 archive_file "scp_bl2.bin"
51}
52
Fathi Boudra422bf772019-12-02 11:10:16 +020053get_uboot32_bin() {
54 local tmpdir="$(mktempdir)"
55
56 pushd "$tmpdir"
57 extract_fip "$uboot32_fip_url"
58 mv "nt-fw.bin" "uboot.bin"
59 archive_file "uboot.bin"
60 popd
61}
62
63get_uboot_bin() {
64 url="$uboot_bl33_url" saveas="uboot.bin" fetch_file
65 archive_file "uboot.bin"
66}
67
68gen_recovery_image32() {
69 url="$juno32_recovery_root" gen_recovery_image "$@"
70}
71
Zelalem219df412020-05-17 19:21:20 -050072gen_recovery_image32_oe() {
73 url="$juno32_recovery_root_oe" gen_recovery_image "$@"
74}
75
Fathi Boudra422bf772019-12-02 11:10:16 +020076gen_recovery_image() {
77 local zip_dir="$workspace/juno_recovery"
78 local zip_file="${zip_dir}.zip"
79 local url="${url:-$juno_recovery_root}"
80
81 saveas="$zip_dir" url="$url" fetch_directory
82 if [ "$*" ]; then
Zelalem0a944bb2021-04-09 17:16:35 -050083 # Copy scp_bl1 scp_bl2 binaries. Copying then first
84 # so that the subsequent copy can replace it if necessary.
85 url="$scp_bl1_url" saveas="$zip_dir/SOFTWARE/scp_bl1.bin" get_scp_bl_bin
86 url="$scp_bl2_url" saveas="$zip_dir/SOFTWARE/scp_bl2.bin" get_scp_bl_bin
Fathi Boudra422bf772019-12-02 11:10:16 +020087 cp -f "$@" "$zip_dir/SOFTWARE"
88 fi
89
90 # If an image.txt file was specified, replace all image.txt file inside
91 # the recovery with the specified one.
92 if upon "$image_txt"; then
93 find "$zip_dir" -name images.txt -exec cp -f "$image_txt" {} \;
94 fi
95
Leonardo Sandoval7fe8e552020-07-30 17:01:29 -050096 (cd "$zip_dir" && zip -rq "$zip_file" -- *)
Fathi Boudra422bf772019-12-02 11:10:16 +020097 archive_file "$zip_file"
98}
99
100gen_juno_yaml() {
Leonardo Sandovalbe690bd2020-10-12 17:59:39 -0500101 local yaml_file="$workspace/juno.yaml"
102 local job_file="$workspace/job.yaml"
Fathi Boudra422bf772019-12-02 11:10:16 +0200103 local payload_type="${payload_type:?}"
104
Nicola Mazzucatoa5192542022-05-13 17:13:24 +0100105 bin_mode="$mode" juno_revision="$juno_revision" \
Fathi Boudra422bf772019-12-02 11:10:16 +0200106 "$ci_root/script/gen_juno_${payload_type}_yaml.sh" > "$yaml_file"
107
Leonardo Sandovalbe690bd2020-10-12 17:59:39 -0500108 cp "$yaml_file" "$job_file"
Fathi Boudra422bf772019-12-02 11:10:16 +0200109 archive_file "$yaml_file"
Leonardo Sandovalbe690bd2020-10-12 17:59:39 -0500110 archive_file "$job_file"
Fathi Boudra422bf772019-12-02 11:10:16 +0200111}
112
113juno_aarch32_runtime() {
Fathi Boudra422bf772019-12-02 11:10:16 +0200114 echo "Building BL32 in AArch32 for Juno:"
115 sed 's/^/\t/' < "${config_file:?}"
Manish V Badarkhe224bf182022-03-07 21:14:07 +0000116
117 # Build BL32 for Juno in AArch32. Since build_tf does a realclean, we'll
118 # lose the tools binaries. Build that again for later use.
119 if upon "$(get_tf_opt TRUSTED_BOARD_BOOT)"; then
120 tf_build_targets="fiptool certtool bl32"
121 else
122 tf_build_targets="fiptool bl32"
123 fi
124
125 tf_build_config="$config_file" tf_build_targets="$tf_build_targets" \
Fathi Boudra422bf772019-12-02 11:10:16 +0200126 build_tf
127
128 # Copy BL32 to a temporary directoy, and update it in the FIP
129 local tmpdir="$(mktempdir)"
130 from="$tf_root/build/juno/$mode" to="$tmpdir" collect_build_artefacts
131 bin_name="tos-fw" src="$tmpdir/bl32.bin" fip_update
132}
133
Fathi Boudra422bf772019-12-02 11:10:16 +0200134set +u