aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFathi Boudra <fathi.boudra@linaro.org>2013-08-16 09:09:14 +0300
committerFathi Boudra <fathi.boudra@linaro.org>2013-08-16 09:09:14 +0300
commit29f05e98622564ddc26127defaa1e8f0268fa99f (patch)
treec8ee633fead7b264795ad135b81a131dbd8f309e
parentc0a67563872b9c7d796c8fc901c0d1a2f3f61c35 (diff)
parent548ad486ed2e8c1fc5f0cef026effec324a65d6b (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.py30
-rw-r--r--linaro_image_tools/media_create/tests/test_media_create.py4
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'}