UBI Errors on DaVinci OMAP L-138/DA850
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
____________________________________________________________________
mtd/nand/nand_ids.c.mine renamed from mtd/nand/nand_ids.c +1 -1
@@ -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},
Quoted 33 lines · Caglar Akyuz
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.ubiThen I tried to attach it with:
$ubiattach
/dev/ubi_ctrl-m 4However, 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/cfBut 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
-EBADMSGerror went away. So I patchednand_ids.cto 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)
Quoted 3 lines
I wonder:
* if this modification has any side effects?
Probably sub-pages are not supported with this change?
Quoted 3 lines
* 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.
Most probably the flash does support sub-pages because of HW ECC support. I do not know DaVinchi platform at all, but I guess what you need to do is to set NAND_NO_SUBPAGE_WRITE in chip options in your platform data. But it is better to talk to DaVinchi guys (CCed some).
Signature · 2 lines
Best Regards, Artem Bityutskiy (Артём Битюцкий)