From 24e4e73479a47da29a0c04a0387dec774d305a81 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Wed, 8 Feb 2012 16:27:19 -0800 Subject: A hack for copying the u-boot.bin file from boot.tar.bz2 for Snowball. It expects the user to have put the startfiles in ./boot . --- linaro_image_tools/media_create/android_boards.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index 6a0a464..e49adcf 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -231,6 +231,21 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): return '%s,%s,0xDA\n%s' % ( loader_start, loader_len, command) + @classmethod + def populate_raw_partition(cls, media, boot_dir): + # To avoid adding a Snowball specific command line option, we assume + # that the user already has unpacked the startfiles to ./boot + new_dir = '.' + # We copy the u-boot files from the unpacked boot.tar.bz2 + # and put it with the startfiles. + # We should also copy u-boot-env.bin but it's not in the boot tarball. + boot_files = ['u-boot.bin'] + for boot_file in boot_files: + os.path.join(boot_dir, boot_file) + cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), + os.path.join(new_dir, 'boot')], as_root=True).wait() + super(AndroidBoardConfig, cls).populate_raw_partition(new_dir, media) + class AndroidMx53LoCoConfig(AndroidBoardConfig, Mx53LoCoConfig): extra_boot_args_options = ( -- cgit v1.2.3 From 6cdcf410f8914c51fa4074cc0300abe66c6ea556 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Thu, 9 Feb 2012 10:18:41 -0800 Subject: Also assume u-boot-env.bin is in the boot tarball. --- linaro_image_tools/media_create/android_boards.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index e49adcf..e3cccc9 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -238,8 +238,7 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): new_dir = '.' # We copy the u-boot files from the unpacked boot.tar.bz2 # and put it with the startfiles. - # We should also copy u-boot-env.bin but it's not in the boot tarball. - boot_files = ['u-boot.bin'] + boot_files = ['u-boot.bin', 'u-boot-env.bin'] for boot_file in boot_files: os.path.join(boot_dir, boot_file) cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), -- cgit v1.2.3 From 5afdb26001109ab7c589a92f11c9e1c7b06687a5 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Thu, 9 Feb 2012 10:33:27 -0800 Subject: The u-boot-env.bin will be in the ./boot folder, not in the boot tarball. --- linaro_image_tools/media_create/android_boards.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index e3cccc9..32af743 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -238,7 +238,7 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): new_dir = '.' # We copy the u-boot files from the unpacked boot.tar.bz2 # and put it with the startfiles. - boot_files = ['u-boot.bin', 'u-boot-env.bin'] + boot_files = ['u-boot.bin'] for boot_file in boot_files: os.path.join(boot_dir, boot_file) cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), -- cgit v1.2.3 From 0aeb74bf8824bec3a0e8aaa6bdc3e29d87cb6b9b Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Thu, 16 Feb 2012 14:44:10 +0100 Subject: Add separate source dir for startfiles so we can pass in a different dir from l-m-c and l-a-m-c. Add flag for deleting the startupfiles on disk. --- linaro_image_tools/media_create/android_boards.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index 750c423..907b669 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -161,8 +161,10 @@ class AndroidBoardConfig(object): _userdata_len, sdcard_start) @classmethod - def populate_raw_partition(cls, media, boot_dir): - super(AndroidBoardConfig, cls).populate_raw_partition(media, boot_dir) + def populate_raw_partition(cls, media, boot_dir, config_files_dir, + delete_startupfiles=False): + super(AndroidBoardConfig, cls).populate_raw_partition( + media, boot_dir, config_files_dir, delete_startupfiles) @classmethod def install_boot_loader(cls, boot_partition, boot_device_or_file): @@ -232,18 +234,20 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): loader_start, loader_len, command) @classmethod - def populate_raw_partition(cls, media, boot_dir): + def populate_raw_partition(cls, media, boot_dir, config_files_dir, + delete_startupfiles=False): # To avoid adding a Snowball specific command line option, we assume - # that the user already has unpacked the startfiles to ./boot - new_dir = '.' + # that the user already has unpacked the startfiles to ./startupfiles + new_dir = os.path.join('.', 'startupfiles') # We copy the u-boot files from the unpacked boot.tar.bz2 # and put it with the startfiles. boot_files = ['u-boot.bin'] for boot_file in boot_files: os.path.join(boot_dir, boot_file) cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), - os.path.join(new_dir, 'boot')], as_root=True).wait() - super(AndroidBoardConfig, cls).populate_raw_partition(new_dir, media) + new_dir], as_root=True).wait() + super(AndroidSnowballEmmcConfig, cls).populate_raw_partition( + media, new_dir, config_files_dir, False) class AndroidMx53LoCoConfig(AndroidBoardConfig, Mx53LoCoConfig): -- cgit v1.2.3 From d3ee8be836f9c39b70282c6125e3209278176e15 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Thu, 16 Feb 2012 15:58:42 +0100 Subject: Look for the startupfiles in configdir and don't assume that they are in the boot partition. --- linaro_image_tools/media_create/android_boards.py | 1 - 1 file changed, 1 deletion(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index 907b669..8428886 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -243,7 +243,6 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): # and put it with the startfiles. boot_files = ['u-boot.bin'] for boot_file in boot_files: - os.path.join(boot_dir, boot_file) cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), new_dir], as_root=True).wait() super(AndroidSnowballEmmcConfig, cls).populate_raw_partition( -- cgit v1.2.3 From 6322a5fabb48b457cb961b7dfe6df61358c5a1c5 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Thu, 16 Feb 2012 16:10:30 +0100 Subject: Add an error message for when the user forgot to supply the startupfiles. --- linaro_image_tools/media_create/android_boards.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index 8428886..290051c 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -238,15 +238,18 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): delete_startupfiles=False): # To avoid adding a Snowball specific command line option, we assume # that the user already has unpacked the startfiles to ./startupfiles - new_dir = os.path.join('.', 'startupfiles') + local_config_dir = os.path.join('.', 'startupfiles') + assert os.path.exists(local_config_dir), "You need to unpack the " + "Snowball startupfiles to the directory 'startupfiles' in your current " + "working directory. See igloocommunity.org for more information." # We copy the u-boot files from the unpacked boot.tar.bz2 # and put it with the startfiles. boot_files = ['u-boot.bin'] for boot_file in boot_files: cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), - new_dir], as_root=True).wait() + local_config_dir], as_root=True).wait() super(AndroidSnowballEmmcConfig, cls).populate_raw_partition( - media, new_dir, config_files_dir, False) + media, boot_dir, local_config_dir, False) class AndroidMx53LoCoConfig(AndroidBoardConfig, Mx53LoCoConfig): -- cgit v1.2.3 From 6b0344c7c4afec8e7cb1b67b4f0fefbfe4ccfc16 Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Fri, 17 Feb 2012 16:45:13 +0100 Subject: Start fixing review comments. --- linaro_image_tools/media_create/android_boards.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index 290051c..c2e6171 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -239,9 +239,10 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): # To avoid adding a Snowball specific command line option, we assume # that the user already has unpacked the startfiles to ./startupfiles local_config_dir = os.path.join('.', 'startupfiles') - assert os.path.exists(local_config_dir), "You need to unpack the " - "Snowball startupfiles to the directory 'startupfiles' in your current " - "working directory. See igloocommunity.org for more information." + assert os.path.exists(local_config_dir), ( + "You need to unpack the Snowball startupfiles to the directory " + "'startupfiles' in your current working directory. See " + "igloocommunity.org for more information.") # We copy the u-boot files from the unpacked boot.tar.bz2 # and put it with the startfiles. boot_files = ['u-boot.bin'] -- cgit v1.2.3 From 52d63bb522d3dcd480b04bd0f79d6356c379668f Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Mon, 20 Feb 2012 13:09:22 +0100 Subject: Remove the new arguments to populate_raw_partition and get them from a class function instead. Add tests for populate_raw_partition. --- linaro_image_tools/media_create/android_boards.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index c2e6171..bfd09cc 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -161,10 +161,9 @@ class AndroidBoardConfig(object): _userdata_len, sdcard_start) @classmethod - def populate_raw_partition(cls, media, boot_dir, config_files_dir, - delete_startupfiles=False): + def populate_raw_partition(cls, media, boot_dir): super(AndroidBoardConfig, cls).populate_raw_partition( - media, boot_dir, config_files_dir, delete_startupfiles) + media, boot_dir) @classmethod def install_boot_loader(cls, boot_partition, boot_device_or_file): @@ -234,12 +233,11 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): loader_start, loader_len, command) @classmethod - def populate_raw_partition(cls, media, boot_dir, config_files_dir, - delete_startupfiles=False): + def populate_raw_partition(cls, media, boot_dir): # To avoid adding a Snowball specific command line option, we assume # that the user already has unpacked the startfiles to ./startupfiles - local_config_dir = os.path.join('.', 'startupfiles') - assert os.path.exists(local_config_dir), ( + config_files_dir, delete_startupfiles = cls.snowball_config(boot_dir) + assert os.path.exists(config_files_dir), ( "You need to unpack the Snowball startupfiles to the directory " "'startupfiles' in your current working directory. See " "igloocommunity.org for more information.") @@ -248,9 +246,13 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): boot_files = ['u-boot.bin'] for boot_file in boot_files: cmd_runner.run(['cp', os.path.join(boot_dir, 'boot', boot_file), - local_config_dir], as_root=True).wait() + config_files_dir], as_root=True).wait() super(AndroidSnowballEmmcConfig, cls).populate_raw_partition( - media, boot_dir, local_config_dir, False) + media, boot_dir) + + @classmethod + def snowball_config(cls, chroot_dir): + return (os.path.join('.', 'startupfiles'), False) class AndroidMx53LoCoConfig(AndroidBoardConfig, Mx53LoCoConfig): -- cgit v1.2.3 From e5e6d45eb1a09c0a17247046abad389678e0f80b Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Mon, 20 Feb 2012 13:40:04 +0100 Subject: Undo line break and remove new arguments from another call. --- linaro_image_tools/media_create/android_boards.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index bfd09cc..a3a67f1 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -162,8 +162,7 @@ class AndroidBoardConfig(object): @classmethod def populate_raw_partition(cls, media, boot_dir): - super(AndroidBoardConfig, cls).populate_raw_partition( - media, boot_dir) + super(AndroidBoardConfig, cls).populate_raw_partition(media, boot_dir) @classmethod def install_boot_loader(cls, boot_partition, boot_device_or_file): -- cgit v1.2.3 From 7b11b988b74093cdb8ed4b1f6951230d67f4dd3c Mon Sep 17 00:00:00 2001 From: Mattias Backman Date: Tue, 21 Feb 2012 08:52:13 +0100 Subject: Change delete_startupfiles to be a classproperty. --- linaro_image_tools/media_create/android_boards.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'linaro_image_tools/media_create/android_boards.py') diff --git a/linaro_image_tools/media_create/android_boards.py b/linaro_image_tools/media_create/android_boards.py index a3a67f1..c9adab6 100644 --- a/linaro_image_tools/media_create/android_boards.py +++ b/linaro_image_tools/media_create/android_boards.py @@ -37,6 +37,7 @@ from linaro_image_tools.media_create.boards import VexpressA9Config from linaro_image_tools.media_create.boards import ( align_up, align_partition, + classproperty, make_boot_script, install_mx5_boot_loader, ) @@ -235,7 +236,7 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): def populate_raw_partition(cls, media, boot_dir): # To avoid adding a Snowball specific command line option, we assume # that the user already has unpacked the startfiles to ./startupfiles - config_files_dir, delete_startupfiles = cls.snowball_config(boot_dir) + config_files_dir = cls.snowball_config(boot_dir) assert os.path.exists(config_files_dir), ( "You need to unpack the Snowball startupfiles to the directory " "'startupfiles' in your current working directory. See " @@ -251,7 +252,15 @@ class AndroidSnowballEmmcConfig(AndroidBoardConfig, SnowballEmmcConfig): @classmethod def snowball_config(cls, chroot_dir): - return (os.path.join('.', 'startupfiles'), False) + # The user is expected to have unpacked the startupfiles to this subdir + # of their working dir. + return os.path.join('.', 'startupfiles') + + @classproperty + def delete_startupfiles(cls): + # The startupfiles will have been unpacked to the user's working dir + # and should not be deleted after they have been installed. + return False class AndroidMx53LoCoConfig(AndroidBoardConfig, Mx53LoCoConfig): -- cgit v1.2.3