binman: Add support for symlinking images
Adding support to symlink an image packaged using binman. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
f29f98d1e4
commit
3545e8595c
@ -780,6 +780,9 @@ align-default:
|
||||
This means that each section must specify its own default alignment, if
|
||||
required.
|
||||
|
||||
symlink:
|
||||
Adds a symlink to the image with string given in the symlink property.
|
||||
|
||||
Examples of the above options can be found in the tests. See the
|
||||
tools/binman/test directory.
|
||||
|
||||
|
@ -5995,6 +5995,15 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
||||
self.assertIn('Expected __bss_size symbol in vpl/u-boot-vpl',
|
||||
str(e.exception))
|
||||
|
||||
def testSymlink(self):
|
||||
"""Test that image files can be named"""
|
||||
retcode = self._DoTestFile('259_symlink.dts', debug=True, map=True)
|
||||
self.assertEqual(0, retcode)
|
||||
image = control.images['test_image']
|
||||
fname = tools.get_output_filename('test_image.bin')
|
||||
sname = tools.get_output_filename('symlink_to_test.bin')
|
||||
self.assertTrue(os.path.islink(sname))
|
||||
self.assertEqual(os.readlink(sname), fname)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
@ -38,6 +38,7 @@ class Image(section.Entry_section):
|
||||
repacked later
|
||||
test_section_timeout: Use a zero timeout for section multi-threading
|
||||
(for testing)
|
||||
symlink: Name of symlink to image
|
||||
|
||||
Args:
|
||||
copy_to_orig: Copy offset/size to orig_offset/orig_size after reading
|
||||
@ -97,6 +98,7 @@ class Image(section.Entry_section):
|
||||
if filename:
|
||||
self._filename = filename
|
||||
self.allow_repack = fdt_util.GetBool(self._node, 'allow-repack')
|
||||
self._symlink = fdt_util.GetString(self._node, 'symlink')
|
||||
|
||||
@classmethod
|
||||
def FromFile(cls, fname):
|
||||
@ -180,6 +182,10 @@ class Image(section.Entry_section):
|
||||
data = self.GetPaddedData()
|
||||
fd.write(data)
|
||||
tout.info("Wrote %#x bytes" % len(data))
|
||||
# Create symlink to file if symlink given
|
||||
if self._symlink is not None:
|
||||
sname = tools.get_output_filename(self._symlink)
|
||||
os.symlink(fname, sname)
|
||||
|
||||
def WriteMap(self):
|
||||
"""Write a map of the image to a .map file
|
||||
|
16
tools/binman/test/259_symlink.dts
Normal file
16
tools/binman/test/259_symlink.dts
Normal file
@ -0,0 +1,16 @@
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
binman {
|
||||
multiple-images;
|
||||
test_image {
|
||||
filename = "test_image.bin";
|
||||
symlink = "symlink_to_test.bin";
|
||||
u-boot {
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
Loading…
Reference in New Issue
Block a user