mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-11-28 14:11:29 +01:00
binman: Add an etype for external binary blobs
It is useful to be able to distinguish between ordinary blobs such as u-boot.bin and external blobs that cannot be build by the U-Boot build system. If the external blobs are not available for some reason, then we know that a value image cannot be built. Introduce a new 'blob-ext' entry type for that. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
34861d506c
commit
ce867ad7c8
@ -42,6 +42,16 @@ obtained from the list of available device-tree files, managed by the
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Entry: blob-ext: Entry containing an externally built binary blob
|
||||||
|
-----------------------------------------------------------------
|
||||||
|
|
||||||
|
Note: This should not be used by itself. It is normally used as a parent
|
||||||
|
class by other entry types.
|
||||||
|
|
||||||
|
See 'blob' for Properties / Entry arguments.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Entry: blob-named-by-arg: A blob entry which gets its filename property from its subclass
|
Entry: blob-named-by-arg: A blob entry which gets its filename property from its subclass
|
||||||
-----------------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
31
tools/binman/etype/blob_ext.py
Normal file
31
tools/binman/etype/blob_ext.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
# Copyright (c) 2016 Google, Inc
|
||||||
|
# Written by Simon Glass <sjg@chromium.org>
|
||||||
|
#
|
||||||
|
# Entry-type module for external blobs, not built by U-Boot
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from binman.etype.blob import Entry_blob
|
||||||
|
from dtoc import fdt_util
|
||||||
|
from patman import tools
|
||||||
|
from patman import tout
|
||||||
|
|
||||||
|
class Entry_blob_ext(Entry_blob):
|
||||||
|
"""Entry containing an externally built binary blob
|
||||||
|
|
||||||
|
Note: This should not be used by itself. It is normally used as a parent
|
||||||
|
class by other entry types.
|
||||||
|
|
||||||
|
See 'blob' for Properties / Entry arguments.
|
||||||
|
"""
|
||||||
|
def __init__(self, section, etype, node):
|
||||||
|
Entry_blob.__init__(self, section, etype, node)
|
||||||
|
self.external = True
|
||||||
|
|
||||||
|
def ObtainContents(self):
|
||||||
|
self._filename = self.GetDefaultFilename()
|
||||||
|
self._pathname = tools.GetInputFilename(self._filename)
|
||||||
|
self.ReadBlobContents()
|
||||||
|
return True
|
||||||
@ -3364,6 +3364,18 @@ class TestFunctional(unittest.TestCase):
|
|||||||
# Just check that the data appears in the file somewhere
|
# Just check that the data appears in the file somewhere
|
||||||
self.assertIn(U_BOOT_SPL_DATA, data)
|
self.assertIn(U_BOOT_SPL_DATA, data)
|
||||||
|
|
||||||
|
def testExtblob(self):
|
||||||
|
"""Test an image with an external blob"""
|
||||||
|
data = self._DoReadFile('157_blob_ext.dts')
|
||||||
|
self.assertEqual(REFCODE_DATA, data)
|
||||||
|
|
||||||
|
def testExtblobMissing(self):
|
||||||
|
"""Test an image with a missing external blob"""
|
||||||
|
with self.assertRaises(ValueError) as e:
|
||||||
|
self._DoReadFile('158_blob_ext_missing.dts')
|
||||||
|
self.assertIn("Filename 'missing-file' not found in input path",
|
||||||
|
str(e.exception))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
14
tools/binman/test/157_blob_ext.dts
Normal file
14
tools/binman/test/157_blob_ext.dts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
blob-ext {
|
||||||
|
filename = "refcode.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
16
tools/binman/test/158_blob_ext_missing.dts
Normal file
16
tools/binman/test/158_blob_ext_missing.dts
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
size = <0x80>;
|
||||||
|
|
||||||
|
blob-ext {
|
||||||
|
filename = "missing-file";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user