=== modified file 'linaro_image_tools/hwpack/config.py'
@@ -124,7 +124,6 @@
self._validate_wired_interfaces()
self._validate_wireless_interfaces()
self._validate_partition_layout()
- self._validate_mmc_id()
self._validate_boot_min_size()
self._validate_root_min_size()
self._validate_loader_min_size()
@@ -134,6 +133,7 @@
self._validate_vmlinuz()
self._validate_initrd()
self._validate_dtb_file()
+ self._validate_mmc_id()
self._validate_extra_boot_options()
self._validate_boot_script()
self._validate_uboot_in_boot_part()
@@ -664,12 +664,13 @@
def _validate_mmc_id(self):
mmc_id = self.mmc_id
- if mmc_id is None:
- return
- try:
- int(mmc_id)
- except:
- raise HwpackConfigError("Invalid mmc id %s" % (mmc_id))
+ if not mmc_id:
+ raise HwpackConfigError(
+ "No mmc_id in the [%s] section" % \
+ self.MAIN_SECTION)
+ else:
+ self._assert_matches_pattern(
+ r"[0-9]:[0-9]", mmc_id, "Invalid mmc_id %s" % mmc_id)
def _validate_root_min_size(self):
root_min_size = self.root_min_size
=== modified file 'linaro_image_tools/hwpack/tests/test_builder.py'
@@ -123,6 +123,7 @@
'kernel_file': 'boot/vmlinuz-3.0.0-1002-linaro-omap',
'initrd_file': 'boot/initrd.img-3.0.0-1002-linaro-omap',
'boot_script': 'boot.scr',
+ 'mmc_id': '0:1',
'u_boot_in_boot_part': 'no'}
def test_raises_on_missing_configuration(self):
=== modified file 'linaro_image_tools/hwpack/tests/test_config.py'
@@ -45,6 +45,7 @@
"extra_serial_options = console=tty0 console=ttyO2,115200n8\n"\
"extra_boot_options = earlyprintk fixrtc nocompcache vram=48M omapfb.vram=0:24M mem=456M@0x80000000 mem=512M@0xA0000000\n"\
"boot_script = boot.scr\n"\
+ "mmc_id = 0:1\n"\
"u_boot_in_boot_part = Yes\n")
valid_end = "[ubuntu]\nsources-entry = foo bar\n"
@@ -247,12 +248,14 @@
"u-boot-file = u-boot.bin\n"
"partition_layout = bootfs_rootfs\n"\
"kernel_file = boot/vmlinuz-3.0.0-1002-linaro-omap\n"\
+ "mmc_id = 0:1\n"\
"initrd_file = boot/initrd.img-3.0.0-1002-linaro-omap\n")
self.assertValidationError("No boot_script in the [hwpack] section", config)
def test_validate_invalid_boot_script(self):
config = self.get_config(self.valid_start_v2 +
"u-boot-package = u-boot-linaro-s5pv310\n" \
+ "mmc_id = 0:1\n"\
"u-boot-file = u-boot.bin\n" \
"partition_layout = bootfs_rootfs\n"\
"kernel_file = boot/vmlinuz-3.0.0-1002-linaro-omap\n"\
@@ -270,6 +273,7 @@
"initrd_file = boot/initrd.img-3.0.0-1002-linaro-omap\n"\
"boot_script = boot.scr\n"\
"u_boot_in_boot_part = No\n"\
+ "mmc_id = 0:1\n"\
"dtb_file = ~~\n")
self.assertValidationError("Invalid path: ~~", config)
@@ -278,6 +282,7 @@
self.valid_start_v2 + "u-boot-package = u-boot-linaro-s5pv310\n" \
"u-boot-file = usr/bin/version/MLO\n" \
"partition_layout = bootfs_rootfs\n"\
+ "mmc_id = 0:1\n"\
"x_loader_package = ~~\n")
self.assertValidationError(
"Invalid value in x_loader_package in the [hwpack] section: ~~",
@@ -318,6 +323,7 @@
"kernel_file = boot/vmlinuz-3.0.0-1002-linaro-omap\n"\
"initrd_file = boot/initrd.img-3.0.0-1002-linaro-omap\n"\
"boot_script = boot.scr\n"\
+ "mmc_id = 0:1\n"\
"u_boot_in_boot_part = Nope\n")
self.assertValidationError("Invalid value for u_boot_in_boot_part: Nope", config)
@@ -329,6 +335,7 @@
"kernel_file = boot/vmlinuz-3.0.0-1002-linaro-omap\n"\
"initrd_file = boot/initrd.img-3.0.0-1002-linaro-omap\n"\
"boot_script = boot.scr\n"\
+ "mmc_id = 0:1\n"\
"u_boot_in_boot_part = True\n")
self.assertValidationError("Invalid value for u_boot_in_boot_part: True", config)
@@ -346,7 +353,7 @@
def test_validate_mmc_id(self):
config = self.get_config(self.valid_complete_v2 +
"mmc_id = x\n")
- self.assertValidationError("Invalid mmc id x", config)
+ self.assertValidationError("Invalid mmc_id x", config)
def test_validate_boot_min_size(self):
config = self.get_config(self.valid_complete_v2 +
@@ -510,10 +517,10 @@
def test_mmc_id(self):
config = self.get_config(self.valid_complete_v2 +
- "mmc_id = 1\n" +
+ "mmc_id = 0:1\n" +
self.valid_end)
config.validate()
- self.assertEqual("1", config.mmc_id)
+ self.assertEqual("0:1", config.mmc_id)
def test_boot_min_size(self):
config = self.get_config(self.valid_complete_v2 +
=== modified file 'linaro_image_tools/media_create/boards.py'
@@ -290,6 +290,8 @@
cls.extra_boot_args_options = None
cls.boot_script = None
cls.kernel_flavors = None
+ cls.mmc_option = None
+ cls.mmc_part_offset = None
cls.SAMSUNG_V310_BL1_START = None
cls.SAMSUNG_V310_BL1_LEN = None
cls.SAMSUNG_V310_ENV_START = None
@@ -306,7 +308,6 @@
cls.wired_interfaces = cls.get_metadata_field('wired_interfaces')
cls.wireless_interfaces = cls.get_metadata_field(
'wireless_interfaces')
- cls.mmc_id = cls.get_metadata_field('mmc_id')
cls.vmlinuz = cls.get_metadata_field('kernel_file')
cls.initrd = cls.get_metadata_field('initrd_file')
cls.dtb_file = cls.get_metadata_field('dtb_file')
@@ -327,6 +328,10 @@
raise AssertionError("Unknown partition layout '%s'." % \
cls.partition_layout)
+ cls.mmc_option = cls.get_metadata_field('mmc_id')
+ if cls.mmc_option is not None:
+ cls.mmc_part_offset = int(cls.mmc_option.split(':')[1]) - 1
+
boot_min_size = cls.get_metadata_field('boot_min_size')
if boot_min_size is not None:
cls.BOOT_MIN_SIZE_S = align_up(int(boot_min_size) * 1024 ** 2,
@@ -743,7 +748,7 @@
if cls.dtb_file is not None:
dtb = _get_file_matching(os.path.join(path, cls.dtb_file))
logger = logging.getLogger("linaro_image_tools")
- logger.info( "Will use kernel=%s, initrd=%s, dtb=%s." % \
+ logger.info("Will use kernel=%s, initrd=%s, dtb=%s." % \
(kernel, initrd, dtb))
return (kernel, initrd, dtb)
raise ValueError(
=== modified file 'linaro_image_tools/media_create/tests/test_media_create.py'
@@ -376,14 +376,15 @@
linaro_image_tools.media_create.boards, 'HardwarepackHandler',
self.MockHardwarepackHandler))
field_to_test = 'mmc_id'
- data_to_set = '1'
+ data_to_set = '0:1'
self.MockHardwarepackHandler.metadata_dict = {
field_to_test: data_to_set,
}
class config(BoardConfig):
pass
config.set_metadata('ahwpack.tar.gz')
- self.assertEquals(data_to_set, config.mmc_id)
+ self.assertEquals(data_to_set, config.mmc_option)
+ self.assertEquals(0, config.mmc_part_offset)
def test_sets_boot_min_size(self):
self.useFixture(MockSomethingFixture(