• Tudor Ambarus's avatar
    mtd: spi-nor: add erase die (chip) capability · 96414231
    Tudor Ambarus authored
    JESD216 mentions die erase, but does not provide an opcode for it.
    Check BFPT dword 11, bits 30:24, "Chip Erase, Typical time", it says:
    
    "Typical time to erase one chip (die). User must poll device busy to
    determine if the operation has completed. For a device consisting of
    multiple dies, that are individually accessed, the time is for each die
    to which a chip erase command is applied."
    
    So when a flash consists of a single die, this is the erase time for the
    full chip (die) erase, and when it consists of multiple dies, it's the
    die erase time. Chip and die are the same thing.
    
    Add support for die erase. For now, benefit of the die erase when addr
    and len are aligned with die size. This could be improved however for
    the uniform and non-uniform erases cases to use the die erase when
    possible. For example if one requests that an erase of a 2 die device
    starting from the last 64KB of the first die to the end of the flash
    size, we could use just 2 commands, a 64KB erase and a die erase.
    This improvement is left as an exercise for the reader.
    Tested-by: default avatarFabio Estevam <festevam@denx.de>
    Link: https://lore.kernel.org/r/20231125123529.55686-2-tudor.ambarus@linaro.orgSigned-off-by: default avatarTudor Ambarus <tudor.ambarus@linaro.org>
    96414231
core.h 25.6 KB