diff options
author | Tom Rini <trini@konsulko.com> | 2016-12-20 13:42:04 (GMT) |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-12-20 13:42:04 (GMT) |
commit | 36737f22b78a475c6bbc8a0467b51e4d95b52a7d (patch) | |
tree | 0983212512bde84015bff16e1e0900c359e004fa /tools/binman/etype/blob.py | |
parent | 23465119610f47b469a3929c077ece5859f77455 (diff) | |
parent | 68af10022442153f6f87958053fee030ad1cb57f (diff) | |
download | u-boot-36737f22b78a475c6bbc8a0467b51e4d95b52a7d.tar.xz |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'tools/binman/etype/blob.py')
-rw-r--r-- | tools/binman/etype/blob.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/binman/etype/blob.py b/tools/binman/etype/blob.py new file mode 100644 index 0000000..def2164 --- /dev/null +++ b/tools/binman/etype/blob.py @@ -0,0 +1,37 @@ +# Copyright (c) 2016 Google, Inc +# Written by Simon Glass <sjg@chromium.org> +# +# SPDX-License-Identifier: GPL-2.0+ +# +# Entry-type module for blobs, which are binary objects read from files +# + +from entry import Entry +import fdt_util +import tools + +class Entry_blob(Entry): + def __init__(self, image, etype, node): + Entry.__init__(self, image, etype, node) + self._filename = fdt_util.GetString(self._node, "filename", self.etype) + + def ObtainContents(self): + self._filename = self.GetDefaultFilename() + self._pathname = tools.GetInputFilename(self._filename) + self.ReadContents() + return True + + def ReadContents(self): + with open(self._pathname) as fd: + # We assume the data is small enough to fit into memory. If this + # is used for large filesystem image that might not be true. + # In that case, Image.BuildImage() could be adjusted to use a + # new Entry method which can read in chunks. Then we could copy + # the data in chunks and avoid reading it all at once. For now + # this seems like an unnecessary complication. + self.data = fd.read() + self.contents_size = len(self.data) + return True + + def GetDefaultFilename(self): + return self._filename |