binman: Update Entry.WriteData() to handle special sections
authorSimon Glass <sjg@chromium.org>
Sat, 20 Jul 2019 18:24:05 +0000 (12:24 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 29 Jul 2019 15:38:06 +0000 (09:38 -0600)
commit7210c89eac7fb68947f5f31372d9f1e93f42df0c
treef1664e112079402eb0296f8e24803fca0dafaa5a
parenta9cd39ef751efdd05a3a5ccae13e28d8a993292d
binman: Update Entry.WriteData() to handle special sections

At present this method assumes that the parent section does not need
to recalculate its position or adjust any metadata it may contain. But
when the entry changes size this may not be true. Also if the parent
section is more than just a container (e.g. it is a CBFS) then the
section may need to regenerate its output.

Add a new WriteChildData() method to sections and call this from the
WriteData() method, to handle this situation.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/entry.py
tools/binman/etype/cbfs.py
tools/binman/etype/section.py