From 3817ad4c1c2d62be15f657e6647afcc93faf1d55 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 5 Mar 2022 20:19:04 -0700 Subject: binman: Make fake blobs zero-sized by default On x86 devices having even a small amount of data can cause an overlap between regions. For example, bayleybay complains when the intel-vga region overlaps with u-boot-ucode: ImagePos Offset Size Name 00000000 00800000 main-section ff800000 00000080 intel-descriptor ff800400 00000080 intel-me fff00000 00098f24 u-boot-with-ucode-ptr fff98f24 00001aa0 u-boot-dtb-with-ucode fff9a9d0 0002a000 u-boot-ucode fffb0000 00000080 intel-vga ... It is safer to use an empty file in most cases. Add an option to set the size for those uses that need it. Signed-off-by: Simon Glass Reviewed-by: Alper Nebi Yasak --- tools/binman/entry.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/binman/entry.py b/tools/binman/entry.py index 9d499f07aa..21d3457788 100644 --- a/tools/binman/entry.py +++ b/tools/binman/entry.py @@ -990,13 +990,14 @@ features to produce new behaviours. if self.missing: missing_list.append(self) - def check_fake_fname(self, fname): + def check_fake_fname(self, fname, size=0): """If the file is missing and the entry allows fake blobs, fake it Sets self.faked to True if faked Args: fname (str): Filename to check + size (int): Size of fake file to create Returns: tuple: @@ -1006,7 +1007,7 @@ features to produce new behaviours. if self.allow_fake and not pathlib.Path(fname).is_file(): outfname = tools.get_output_filename(os.path.basename(fname)) with open(outfname, "wb") as out: - out.truncate(1024) + out.truncate(size) self.faked = True tout.info(f"Entry '{self._node.path}': Faked file '{outfname}'") return outfname, True -- cgit v1.2.3