From d9a520c5bd4bdeb27a71a016fb5fbecdca687aaf Mon Sep 17 00:00:00 2001 From: Daniel Rosenberg Date: Fri, 13 Oct 2023 17:22:44 -0700 Subject: [PATCH] Add support for different F2FS block sizes F2FS has been expanded to allow for different block sizes. Currently the block size must be the same as page size, but this may change in the future. This gives support for 16K while not restricting the ability to choose a block size that isn't based on the page size later on. Bug: 279820706 Test: Boot 16k F2FS device Change-Id: I4e025d83a5e5ad03d89bc80b02fea390c2cbad69 --- core/Makefile | 2 ++ tools/releasetools/build_image.py | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/core/Makefile b/core/Makefile index 09c815ed98..451f53741f 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2176,6 +2176,7 @@ $(if $(BOARD_$(_var)IMAGE_EROFS_BLOCKSIZE),$(hide) echo "$(1)_erofs_blocksize=$( $(if $(BOARD_$(_var)IMAGE_EXTFS_INODE_COUNT),$(hide) echo "$(1)_extfs_inode_count=$(BOARD_$(_var)IMAGE_EXTFS_INODE_COUNT)" >> $(2)) $(if $(BOARD_$(_var)IMAGE_EXTFS_RSV_PCT),$(hide) echo "$(1)_extfs_rsv_pct=$(BOARD_$(_var)IMAGE_EXTFS_RSV_PCT)" >> $(2)) $(if $(BOARD_$(_var)IMAGE_F2FS_SLOAD_COMPRESS_FLAGS),$(hide) echo "$(1)_f2fs_sldc_flags=$(BOARD_$(_var)IMAGE_F2FS_SLOAD_COMPRESS_FLAGS)" >> $(2)) +$(if $(BOARD_$(_var)IMAGE_F2FS_BLOCKSIZE),$(hide) echo "$(1)_f2fs_blocksize=$(BOARD_$(_var)IMAGE_F2FS_BLOCKSIZE)" >> $(2)) $(if $(BOARD_$(_var)IMAGE_FILE_SYSTEM_COMPRESS),$(hide) echo "$(1)_f2fs_compress=$(BOARD_$(_var)IMAGE_FILE_SYSTEM_COMPRESS)" >> $(2)) $(if $(BOARD_$(_var)IMAGE_FILE_SYSTEM_TYPE),$(hide) echo "$(1)_fs_type=$(BOARD_$(_var)IMAGE_FILE_SYSTEM_TYPE)" >> $(2)) $(if $(BOARD_$(_var)IMAGE_JOURNAL_SIZE),$(hide) echo "$(1)_journal_size=$(BOARD_$(_var)IMAGE_JOURNAL_SIZE)" >> $(2)) @@ -2266,6 +2267,7 @@ $(if $(BOARD_EROFS_BLOCKSIZE),$(hide) echo "erofs_blocksize=$(BOARD_EROFS_BLOCKS $(if $(BOARD_EROFS_SHARE_DUP_BLOCKS),$(hide) echo "erofs_share_dup_blocks=$(BOARD_EROFS_SHARE_DUP_BLOCKS)" >> $(1)) $(if $(BOARD_EROFS_USE_LEGACY_COMPRESSION),$(hide) echo "erofs_use_legacy_compression=$(BOARD_EROFS_USE_LEGACY_COMPRESSION)" >> $(1)) $(if $(BOARD_EXT4_SHARE_DUP_BLOCKS),$(hide) echo "ext4_share_dup_blocks=$(BOARD_EXT4_SHARE_DUP_BLOCKS)" >> $(1)) +$(if $(BOARD_F2FS_BLOCKSIZE),$(hide) echo "f2fs_blocksize=$(BOARD_F2FS_BLOCKSIZE)" >> $(1)) $(if $(BOARD_FLASH_LOGICAL_BLOCK_SIZE), $(hide) echo "flash_logical_block_size=$(BOARD_FLASH_LOGICAL_BLOCK_SIZE)" >> $(1)) $(if $(BOARD_FLASH_ERASE_BLOCK_SIZE), $(hide) echo "flash_erase_block_size=$(BOARD_FLASH_ERASE_BLOCK_SIZE)" >> $(1)) $(if $(filter eng, $(TARGET_BUILD_VARIANT)),$(hide) echo "verity_disable=true" >> $(1)) diff --git a/tools/releasetools/build_image.py b/tools/releasetools/build_image.py index 34b7172e3f..8571d74683 100755 --- a/tools/releasetools/build_image.py +++ b/tools/releasetools/build_image.py @@ -437,6 +437,8 @@ def BuildImageMkfs(in_dir, prop_dict, out_file, target_out, fs_config): sldc_flags = sldc_flags_str.split() build_command.append(str(len(sldc_flags))) build_command.extend(sldc_flags) + f2fs_blocksize = prop_dict.get("f2fs_blocksize", "4096") + build_command.extend(["-b", f2fs_blocksize]) else: raise BuildImageError( "Error: unknown filesystem type: {}".format(fs_type)) @@ -721,6 +723,7 @@ def ImagePropFromGlobalDict(glob_dict, mount_point): "system_f2fs_compress", "system_f2fs_sldc_flags", "f2fs_sparse_flag", + "f2fs_blocksize", "skip_fsck", "ext_mkuserimg", "avb_enable", @@ -770,6 +773,7 @@ def ImagePropFromGlobalDict(glob_dict, mount_point): (True, "{}_extfs_inode_count", "extfs_inode_count"), (True, "{}_f2fs_compress", "f2fs_compress"), (True, "{}_f2fs_sldc_flags", "f2fs_sldc_flags"), + (True, "{}_f2fs_blocksize", "f2fs_block_size"), (True, "{}_reserved_size", "partition_reserved_size"), (True, "{}_squashfs_block_size", "squashfs_block_size"), (True, "{}_squashfs_compressor", "squashfs_compressor"),