]> git.dujemihanovic.xyz Git - u-boot.git/commit
env: mmc : align erase address and size on erase_grp_size
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Tue, 15 Feb 2022 15:23:23 +0000 (16:23 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Wed, 15 Jun 2022 06:34:18 +0000 (15:34 +0900)
commitd72267049b484577294e17140b369dee339b2352
treef647be6529e9e1692d8377e8b1fef31adc5cf4e1
parent212875e707b6bc75780386c2cb28fbac7e2ab8f3
env: mmc : align erase address and size on erase_grp_size

On eMMC device, the erase_grp_size > 1 so the address and size for the
erase block command in env/mmc.c can be unaligned on erase group size and
some strange trace occurs and the result is not guarantee by MMC devices.

The SD-Card behavior doesn't change as erase_grp_size = 1 for SD-Card.

For example, on eMMC present on STM32MP15C-EV1 and before the patch:

  STM32MP> env erase

  Erasing Environment on MMC...

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x27ff

  16 blocks erased: OK

  Caution! Your devices Erase group is 0x400
  The erase range would be change to 0x2000~0x23ff

  16 blocks erased: OK
  OK

After this patch:
  STM32MP> env erase
  Erasing Environment on MMC...
  1024 blocks erased at 0x2000: OK
  1024 blocks erased at 0x2000: OK
  OK

Here the 2 copies of U-Boot environment are in the same devices Erase
group: it is erased twice.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
env/mmc.c