blob: c44d4009c6c761ce31ee76ce2b3c47a2962479c5 [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/compiled_action.gni")
declare_args() {
# The size in bytes of the FVM partition on the target eMMC devices.
# Specifying this parameter will lead build to generate a fvm.fastboot.blk
# suitable for flashing through fastboot for eMMC devices.
fvm_emmc_partition_size = false
# The max size of the disk where the FVM is written. This is used for
# preallocating metadata to determine how much the FVM can expand on disk.
# Only applies to sparse FVM images. At sparse image construction time, the
# build fails if the inputs are larger than `fvm_max_disk_size`. At paving
# time, the FVM will be sized to the target's disk size up to
# `fvm_max_disk_size`. If the size of the disk increases after initial paving,
# the FVM will resize up to `fvm_max_disk_size`. During paving, if the target
# FVM has declared a smaller size than `fvm_max_disk_size`, the FVM is
# reinitialized to the larger size.
# The default value is false which sets the max disk size to the size of the disk
# at pave/format time.
fvm_max_disk_size = false
# The size of the FVM partition images "slice size". The FVM slice size is a
# minimum size of a particular chunk of a partition that is stored within
# FVM. A very small slice size may lead to decreased throughput. A very large
# slice size may lead to wasted space. The selected default size of 8mb is
# selected for conservation of space, rather than performance.
fvm_slice_size = 8388608
# Number of slices reserved by FVM for internal usage. A reservation
# partition will be added to the FVM image, containing this many slices.
# If set to 0, then no reservation partition will be added.
fvm_reserved_slices = 0
# The following blobfs_* and minfs_* arguments are used to determine the
# initial dimensions of the blobfs and minfs partitions added to an FVM
# image. If they are unset, the sizes of the input blobfs/minfs images will
# determine the dimensions of the respective partition within FVM.
#
# These dimensions cannot make a partition smaller than the image provided
# to the FVM tool; in that case, the partition dimensions would be expanded
# to fit the input image.
#
# There are both board-level overrides and product-level dimensions. The
# product-level overrides, if set, will take precedence.
# minimum_inodes is the number of inodes to reserve for the fs
# A value of false does not reserve any additional space than minimum
# required for the filesystem.
blobfs_board_minimum_inodes = false
blobfs_product_minimum_inodes = false
# Number of bytes to reserve for data in the fs. This is in addition
# to what is reserved, if any, for the inodes. Data bytes constitutes
# "usable" space of the fs.
# A value of false does not reserve any additional space than minimum
# required for the filesystem.
blobfs_board_minimum_data_bytes = false
blobfs_product_minimum_data_bytes = false
minfs_board_minimum_data_bytes = false
minfs_product_minimum_data_bytes = false
# In addition to reserving space for inodes and data, fs needs additional
# space for maintaining some internal data structures. So the
# space required to reserve inodes and data may exceed sum of the space
# needed for inodes and data.
# maximum_bytes puts an upper bound on the total bytes reserved for inodes,
# data bytes and reservation for all other internal fs metadata.
# A value of false does not put any upper bound. A filesystem may
# reserve few blocks required for its operations.
blobfs_board_maximum_bytes = false
blobfs_product_maximum_bytes = false
minfs_board_maximum_bytes = false
minfs_product_maximum_bytes = false
# End of variables for blobfs/minfs dimensions
# Specifying these variables will generate a NAND FVM image suitable for
# directly flashing via fastboot. The NAND characteristics are required
# in order to properly initialize the FTL metadata in the OOB area.
# `fvm_max_disk_size` should also be nonzero or else minfs will not have any
# room to initialize on boot.
fvm_ftl_nand_page_size = false
fvm_ftl_nand_oob_size = false
fvm_ftl_nand_pages_per_block = false
fvm_ftl_nand_block_count = false
# How to compress the FVM image used for fastboot flashing.
# Possible values:
# * "none": no compression
# * "default": no compression on NAND, lz4 compression on eMMC.
# * any other value is passed as the FVM "--compress" arg
fvm_fastboot_compression = "default"
}