[BUG] emmc `env erase` erase unrelated data

Tom Rini trini at konsulko.com
Mon Nov 29 16:25:30 CET 2021


On Mon, Nov 29, 2021 at 02:21:23PM +0100, Francesco Dolcini wrote:
> Hello,
> I noticed an issue with env erase command when environment is stored in a
> emmc device, in case start/end are not aligned to the emmc erase groups
> size additional data is erased with just a warning.
> 
> ```
> Erasing Environment on MMC...
> 
> Caution! Your devices Erase group is 0x400
> The erase range would be change to 0xf800~0xfbff
> ```
> 
> Output from `mmc info`:
> 
> ```
> Device: FSL_SDHC
> Manufacturer ID: 13
> OEM: 14e
> Name: S0J56
> Bus Speed: 200000000
> Mode: HS400 (200MHz)
> Rd Block Len: 512
> MMC version 5.1
> High Capacity: Yes
> Capacity: 14.8 GiB
> Bus Width: 8-bit DDR
> Erase Group Size: 512 KiB
> HC WP Group Size: 8 MiB
> User Capacity: 14.8 GiB WRREL
> Boot Capacity: 31.5 MiB ENH
> RPMB Capacity: 4 MiB ENH
> ```
> 
> I do not think that this is the correct behavior, I think that in case
> the env is not aligned to the erase block size the erase should either
> fail or fall back to just writing 0xff. Not sure if just changing
> `mmc_berase()` is going to affect any other use case in which is valid
> to have a non-aligned start/size and just erase around it after a
> warning.
> 
> Any comment?

Largely intentional behavior.  Perhaps the help text at least should be
updated to note that environment size for MMC needs to be a multiple of
erase block size?  And further that when using redundant environment
it's strongly encouraged to make sure each environment is on its own
erase block.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20211129/da92a0c2/attachment.sig>


More information about the U-Boot mailing list