UBI: calculation for max number of bad-blocks
Richard Genoud
richard.genoud at gmail.com
Mon Jan 13 11:08:59 EST 2014
2014/1/13 Gupta, Pekon <pekon at ti.com>:
> Hi Richard,
Hi !
>
> With reference to commit message:
> commit ba4087e956d336488c6df9dfca65d1e70cf480f1
> Author: Richard Genoud <richard.genoud at gmail.com>
> UBI: use the whole MTD device size to get bad_peb_limit
> -----------------
> " NAND flash manufacturers give a
> minimum number of valid block (NVB) during the endurance life of the
> device, e.g.:
>
> Parameter Symbol Min Max Unit Notes
> --------------------------------------------------------------
> Valid block number NVB 1004 1024 Blocks 1
>
> From this number we can deduce the maximum number of bad PEB that a device will
> contain during its endurance life: a 128MiB NAND flash (1024 PEB) will not have
> less than 20 bad blocks during the flash endurance life.
>
> But the manufacturer doesn't tell where those bad block will appear. He doesn't
> say either if they will be equally disposed on the whole device (and I'm pretty
> sure they won't). So, according to the datasheets, we should reserve the
> maximum number of bad PEB for each UBI device (worst case scenario: 20 bad
> blocks appears on the smallest MTD partition).
>
> So this patch make UBI use the whole MTD device size to calculate the maximum
> bad expected eraseblocks.
>
> The Kconfig option is in per1024 blocks, thus it can have a default value of 20
> which is *very* common for NAND devices."
> -----------------
>
> I was not able to understand the need to do the convert
> Min.NVB (Minimum number of valid blocks) into a ratio of 'max_beb_per1024'.
> Can't we just use " Max(bad-blocks) = Max(NVB) - Min(NVB)" ?
> And make reserve_PEB > Max(bad-blocks) in UBI partitions, as all bad-blocks
> can appear together in same partition itself.
>
> with regards, pekon
Well, It's just to have a number independent from the flash size.
On the flash I'm currently working with, I've got:
Min(NVB) = 1008 and Max(NVB)=2048
Still, the kernel default config value of 20max_beb_per1024 is still correct.
regards,
Richard.
More information about the linux-mtd
mailing list