|
@@ -462,7 +462,14 @@ Order of image creation
|
|
|
|
|
|
Image creation proceeds in the following order, for each entry in the image.
|
|
|
|
|
|
-1. GetEntryContents() - the contents of each entry are obtained, normally by
|
|
|
+1. ProcessFdt() - process the device tree information as required by the
|
|
|
+particular entry. This may involve adding or deleting properties. If the
|
|
|
+processing is complete, this method should return True. If the processing
|
|
|
+cannot complete because it needs the ProcessFdt() method of another entry to
|
|
|
+run first, this method should return False, in which case it will be called
|
|
|
+again later.
|
|
|
+
|
|
|
+2. GetEntryContents() - the contents of each entry are obtained, normally by
|
|
|
reading from a file. This calls the Entry.ObtainContents() to read the
|
|
|
contents. The default version of Entry.ObtainContents() calls
|
|
|
Entry.GetDefaultFilename() and then reads that file. So a common mechanism
|
|
@@ -471,35 +478,35 @@ functions must return True when they have read the contents. Binman will
|
|
|
retry calling the functions a few times if False is returned, allowing
|
|
|
dependencies between the contents of different entries.
|
|
|
|
|
|
-2. GetEntryPositions() - calls Entry.GetPositions() for each entry. This can
|
|
|
+3. GetEntryPositions() - calls Entry.GetPositions() for each entry. This can
|
|
|
return a dict containing entries that need updating. The key should be the
|
|
|
entry name and the value is a tuple (pos, size). This allows an entry to
|
|
|
provide the position and size for other entries. The default implementation
|
|
|
of GetEntryPositions() returns {}.
|
|
|
|
|
|
-3. PackEntries() - calls Entry.Pack() which figures out the position and
|
|
|
+4. PackEntries() - calls Entry.Pack() which figures out the position and
|
|
|
size of an entry. The 'current' image position is passed in, and the function
|
|
|
returns the position immediately after the entry being packed. The default
|
|
|
implementation of Pack() is usually sufficient.
|
|
|
|
|
|
-4. CheckSize() - checks that the contents of all the entries fits within
|
|
|
+5. CheckSize() - checks that the contents of all the entries fits within
|
|
|
the image size. If the image does not have a defined size, the size is set
|
|
|
large enough to hold all the entries.
|
|
|
|
|
|
-5. CheckEntries() - checks that the entries do not overlap, nor extend
|
|
|
+6. CheckEntries() - checks that the entries do not overlap, nor extend
|
|
|
outside the image.
|
|
|
|
|
|
-6. ProcessEntryContents() - this calls Entry.ProcessContents() on each entry.
|
|
|
+7. ProcessEntryContents() - this calls Entry.ProcessContents() on each entry.
|
|
|
The default implementatoin does nothing. This can be overriden to adjust the
|
|
|
contents of an entry in some way. For example, it would be possible to create
|
|
|
an entry containing a hash of the contents of some other entries. At this
|
|
|
stage the position and size of entries should not be adjusted.
|
|
|
|
|
|
-7. WriteSymbols() - write the value of symbols into the U-Boot SPL binary.
|
|
|
+8. WriteSymbols() - write the value of symbols into the U-Boot SPL binary.
|
|
|
See 'Access to binman entry positions at run time' below for a description of
|
|
|
what happens in this stage.
|
|
|
|
|
|
-8. BuildImage() - builds the image and writes it to a file. This is the final
|
|
|
+9. BuildImage() - builds the image and writes it to a file. This is the final
|
|
|
step.
|
|
|
|
|
|
|