Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd68a6cb authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Don't reserve size for bad blocks when checking image size"

parents 0c0e2b07 03eb0615
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -1302,12 +1302,12 @@ endif
.PHONY: recoveryimage
.PHONY: recoveryimage
recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP)
recoveryimage: $(INSTALLED_RECOVERYIMAGE_TARGET) $(RECOVERY_RESOURCE_ZIP)


ifeq ($(BOARD_NAND_PAGE_SIZE),)
ifneq ($(BOARD_NAND_PAGE_SIZE),)
BOARD_NAND_PAGE_SIZE := 2048
$(error MTD device is no longer supported and thus BOARD_NAND_PAGE_SIZE is deprecated.)
endif
endif


ifeq ($(BOARD_NAND_SPARE_SIZE),)
ifneq ($(BOARD_NAND_SPARE_SIZE),)
BOARD_NAND_SPARE_SIZE := 64
$(error MTD device is no longer supported and thus BOARD_NAND_SPARE_SIZE is deprecated.)
endif
endif


# -----------------------------------------------------------------
# -----------------------------------------------------------------
+4 −38
Original line number Original line Diff line number Diff line
@@ -2745,39 +2745,16 @@ ifndef get-file-size
$(error HOST_OS must define get-file-size)
$(error HOST_OS must define get-file-size)
endif
endif


# Convert a partition data size (eg, as reported in /proc/mtd) to the
# size of the image used to flash that partition (which includes a
# spare area for each page).
# $(1): the partition data size
define image-size-from-data-size
$(strip $(eval _isfds_value := $$(shell echo $$$$(($(1) / $(BOARD_NAND_PAGE_SIZE) * \
  ($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE))))))\
$(if $(filter 0, $(_isfds_value)),$(shell echo $$(($(BOARD_NAND_PAGE_SIZE)+$(BOARD_NAND_SPARE_SIZE)))),$(_isfds_value))\
$(eval _isfds_value :=))
endef

# $(1): The file(s) to check (often $@)
# $(1): The file(s) to check (often $@)
# $(2): The maximum total image size, in decimal bytes.
# $(2): The partition size.
#    Make sure to take into account any reserved space needed for the FS.
define assert-max-image-size
#
# If $(2) is empty, evaluates to "true"
#
# Reserve bad blocks.  Make sure that MAX(1% of partition size, 2 blocks)
# is left over after the image has been flashed.  Round the 1% up to the
# next whole flash block size.
define assert-max-file-size
$(if $(2), \
$(if $(2), \
  size=$$(for i in $(1); do $(call get-file-size,$$i); echo +; done; echo 0); \
  size=$$(for i in $(1); do $(call get-file-size,$$i); echo +; done; echo 0); \
  total=$$(( $$( echo "$$size" ) )); \
  total=$$(( $$( echo "$$size" ) )); \
  printname=$$(echo -n "$(1)" | tr " " +); \
  printname=$$(echo -n "$(1)" | tr " " +); \
  img_blocksize=$(call image-size-from-data-size,$(BOARD_FLASH_BLOCK_SIZE)); \
  maxsize=$(2); \
  twoblocks=$$((img_blocksize * 2)); \
  onepct=$$((((($(2) / 100) - 1) / img_blocksize + 1) * img_blocksize)); \
  reserve=$$((twoblocks > onepct ? twoblocks : onepct)); \
  maxsize=$$(($(2) - reserve)); \
  echo "$$printname maxsize=$$maxsize blocksize=$$img_blocksize total=$$total reserve=$$reserve"; \
  if [ "$$total" -gt "$$maxsize" ]; then \
  if [ "$$total" -gt "$$maxsize" ]; then \
    echo "error: $$printname too large ($$total > [$(2) - $$reserve])"; \
    echo "error: $$printname too large ($$total > $$maxsize)"; \
    false; \
    false; \
  elif [ "$$total" -gt $$((maxsize - 32768)) ]; then \
  elif [ "$$total" -gt $$((maxsize - 32768)) ]; then \
    echo "WARNING: $$printname approaching size limit ($$total now; limit $$maxsize)"; \
    echo "WARNING: $$printname approaching size limit ($$total now; limit $$maxsize)"; \
@@ -2787,17 +2764,6 @@ $(if $(2), \
 )
 )
endef
endef


# Like assert-max-file-size, but the second argument is a partition
# size, which we'll convert to a max image size before checking it
# against the files.
#
# $(1): The file(s) to check (often $@)
# $(2): The partition size.
define assert-max-image-size
$(if $(2), \
  $(call assert-max-file-size,$(1),$(call image-size-from-data-size,$(2))))
endef



###########################################################
###########################################################
## Define device-specific radio files
## Define device-specific radio files
+0 −2
Original line number Original line Diff line number Diff line
@@ -63,8 +63,6 @@ TARGET_USES_64_BIT_BINDER := true


BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736	# 1.5 GB
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736	# 1.5 GB


# TODO(b/35790399): remove when b/35790399 is fixed.
BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_FLASH_BLOCK_SIZE := 512


BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
+0 −2
Original line number Original line Diff line number Diff line
@@ -74,8 +74,6 @@ BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp
# Fix this!
# Fix this!
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2147483648


# TODO(b/35790399): remove when b/35790399 is fixed.
BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_FLASH_BLOCK_SIZE := 512


BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
+0 −2
Original line number Original line Diff line number Diff line
@@ -55,8 +55,6 @@ TARGET_CPU_VARIANT := generic


BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736


# TODO(b/35790399): remove when b/35790399 is fixed.
BOARD_NAND_SPARE_SIZE := 0
BOARD_FLASH_BLOCK_SIZE := 512
BOARD_FLASH_BLOCK_SIZE := 512


BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true