[sent again to reach the mailing lists] On Sunday 03 January 2010 13:11:52 Martin Jansa wrote: > On Sat, Dec 26, 2009 at 09:25:57PM +0100, Christoph Mair wrote: > > Hello, > > > > I tried to use SHR the ubi images on my freerunner, but they did not > > work. Does someone know the parameters which are passed to mkfs.ubifs? I > > think that the ubi fileystem is created for NAND flashes with subpage > > support, but this feature does not work on the freerunner. Passing -s > > 2048 should create a working image (but I did not verify this yet). > > Params are in: > http://git.openembedded.org/cgit.cgi/openembedded/tree/conf/machine/om-gta0 > 2.conf > > MKUBIFS_ARGS = "-m 2048 -e 129024 -c 2047" > for mkfs.ubifs > > UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512" > for ubinize > > So I don't see param for subpage setting for mkfs.ubifs, its only in > ubinize, but it didn't help for my NAND, even when I prepare ubi volume on > neo with -s 2048 -O 2048 and then try to updatevol with full image (small > image like initramfs-kexecboot works for me just fine). That's why I > didn't push patch for setting it in UBINIZE_ARGS. Yes, my fault. mkfs.ubifs does not care about subpages. The critical point here is the logical eraseblock size: Quote from http://www.linux-mtd.infradead.org/doc/ubi.html#L_subpage: "Indeed, let's consider a NAND flash with 128KiB eraseblocks and 2048-byte pages. If it does not have sub-pages, UBI puts the the VID header at physical offset 2048, so LEB size becomes 124KiB (128KiB minus one NAND page which stores the EC header and minus another NAND page which stores the VID header."
Therefore the params should be: MKUBIFS_ARGS = "-m 2048 -e 126976 -c 2047" With these parameters, I successfully wrote a ubifs image to a ubi volume: flash_eraseall /dev/mtd6 ubiattach /dev/ubi_ctrl -m6 -O 2048 ubimkvol /dev/ubi0 -m -Nrootfs ubiupdatevol /dev/ubi0_0 test.ubifs mount -t ubifs ubi0_0 /mnt/ The first step (flash_eraseall) is optional and only needed if ubiattach fails. IMHO the ubinize params should be UBINIZE_ARGS = "-m 2048 -p 128KiB -s 2048" but until now I did not get this to work. I can write the image (sometimes it needs a few tries) but mount does not work. > > To fix this, we need to tell the kernel that the mtd partition 6 contains > > a ubi volume which contains the ubifs rootfs: rootfstype=ubifs > > ubi.mtd=6,2048 root=ubi0:rootfs. > > For a "normal" boot qi passes rootfstype=jffs2 root=/dev/mtdblock6 to the > > kernel. Just changing the boot params within the kernel configuration > > does not work. Therefore I patched qi :) > > Ah great!, thanks Remember that ubi0:rootfs specifies the volume name. The current ubinize.cfg sets this name to om-gta02-rootfs, so change this to ubi0:om-gta02-rootfs Christoph _______________________________________________ Openmoko community mailing list firstname.lastname@example.org http://lists.openmoko.org/mailman/listinfo/community