confusion UBI overhead and volume size calculations
twebb
taliaferro62 at gmail.com
Mon Dec 21 10:57:14 EST 2009
I'm very confused about the calculations for determining max-leb-cnt
argument for mkfs.ubifs and vol_size for ubinize cfg file.
I have a 4GiB MLC nand device that has a 64M reserved area from
0x0-0x04000000. The rest, 0x04000000-0x100000000 (4032M), is
dedicated to a single MTD partition. A single UBI device will attach
to the single MTD partition and have 4 volumes. I'm using mkfs.ubifs
and ubinize at build time to create a single UBI image to be flashed
to the MTD device.
The four volumes are...
vol1 = 352M
vol2 = 352M
vol3 = 352M
vol4 = 2976M
The device data sheet specifies that the minimum valid block count is
7992 (of 8192 possible), so it seems like I should reserve 200 blocks
(100M) to allow for this.
My questions are:
1. How does the 100M reserved for "potentially bad blocks" get
handled when calculating the vol_size for each volume in the .cfg
file? I'd like to leave vol1-3 intact and only take space from vol4.
Would the vol_sizes be as follows?
vol1 vol_size = 352M
vol2 vol_size = 352M
vol3 vol_size = 352M
vol4 vol_size = 2976M-100M = 2876M
2. How is the overhead calculation from the linux-mtd site used in
determining the vol_sizes? ("The UBI overhead is (B + 4) * SP + O *
(P - B - 4) i.e., this amount of bytes will not be accessible for
users.")
3. Is max-leb-cnt simple the vol_size/LEB_size?
I'm really lost on this. I'd appreciate any input anyone may have on this.
Thanks,
twebb
More information about the linux-mtd
mailing list