@@ -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
new file mode 100644
@@ -0,0 +1,78 @@
+// 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";
+ arch = "sandbox";
+ os = "u-boot";
+ compression = "none";
+
+ u-boot-spl-elf {
+ no-expanded;
+ };
+ };
+ u-boot {
+ description = "U-Boot";
+ type = "firmware";
+ arch = "sandbox";
+ os = "u-boot";
+ compression = "none";
+
+ u-boot-elf {
+ no-expanded;
+ };
+ };
+ };
+
+ configurations {
+ conf-spl-1 {
+ compatible = "sandbox";
+ description = "AP Firmware v1 (SPL)";
+ phase = "spl";
+ firmware = "spl";
+ };
+ conf-1 {
+ compatible = "sandbox";
+ description = "AP Firmware v1";
+ phase = "u-boot";
+ firmware = "u-boot";
+ };
+ };
+ };
+ };
+ state {
+ type = "fill";
+ size = <0x200>;
+ };
+ version {
+ type = "text";
+ text = "1.2.3";
+ size = <0x200>;
+ };
+ fdtmap {
+ };
+};
@@ -64,7 +64,7 @@
osd0 = "/osd";
};
- binman {
+ binman: binman {
};
config {
@@ -1691,3 +1691,7 @@
#include "sandbox_pmic.dtsi"
#include "cros-ec-keyboard.dtsi"
+
+#ifdef CONFIG_SANDBOX_VPL
+#include "sandbox_vpl.dtsi"
+#endif
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. 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> --- arch/sandbox/dts/sandbox.dts | 7 +++ arch/sandbox/dts/sandbox_vpl.dtsi | 78 +++++++++++++++++++++++++++++++ arch/sandbox/dts/test.dts | 6 ++- 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 arch/sandbox/dts/sandbox_vpl.dtsi