UBI Errors on DaVinci OMAP L-138/DA850

Caglar Akyuz caglarakyuz at gmail.com
Tue Apr 20 18:15:18 EDT 2010


Hello,

Today I made my first attempt to try ubifs on a DaVinci processor, OMAP 
L-138 or DA850 specifically. My board has a Micron SLC 128 MiB NAND chip with 
part number MT29F1G08ABCHC(chip id is 0xa1)

I formatted and flashed my partition with commands:

 $ubiformat /dev/mtd4
 $ubiformat /dev/mtd4 -f rootfs.ubi

Then I tried to attach it with:

 $ubiattach /dev/ubi_ctrl -m 4

However, I hit the FAQ entry at [1], namely driver returning -EBADMSG. Then I 
tried to mount an empty flash with following commands in case my image has 
something wrong:

 $ubiformat /dev/mtd4
 $ubiattach /dev/ubi_ctrl -m 4
 $ubimkvol /dev/ubi0 -N filesytem -s 100MiB
 $mount -t ubifs /dev/ubi0_0 /mnt/cf

But this resulted the same error message when I read/write something to/from the 
flash. (To be honest I do not remember if the error was due to read, write or remount)

Then I tried formating and attaching my partition with '-s 2048' and -O '2048' 
parameters respectively and -EBADMSG error went away. So I patched 
nand_ids.c to add 'NAND_NO_SUBPAGE_WRITE'  option to my NAND flash
(patch is attached) and after this operation I was able to use ubifs as expected 
on my board.(Of course re-building my ubi image with new nand parameters)

I wonder:

* if this modification has any side effects?
* Is this error due to my NAND flash or DaVinci driver is doing something wrong? 
  Unfortunately, Micron datasheet is not publically available and I cannot check if it
  is supporting 512 KiB sub-page operations or not.


Thanks in advance,
Caglar


[1] http://www.linux-mtd.infradead.org/faq/ubifs.html#L_ecc_error

____________________________________________________________________

--- drivers/mtd/nand/nand_ids.c	2010-04-21 01:04:15.094363619 +0300
+++ drivers/mtd/nand/nand_ids.c.mine	2010-04-21 01:04:02.480551529 +0300
@@ -80,7 +80,7 @@
 	{"NAND 64MiB 3,3V 16-bit",	0xC2, 0,  64, 0, LP_OPTIONS16},
 
 	/* 1 Gigabit */
-	{"NAND 128MiB 1,8V 8-bit",	0xA1, 0, 128, 0, LP_OPTIONS},
+	{"NAND 128MiB 1,8V 8-bit",	0xA1, 0, 128, 0, LP_OPTIONS | NAND_NO_SUBPAGE_WRITE},
 	{"NAND 128MiB 3,3V 8-bit",	0xF1, 0, 128, 0, LP_OPTIONS},
 	{"NAND 128MiB 1,8V 16-bit",	0xB1, 0, 128, 0, LP_OPTIONS16},
 	{"NAND 128MiB 3,3V 16-bit",	0xC1, 0, 128, 0, LP_OPTIONS16},



More information about the linux-mtd mailing list