aboutsummaryrefslogtreecommitdiff
path: root/arch/sandbox
diff options
context:
space:
mode:
authorSimon Glass2022-10-20 18:23:15 -0600
committerTom Rini2022-10-31 11:04:00 -0400
commit8de9896aa61579da62103aa06e9ab49006b3e5ab (patch)
tree933d216833046e05a1673ea090b274b8949209a9 /arch/sandbox
parenta56f663f07073713042bb0fd08053aeb667e717b (diff)
sandbox: Add an image for VPL
Use binman to build an image which includes all the U-Boot phases so that a full VBE boot can take place with just that image.bin file. Attach the image file to mmc2 so it can be loaded. VBE is used to load images in two phases: - In VPL, VBE decides which SPL image to load - In SPL, VBE decides which U-Boot image to load The latter should really be determined by VPL, since it does the full signature verification on the selected configuration. However, we have separate configurations for SPL and U-Boot proper, so for now we keep it simple and have SPL do its own verification. This will need to be tidied up later. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/sandbox')
-rw-r--r--arch/sandbox/dts/sandbox.dts7
-rw-r--r--arch/sandbox/dts/sandbox_vpl.dtsi84
-rw-r--r--arch/sandbox/dts/test.dts6
3 files changed, 96 insertions, 1 deletions
diff --git a/arch/sandbox/dts/sandbox.dts b/arch/sandbox/dts/sandbox.dts
index 21f00fcab5e..1b60914a01c 100644
--- a/arch/sandbox/dts/sandbox.dts
+++ b/arch/sandbox/dts/sandbox.dts
@@ -21,6 +21,9 @@
spi0 = &spi;
};
+ binman: binman {
+ };
+
memory {
reg = <0 CONFIG_SYS_SDRAM_SIZE>;
};
@@ -103,3 +106,7 @@
#include "sandbox.dtsi"
#include "cros-ec-keyboard.dtsi"
#include "sandbox_pmic.dtsi"
+
+#ifdef CONFIG_SANDBOX_VPL
+#include "sandbox_vpl.dtsi"
+#endif
diff --git a/arch/sandbox/dts/sandbox_vpl.dtsi b/arch/sandbox/dts/sandbox_vpl.dtsi
new file mode 100644
index 00000000000..1fba537f135
--- /dev/null
+++ b/arch/sandbox/dts/sandbox_vpl.dtsi
@@ -0,0 +1,84 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Devicetree file for VPL (Verifying Program Loader)
+ */
+
+&binman {
+ u-boot-tpl-elf {
+ no-expanded;
+ };
+ u-boot-vpl-elf {
+ no-expanded;
+ };
+ fw-update {
+ type = "section";
+
+ /*
+ * provide plenty of space for ELF files with debug info so that
+ * gdb can be used
+ */
+ offset = <0x400000>;
+ size = <0xdffc00>;
+
+ fit {
+ fit,external-offset = <0>;
+ description = "AP firmware";
+ images {
+ spl {
+ description = "U-Boot SPL";
+ type = "firmware";
+ phase = "spl";
+ arch = "sandbox";
+ os = "u-boot";
+ compression = "none";
+
+ hash-1 {
+ algo = "sha256";
+ };
+
+ u-boot-spl-elf {
+ };
+ };
+ u-boot {
+ description = "U-Boot";
+ type = "firmware";
+ phase = "u-boot";
+ arch = "sandbox";
+ os = "u-boot";
+ compression = "none";
+
+ hash-1 {
+ algo = "sha256";
+ };
+
+ u-boot-elf {
+ };
+ };
+ };
+
+ configurations {
+ conf-1 {
+ compatible = "sandbox";
+ description = "AP Firmware v1";
+ firmware = "spl", "u-boot";
+ signature {
+ algo = "sha1,rsa2048";
+ key-name-hint = "dev";
+ sign-images = "firmware";
+ };
+ };
+ };
+ };
+ };
+ state {
+ type = "fill";
+ size = <0x200>;
+ };
+ version {
+ type = "text";
+ text = "1.2.3";
+ size = <0x200>;
+ };
+ fdtmap {
+ };
+};
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 2bcc2e84a74..75eeaf8ca1f 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -64,7 +64,7 @@
osd0 = "/osd";
};
- binman {
+ binman: binman {
};
config {
@@ -1707,3 +1707,7 @@
#include "sandbox_pmic.dtsi"
#include "cros-ec-keyboard.dtsi"
+
+#ifdef CONFIG_SANDBOX_VPL
+#include "sandbox_vpl.dtsi"
+#endif