binman: Document how to handle dependent images
authorSimon Glass <sjg@chromium.org>
Thu, 18 Aug 2022 08:16:46 +0000 (02:16 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 26 Aug 2022 22:33:48 +0000 (16:33 -0600)
Binman does not support this properly at present. Add documentation about
it including a work-around.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/binman.rst

index 338b5500e82689151ab39a5364dbb36b8225a899..4ee6f41f35e76910521f18d7ae1d86e60fa861a9 100644 (file)
@@ -858,6 +858,55 @@ allow-repack:
     image description to be stored in the FDT and fdtmap.
 
 
+Image dependencies
+------------------
+
+Binman does not currently support images that depend on each other. For example,
+if one image creates `fred.bin` and then the next uses this `fred.bin` to
+produce a final `image.bin`, then the behaviour is undefined. It may work, or it
+may produce an error about `fred.bin` being missing, or it may use a version of
+`fred.bin` from a previous run.
+
+Often this can be handled by incorporating the dependency into the second
+image. For example, instead of::
+
+    binman {
+        multiple-images;
+
+        fred {
+            u-boot {
+            };
+            fill {
+                size = <0x100>;
+            };
+        };
+
+        image {
+            blob {
+                filename = "fred.bin";
+            };
+            u-boot-spl {
+            };
+        };
+
+you can do this::
+
+    binman {
+        image {
+            fred {
+                type = "section";
+                u-boot {
+                };
+                fill {
+                    size = <0x100>;
+                };
+            };
+            u-boot-spl {
+            };
+        };
+
+
+
 Hashing Entries
 ---------------
 
@@ -1688,6 +1737,7 @@ Some ideas:
 - Figure out how to make Fdt support changing the node order, so that
   Node.AddSubnode() can support adding a node before another, existing node.
   Perhaps it should completely regenerate the flat tree?
+- Support images which depend on each other
 
 --
 Simon Glass <sjg@chromium.org>