binman: Avoid needing the section size in advance
authorSimon Glass <sjg@chromium.org>
Sat, 24 Aug 2019 13:23:03 +0000 (07:23 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 15 Oct 2019 14:40:02 +0000 (08:40 -0600)
commitbf4d0e284267067a65000f37c66cd4f05253381f
tree5341bfacb7d46800bfc05ae29dd8bc726e13dc3e
parentdfdd2b62173e473580e51804b718389bad37ee3a
binman: Avoid needing the section size in advance

Entries which include a section and need to obtain its contents call
GetData(), as with any other entry. But the current implementation of this
method in entry_Section requires the size of the section to be known. If
it is unknown, an error is produced, since size is None:

   TypeError: can't multiply sequence by non-int of type 'NoneType'

There is no need to know the size in advance since the code can be
adjusted to build up the section piece by piece, instead of patching each
entry into an existing bytearray.

Update the code to handle this and add a test.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/binman/etype/section.py
tools/binman/ftest.py
tools/binman/test/151_x86_rom_ifwi_section.dts [new file with mode: 0644]