diff options
author | Milo Casagrande <milo@ubuntu.com> | 2012-09-25 18:24:32 +0200 |
---|---|---|
committer | Milo Casagrande <milo@ubuntu.com> | 2012-09-25 18:24:32 +0200 |
commit | 14d2cd79a052ec5aba773c7ba7a30ec6e718f2af (patch) | |
tree | 9f263a8d6dc98c80eb9cc7011783ceda1329490c /linaro_image_tools/media_create/boards.py | |
parent | 00d7ab439658296302a5c290319049c96f7cdc5e (diff) |
Added dtb_files support in media-create.
Diffstat (limited to 'linaro_image_tools/media_create/boards.py')
-rw-r--r-- | linaro_image_tools/media_create/boards.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py index dffe5f3..2022bd5 100644 --- a/linaro_image_tools/media_create/boards.py +++ b/linaro_image_tools/media_create/boards.py @@ -404,6 +404,9 @@ class BoardConfig(object): partition_layout = None LOADER_START_S = 1 + # Support for dtb_files as per hwpack v3 format. + dtb_files = None + # Samsung v310 implementation notes and terminology # # * BL0, BL1 etc. are the various bootloaders in order of execution @@ -495,6 +498,7 @@ class BoardConfig(object): cls.vmlinuz = cls.get_metadata_field('vmlinuz') cls.initrd = cls.get_metadata_field('initrd') cls.dtb_file = cls.get_metadata_field('dtb_file') + cls.dtb_files = cls.get_metadata_field('dtb_files') cls.extra_boot_args_options = cls.get_metadata_field( 'extra_boot_options') cls.boot_script = cls.get_metadata_field('boot_script') @@ -839,6 +843,30 @@ class BoardConfig(object): boot_env, chroot_dir, boot_dir, boot_device_or_file, k_img_data, i_img_data, d_img_data) + if cls.hwpack_format == HardwarepackHandler.FORMAT_3: + # Handle only v3 specific fields. + if cls.dtb_files: + cls._copy_dtb_files(cls.dtb_files, chroot_dir, boot_dir) + + @classmethod + def _copy_dtb_files(cls, dtb_files, search_dir, dest_dir): + """Copy the files defined in dtb_files into the boot directory. + + :param dtb_files: The list of dtb files + :param search_dir: The directory where to search for the real file. + :param dest_dir: The directory where to copy each dtb file. + """ + logger = logging.getLogger("linaro_image_tools") + for dtb_file in dtb_files: + if dtb_file: + dtb = _get_file_matching(os.path.join(search_dir, dtb_file)) + if not dtb: + logger.warn('Could not find a valid dtb file, ' + 'skipping it.') + continue + else: + cmd_runner.run(['cp', dtb, dest_dir], as_root=True).wait() + @classmethod def _dd_file(cls, from_file, to_file, seek, max_size=None): assert from_file is not None, "No source file name given." |