<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Hi all,<br><br>We are basically trying to mount our inbuilt NAND flash device and write some files onto it using UBI/UBI-FS.<br><br>After running some of the following steps successfully, the linux kernel crashed after running ‘ubimkvol’.<br><br>Please help me if I am doing something wrong in any of the steps below which is causing ubimkvol to be killed. &nbsp;<br><br><br>Flash Size&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp; &nbsp;800 MB<br>Linux Kernel Version&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp; &nbsp;3.1.14<br>Page size&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :&nbsp;&nbsp;
 &nbsp;8192<br>Physical Erase Block Size&nbsp;&nbsp; &nbsp;:&nbsp;&nbsp; &nbsp;1MiB ( We are taking)<br><br><br><span style="font-weight:bold;color:rgb(0, 0, 191);">These are the steps we are following:</span><br><br>1. Create ubifs image by using mkfs.ubifs command<br><br><span style="color:rgb(0, 0, 255);">&nbsp;#mkfs.ubifs -v -r rootfs -o ubifs.img -m 8192 -e 1032192 -c 788</span><br><br>&nbsp;Description:<br><br>&nbsp;We are taking Physical Erase Block (PEB) size as 1048576 bytes(1MiB)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -e -- Erase Block Size<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e = (1048576 - 2 * 8192) = 1032192 bytes<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -c --The maximum size, in LEBs, of this file system<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c = 788(see the below calculation)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PEB Size (SP) =
 1048576<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LEB Size (SL) =&nbsp; 1048576 - 2 * 8192 = 1032192<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total Flash Size = 800 MiB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Total number of PEBs on the MTD device (P) = 800 MiB/1048576 = 800<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Number of PEBs reserved for bad PEB handling(B) is 1% of P = 8<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The overhead related to storing EC and VID headers in bytes<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; i.e. O = SP - SL = 1048576 - 1032192 = 16384.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UBI Overhead =&nbsp; (B + 4) * SP + O * (P - B -
 4)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; (8 + 4) * 1048576 + 16384(800 - 8 -4)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp; ~24<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Available PEB's = 800 - 24 = 776 PEB's.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Calcultion of 'c' = ((Available PEB's)*PEB)/LEB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = (776 * 1048576)/ 1032192<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = ~ 788 LEB's.<br><br>2. Create ubinize.cfg file and write the contents into
 it<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # vi ubinize.cfg<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ubifs]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mode=ubi<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; image=ubifs.img<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vol_id=0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vol_size=512MiB<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vol_type=dynamic<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vol_name=rootfs<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vol_flags=autoresize<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; give ubinise command<br><br>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:rgb(0, 0, 255);"><span style="color:rgb(0, 0, 191);">#ubinize -o ubi.img -m 8192 -p 1MiB&nbsp; ubinize.cfg
 -v</span></span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = 8192 page size.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p = 1MiB physical erase block<br><br>3. Flash_Erase: Prepares NAND partition; MTD partition 3 needs to be erased<br>&nbsp;&nbsp;&nbsp; and used for UBI file system.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:rgb(0, 0, 191);"> # flash_erase /dev/mtd3 0 0</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 0) - indicates erases the memory from available first LEB to last LEB<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It displays the following message :<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Erasing 1024 Kibyte @ 31f00000 -- 100 % complete<br><br>4. UBI Formatting :Flash the UBI file system image (ubi.img) to MTD partition "3"<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:rgb(0, 0, 255);">&nbsp; # ubiformat /dev/mtd3 -f ubi.img</span><br><br>5. Ubiattach: Attach MTD device to
 UBI<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:rgb(0, 0, 191);"># ubiattach /dev/mtd3 -f ubi.img</span><br style="color:rgb(0, 0, 191);"><br>6. ubimkvol : Create an UBI volume - the created volume will be empty<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:rgb(0, 0, 191);"> # ubimkvol /dev/ubi0 -N ubifs_volume -m</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; It displays the following message :<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set volume size to 813367296<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:rgb(255, 0, 0);"> Killed</span><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (log of ubimkvol is attached please find it for further reference)<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:rgb(255, 0, 0);">The kernel crashed after running this step.</span><br><br>Thanks in
 advance,<br>Charan.</td></tr></table>