[U-Boot] ubifsmount problems
Simon Kagstrom
simon.kagstrom at netinsight.net
Tue Jul 7 11:16:54 CEST 2009
Hi!
I'm trying to get ubifs working in U-boot on a ARM-based board (OpenRD
base). I first encountered a number of build problems, and I'll send a
set of patches to fix those later today, but I still can't get it to
mount my filesystem. This is what I've done.
0. The board uses a Marvell 88f6281 and has a 512MB Hynix NAND flash
http://www.hynix.com/datasheet/pdf/flash/HY27UF084G2M%20Series(Rev.0.7).pdf
which works fine with normal accesses (nand read/write etc)
1. I've created a small 4MB ubifs image with the upstream git head of mtd-utils:
mkfs.ubifs -r vobb -m 2KiB -e 126976 -c 30 -o /tmp/ubifs.img -x zlib
ubinize -o /tmp/ubi.img -m 2KiB -p 128KiB -s 2KiB /tmp/ubinize.cfg -O 2048
/tmp/ubinize.cfg is below, and the rest of the options are the same
as the normal OpenRD base filesystem is built with. The filesystem
just contains a single file with some text in.
Linux can properly mount it (2.6.30). I've also tried with various
other options, but it all fails in some way.
2. I have the following U-boot environment:
mtdids=nand0=nand_mtd
mtdparts=mtdparts=nand_mtd:0x100000 at 0x000000(uboot),0x400000 at 0x100000(uImage),0x1fb00000 at 0x500000(rootfs)
and I've written my filesystem image to (confusingly enough) the
uImage partition using U-boots nand write command.
3. I setup the UBI partition with
Marvell>> ubi part uImage 2048
Creating 1 MTD partitions on "nand0":
0x000000100000-0x000000500000 : "mtd=1"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 126976 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 2048 (aligned 2048)
UBI: data offset: 4096
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=1"
UBI: MTD device size: 4 MiB
UBI: number of good PEBs: 32
UBI: number of bad PEBs: 0
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 0
UBI: total number of reserved PEBs: 32
UBI: number of PEBs reserved for bad PEB handling: 2
UBI: max/mean erase counter: 1/0
which seemingly works fine (the extra paramenter to ubi part is for
the VID header offset, it's part of the coming patch set).
4. I try to mount the image with (the name is from ubinize.cfg below):
Marvell>> ubifsmount rootfs
name ubi:rootfs, flags 0x1
UBIFS: recovery needed
UBIFS error (pid 0): check_lpt_crc: invalid crc in LPT node: crc 3e1 calc 2105
UBIFS error (pid 0): ubifs_read_nnode: error -22 reading nnode at 7:29
Error reading superblock on volume 'ubi:rootfs'!
and here is where I'm stuck.
Anyone has any clue as to why this fails?
Thanks,
// Simon
[ubifs]
mode=ubi
image=/tmp/ubifs.img
vol_id=0
vol_size=2MiB
vol_type=dynamic
vol_name=rootfs
vol_flags=autoresize
More information about the U-Boot
mailing list