diff options
author | Georgy Redkozubov <georgy.redkozubov@linaro.org> | 2013-10-24 22:44:58 +0400 |
---|---|---|
committer | Georgy Redkozubov <georgy.redkozubov@linaro.org> | 2013-10-24 22:44:58 +0400 |
commit | a5038baff7826b9073b3ef7b46a83b8e973e5cdf (patch) | |
tree | 2abac67196bfa50673d38ecd40b01d669c50b81c | |
parent | 0ebe866633d2c64540b3a8f420b8acc513bb04f7 (diff) |
Added command line option --dtb-file
-rwxr-xr-x | linaro-media-create | 3 | ||||
-rw-r--r-- | linaro_image_tools/media_create/__init__.py | 5 | ||||
-rw-r--r-- | linaro_image_tools/media_create/boards.py | 21 |
3 files changed, 26 insertions, 3 deletions
diff --git a/linaro-media-create b/linaro-media-create index d28eaff..e093b6b 100755 --- a/linaro-media-create +++ b/linaro-media-create @@ -144,7 +144,8 @@ if __name__ == '__main__': atexit.register(enable_automount) board_config = get_board_config(args.dev) - board_config.set_metadata(args.hwpacks, args.bootloader, args.dev) + board_config.set_metadata(args.hwpacks, args.bootloader, args.dev, + args.dtb_file) board_config.add_boot_args(args.extra_boot_args) board_config.add_boot_args_from_file(args.extra_boot_args_file) diff --git a/linaro_image_tools/media_create/__init__.py b/linaro_image_tools/media_create/__init__.py index d22b929..3fda1bd 100644 --- a/linaro_image_tools/media_create/__init__.py +++ b/linaro_image_tools/media_create/__init__.py @@ -174,6 +174,11 @@ def get_args_parser(): help="Select a bootloader from a hardware pack that contains more " "than one. If not specified, it will default to '%s'." % DEFAULT_BOOTLOADER) + parser.add_argument( + '--dtb-file', + help="Select a DTB file from a hardware pack that contains more " + "than one. If not specified, it will default to the first " + "entry in 'dtb_files' list.") add_common_options(parser) return parser diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py index 4e6e3f5..0c42a49 100644 --- a/linaro_image_tools/media_create/boards.py +++ b/linaro_image_tools/media_create/boards.py @@ -257,7 +257,8 @@ class BoardConfig(object): data, _ = self.hardwarepack_handler.get_field(field_name) return data - def set_metadata(self, hwpacks, bootloader=None, board=None): + def set_metadata(self, hwpacks, bootloader=None, board=None, + dtb_file=None): self.hardwarepack_handler = HardwarepackHandler(hwpacks, bootloader, board) with self.hardwarepack_handler: @@ -310,6 +311,12 @@ class BoardConfig(object): logger.warn("Deprecation warning: use the 'dtb_files' field " "instead of 'dtb_file'.") self.dtb_files = self.get_metadata_field(DTB_FILES_FIELD) + if dtb_file: + dtb_dict = self._find_dtb_dict(dtb_file) + if dtb_dict: + self.dtb_files = [] + self.dtb_files.append(dtb_dict) + self.extra_boot_args_options = self.get_metadata_field( EXTRA_BOOT_OPTIONS_FIELD) self.boot_script = self.get_metadata_field(BOOT_SCRIPT_FIELD) @@ -890,7 +897,7 @@ class BoardConfig(object): # the file. if not to_file: to_file = os.path.basename(from_file) - dtb = _get_file_matching(os.path.join(path, to_file)) + dtb = _get_file_matching(os.path.join(path, from_file)) if not self.dtb_files or not dtb: logger.warn("Could not find a valid dtb file, skipping it.") @@ -919,6 +926,16 @@ class BoardConfig(object): presence = True return presence + def _find_dtb_dict(self, dtb): + """Returns dictionary entry from dt_files containing dtb file.""" + for dtb_file in self.dtb_files: + if isinstance(dtb_file, dict): + for key, value in dtb_file.iteritems(): + # The name of the dtb file. + if dtb in key: + return dtb_file + return None + class OmapConfig(BoardConfig): def __init__(self): |