All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kever Yang <kever.yang@rock-chips.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/3] rockchip: rk3399-evb: add script for atf fit
Date: Mon, 21 Aug 2017 21:00:16 +0800	[thread overview]
Message-ID: <1503320418-8537-1-git-send-email-kever.yang@rock-chips.com> (raw)

Add a script to generate binaries from bl31.elf, and generate
u-boot.its file for FIT image including u-boot, dtb and atf binaries.

Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
Tested-by: Mark Kettenis <kettenis@openbsd.org>
---

Changes in v2: None

 board/rockchip/evb_rk3399/mk_fit_atf.sh | 110 ++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100755 board/rockchip/evb_rk3399/mk_fit_atf.sh

diff --git a/board/rockchip/evb_rk3399/mk_fit_atf.sh b/board/rockchip/evb_rk3399/mk_fit_atf.sh
new file mode 100755
index 0000000..146550a
--- /dev/null
+++ b/board/rockchip/evb_rk3399/mk_fit_atf.sh
@@ -0,0 +1,110 @@
+#!/bin/sh
+#
+# script to generate FIT image source for rk3399 boards with
+# ARM Trusted Firmware and multiple device trees (given on the command line)
+#
+# usage: $0 <dt_name> [<dt_name> [<dt_name] ...]
+
+[ -z "$BL31" ] && BL31="bl31.elf"
+
+if [ ! -f $BL31 ]; then
+	echo "WARNING: BL31 file $BL31 NOT found, resulting binary is non-functional" >&2
+	BL31=/dev/null
+fi
+
+#tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl.bin idbspl.img
+
+cat << __HEADER_EOF
+/dts-v1/;
+
+/ {
+	description = "Configuration to load ATF before U-Boot";
+	#address-cells = <1>;
+
+	images {
+		uboot at 1 {
+			description = "U-Boot (64-bit)";
+			data = /incbin/("u-boot-nodtb.bin");
+			type = "standalone";
+			arch = "arm64";
+			compression = "none";
+			load = <0x00200000>;
+		};
+__HEADER_EOF
+
+atf_cnt=1
+
+for l in `readelf -l $BL31 | grep -A1 LOAD | gawk --non-decimal-data \
+	'{if (NR % 2) {printf "%d:0x%x:", $2,$4} else {printf "%d\n", $1}}'`
+do
+	offset=${l%%:*}
+	ll=${l#*:}
+	phy_offset=${ll%:*}
+	filesz=${ll##*:}
+
+	#echo "$offset/$phy_offset/$filesz"
+
+	of=rk3399bl31_${phy_offset}.bin
+	dd if=$BL31 of=$of bs=1 skip=$offset count=$filesz
+
+	out_string="${out_string}:${phy_offset}"
+
+	cat << __ATF1_EOF
+		atf@$atf_cnt {
+			description = "ARM Trusted Firmware";
+			data = /incbin/("$of");
+			type = "firmware";
+			arch = "arm64";
+			compression = "none";
+			load = <$phy_offset>;
+__ATF1_EOF
+	if [ "$atf_cnt" -eq 1 ]; then
+		cat << __ATF2_EOF
+			entry = <$phy_offset>;
+__ATF2_EOF
+		fi
+	cat << __ATF3_EOF
+		};
+__ATF3_EOF
+	atf_cnt=$((atf_cnt + 1))
+done
+
+cnt=1
+for dtname in $*
+do
+	cat << __FDT_IMAGE_EOF
+		fdt@$cnt {
+			description = "$(basename $dtname .dtb)";
+			data = /incbin/("$dtname");
+			type = "flat_dt";
+			compression = "none";
+		};
+__FDT_IMAGE_EOF
+	cnt=$((cnt+1))
+done
+
+cat << __CONF_HEADER_EOF
+	};
+	configurations {
+		default = "config at 1";
+
+__CONF_HEADER_EOF
+
+cnt=1
+for dtname in $*
+do
+	cat << __CONF_SECTION_EOF
+		config@$cnt {
+			description = "$(basename $dtname .dtb)";
+			firmware = "uboot at 1";
+			loadables = "atf at 1","atf at 2","atf at 3";
+			fdt = "fdt@1";
+		};
+__CONF_SECTION_EOF
+	cnt=$((cnt+1))
+done
+
+cat << __ITS_EOF
+	};
+};
+__ITS_EOF
-- 
1.9.1

             reply	other threads:[~2017-08-21 13:00 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-21 13:00 Kever Yang [this message]
2017-08-21 13:00 ` [U-Boot] [PATCH v2 2/3] rockchip: firefly-rk3399: add FIT for rk3399 Kever Yang
2017-09-12 19:55   ` [U-Boot] [U-Boot, v2, " Philipp Tomsich
2017-08-21 13:00 ` [U-Boot] [PATCH v2 3/3] rockchip: evb-rk3399: update document for board bring up Kever Yang
2017-08-30 15:10   ` Jagan Teki
2017-08-31  1:07     ` Kever Yang
2017-08-31  6:13       ` Jagan Teki
2017-09-13  1:16         ` Kever Yang
2017-09-12 19:55   ` [U-Boot] [U-Boot, v2, " Philipp Tomsich
2017-09-12 19:55 ` [U-Boot] [U-Boot, v2, 1/3] rockchip: rk3399-evb: add script for atf fit Philipp Tomsich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1503320418-8537-1-git-send-email-kever.yang@rock-chips.com \
    --to=kever.yang@rock-chips.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.