diff options
author | Fathi Boudra <fathi.boudra@linaro.org> | 2013-08-16 09:09:14 +0300 |
---|---|---|
committer | Fathi Boudra <fathi.boudra@linaro.org> | 2013-08-16 09:09:14 +0300 |
commit | 29f05e98622564ddc26127defaa1e8f0268fa99f (patch) | |
tree | c8ee633fead7b264795ad135b81a131dbd8f309e | |
parent | c0a67563872b9c7d796c8fc901c0d1a2f3f61c35 (diff) | |
parent | 548ad486ed2e8c1fc5f0cef026effec324a65d6b (diff) |
Fix _get_bootcmd() to cover all bootm use cases:
* kernel only
* kernel + initrd
* kernel + dtb
* kernel + initrd + dtb
-rw-r--r-- | linaro_image_tools/media_create/boards.py | 30 | ||||
-rw-r--r-- | linaro_image_tools/media_create/tests/test_media_create.py | 4 |
2 files changed, 21 insertions, 13 deletions
diff --git a/linaro_image_tools/media_create/boards.py b/linaro_image_tools/media_create/boards.py index dfc57cd..c045e29 100644 --- a/linaro_image_tools/media_create/boards.py +++ b/linaro_image_tools/media_create/boards.py @@ -534,21 +534,27 @@ class BoardConfig(object): boot_script = ( ("%(fatload_command)s %(load_interface)s %(mmc_option)s " "%(kernel_addr)s %(uimage_path)suImage; ")) % replacements - if i_img_data is not None: + boot_script_bootm = (("bootm %(kernel_addr)s")) % replacements + if i_img_data is not None and d_img_data is not None: + boot_script += ( + ("%(fatload_command)s %(load_interface)s %(mmc_option)s " + "%(initrd_addr)s %(uimage_path)suInitrd; " + "%(fatload_command)s %(load_interface)s %(mmc_option)s " + "%(dtb_addr)s board.dtb; ")) % replacements + boot_script_bootm += ( + (" %(initrd_addr)s %(dtb_addr)s")) % replacements + elif i_img_data is None and d_img_data is not None: + boot_script += ( + ("%(fatload_command)s %(load_interface)s %(mmc_option)s " + "%(dtb_addr)s board.dtb; ")) % replacements + boot_script_bootm += ((" - %(dtb_addr)s")) % replacements + elif i_img_data is not None and d_img_data is None: boot_script += ( ("%(fatload_command)s %(load_interface)s %(mmc_option)s " "%(initrd_addr)s %(uimage_path)suInitrd; ")) % replacements - if d_img_data is not None: - assert self.dtb_addr is not None, ( - "Need a dtb_addr when passing d_img_data") - boot_script += ( - ("%(fatload_command)s %(load_interface)s %(mmc_option)s " - "%(dtb_addr)s board.dtb; ")) % replacements - boot_script += (("bootm %(kernel_addr)s")) % replacements - if i_img_data is not None: - boot_script += ((" %(initrd_addr)s")) % replacements - if self.dtb_addr is not None: - boot_script += ((" %(dtb_addr)s")) % replacements + boot_script_bootm += ((" %(initrd_addr)s")) % replacements + + boot_script += boot_script_bootm return boot_script def add_boot_args(self, extra_args): diff --git a/linaro_image_tools/media_create/tests/test_media_create.py b/linaro_image_tools/media_create/tests/test_media_create.py index 71beb56..f71eaa7 100644 --- a/linaro_image_tools/media_create/tests/test_media_create.py +++ b/linaro_image_tools/media_create/tests/test_media_create.py @@ -2261,11 +2261,13 @@ class TestGetBootCmd(TestCase): board_conf = get_board_config('highbank') boot_commands = board_conf._get_boot_env( is_live=False, is_lowmem=False, consoles=[], - rootfs_id="UUID=deadbeef", i_img_data="initrd", d_img_data=None) + rootfs_id="UUID=deadbeef", i_img_data="initrd", + d_img_data="board.dtb") expected = { 'bootargs': 'root=UUID=deadbeef rootwait ro', 'bootcmd': 'ext2load scsi 0:1 0x00800000 uImage; ' 'ext2load scsi 0:1 0x01000000 uInitrd; ' + 'ext2load scsi 0:1 0x00001000 board.dtb; ' 'bootm 0x00800000 0x01000000 0x00001000', 'fdt_high': '0xffffffff', 'initrd_high': '0xffffffff'} |