def get_sfdisk_cmd(self, should_align_boot_part=False, start_addr=0, extra_part=False): if self.fat_size == 32: partition_type = '0x0C' else: partition_type = '0x0E' # align on sector 63 for compatibility with broken versions of x-loader # unless align_boot_part is set boot_align = 63 if should_align_boot_part: boot_align = PART_ALIGN_S # can only start on sector 1 (sector 0 is MBR / partition table) boot_start, boot_end, boot_len = align_partition( start_addr + 1, BOOT_MIN_SIZE_S, boot_align, PART_ALIGN_S) # apparently OMAP3 ROMs require the vfat length to be an even number # of sectors (multiple of 1 KiB); decrease the length if it's odd, # there should still be enough room boot_len = boot_len - boot_len % 2 boot_end = boot_start + boot_len - 1 system_start, _system_end, _system_len = align_partition( boot_end + 1, SYSTEM_MIN_SIZE_S, PART_ALIGN_S, PART_ALIGN_S) cache_start, _cache_end, _cache_len = align_partition( _system_end + 1, CACHE_MIN_SIZE_S, PART_ALIGN_S, PART_ALIGN_S) userdata_start, _userdata_end, _userdata_len = align_partition( _cache_end + 1, USERDATA_MIN_SIZE_S, PART_ALIGN_S, PART_ALIGN_S) sdcard_start, _sdcard_end, _sdcard_len = align_partition( _userdata_end + 1, SDCARD_MIN_SIZE_S, PART_ALIGN_S, PART_ALIGN_S) # Snowball board needs a raw partition added to the beginning of image. # If extra_part is True an extra primary partition will be added. # Due to a maximum of 4 primary partitions cache data will be placed in # a extended partition if extra_part is True: assert start_addr > 0, ("Not possible to add extra partition" "when boot partition starts at '0'") return '%s,%s,%s,*\n%s,%s,L\n%s,-,E\n%s,%s,L\n%s,%s,L\n%s,,,-' % ( boot_start, boot_len, partition_type, system_start, _system_len, cache_start, cache_start, _cache_len, userdata_start, _userdata_len, sdcard_start) return '%s,%s,%s,*\n%s,%s,L\n%s,%s,L\n%s,-,E\n%s,%s,L\n%s,,,-' % ( boot_start, boot_len, partition_type, system_start, _system_len, cache_start, _cache_len, userdata_start, userdata_start, _userdata_len, sdcard_start)
def get_sfdisk_cmd(self, should_align_boot_part=False): loader_start, loader_end, loader_len = align_partition( 1, self.LOADER_MIN_SIZE_S, 1, PART_ALIGN_S) command = super(AndroidMx53LoCoConfig, self).get_sfdisk_cmd( should_align_boot_part=True, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % ( loader_start, loader_len, command)
def get_sfdisk_cmd(self, should_align_boot_part=False): loader_start, loader_end, loader_len = align_partition( 1, self.LOADER_MIN_SIZE_S, 1, PART_ALIGN_S) command = super(AndroidMx53LoCoConfig, self).get_sfdisk_cmd(should_align_boot_part=True, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % (loader_start, loader_len, command)
def get_sfdisk_cmd(self, should_align_boot_part=False): loader_start, loader_end, loader_len = align_partition( SnowballEmmcConfig.SNOWBALL_LOADER_START_S, LOADER_MIN_SIZE_S, 1, PART_ALIGN_S) command = super(AndroidSnowballEmmcConfig, self).get_sfdisk_cmd( should_align_boot_part=True, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % ( loader_start, loader_len, command)
def get_sfdisk_cmd(self, should_align_boot_part=False): loader_start, loader_end, loader_len = align_partition( SnowballEmmcConfig.SNOWBALL_LOADER_START_S, LOADER_MIN_SIZE_S, 1, PART_ALIGN_S) command = super(AndroidSnowballEmmcConfig, self).get_sfdisk_cmd(should_align_boot_part=True, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % (loader_start, loader_len, command)
def get_sfdisk_cmd(self, should_align_boot_part=False): loaders_min_len = (self.samsung_bl1_start + self.samsung_bl1_len + self.samsung_bl2_len + self.samsung_env_len) loader_start, loader_end, loader_len = align_partition( 1, loaders_min_len, 1, PART_ALIGN_S) command = super(AndroidSamsungConfig, self).get_sfdisk_cmd( should_align_boot_part=False, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % ( loader_start, loader_len, command)
def get_sfdisk_cmd(self, should_align_boot_part=False): loaders_min_len = (self.samsung_bl1_start + self.samsung_bl1_len + self.samsung_bl2_len + self.samsung_env_len) loader_start, loader_end, loader_len = align_partition( 1, loaders_min_len, 1, PART_ALIGN_S) command = super(AndroidSamsungConfig, self).get_sfdisk_cmd(should_align_boot_part=False, start_addr=loader_end, extra_part=True) return '%s,%s,0xDA\n%s' % (loader_start, loader_len, command)