The VPL image is immutable and has a single VPL binary plus a devicetree
for each board we need to support.

The devicetree is run through fdtgrep to remove unwanted nodes and
properties and reduce its size.

Changes in v2:
- Move VPL things into a separate file

Signed-off-by: Simon Glass <s...@chromium.org>
---

(no changes since v1)

 arch/arm/dts/rockchip-vpl-u-boot.dtsi | 91 +++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)

diff --git a/arch/arm/dts/rockchip-vpl-u-boot.dtsi 
b/arch/arm/dts/rockchip-vpl-u-boot.dtsi
index 325c15f9fef..a02f44d27d2 100644
--- a/arch/arm/dts/rockchip-vpl-u-boot.dtsi
+++ b/arch/arm/dts/rockchip-vpl-u-boot.dtsi
@@ -57,4 +57,95 @@
                        };
                };
        };
+
+       simple-bin {
+               vpl {
+                       type = "fit";
+                       offset = <(CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 
0x200 + 0x8000)>;
+                       description = "FIT image for U-Boot TPL";
+                       #address-cells = <1>;
+                       fit,fdt-list = "of-list";
+                       fit,align = <512>;
+                       fit,external-offset = <0>;
+                       images {
+                               image-vpl {
+                                       description = "U-Boot VPL";
+                                       type = "firmware";
+                                       os = "u-boot";
+                                       arch = ARCH;
+                                       compression = "lz4";
+                                       load = <CONFIG_VPL_TEXT_BASE>;
+                                       entry = <CONFIG_VPL_TEXT_BASE>;
+                                       section {
+                                               compress = "lz4";
+                                               u-boot-vpl-nodtb {
+                                                       symbols-base = <0>;
+                                               };
+                                               u-boot-vpl-bss-pad {
+                                               };
+                                       };
+                               };
+                               @fdt-SEQ {
+                                       description = "fdt-NAME";
+                                       compression = "none";
+                                       type = "flat_dt";
+                                       fit,fdt-phase = "vpl";
+                               };
+                       };
+                       configurations {
+                               default = "@config-DEFAULT-SEQ";
+                               @config-SEQ {
+                                       description = "NAME.dtb";
+                                       fdt = "fdt-SEQ";
+                                       fit,firmware = "image-vpl";
+                                       fit,loadables;
+                                       fit,compatible;
+                               };
+                       };
+               };
+# ifdef CONFIG_BOOTMETH_VBE_ABREC
+               vbe-a {
+                       type = "section";
+                       offset = <(CONFIG_SPL_PAD_TO + 0x8000)>;
+                       spl-a {
+                               insert-template = <&spl_template>;
+                               size = <0x100000>;
+                       };
+
+                       u-boot-a {
+                               insert-template = <&common_part>;
+                       };
+               };
+               vbe-b {
+                       type = "section";
+                       offset = <0x1000000>;
+                       spl-b {
+                               insert-template = <&spl_template>;
+                               size = <0x100000>;
+                       };
+
+                       u-boot-b {
+                               insert-template = <&common_part>;
+                       };
+               };
+               vbe-recovery {
+                       type = "section";
+                       offset = <0x1800000>;
+                       spl-recovery {
+                               insert-template = <&spl_template>;
+                               size = <0x100000>;
+                       };
+
+                       u-boot-recovery {
+                               insert-template = <&common_part>;
+                       };
+               };
+# else /* CONFIG_BOOTMETH_VBE_SIMPLE */
+               vbe {
+                       type = "fit";
+                       offset = <(CONFIG_SPL_PAD_TO + 0x8000)>;
+                       insert-template = <&common_part>;
+               };
+# endif /* VBE method */
+       };
 };
-- 
2.43.0

Reply via email to