[U-Boot] Current status of UBI?
Matthew L. Creech
mlcreech at gmail.com
Thu Apr 30 21:36:11 CEST 2009
Hi, I'm using the latest U-Boot GIT snapshot (4/28), and trying to get
UBI/UBIFS working. I'm wondering what the current status of UBI
support in U-Boot is, and whether what I'm doing will work.
The goal is to get a single R/W filesystem on a large NAND partition.
If I understand correctly, I should be able to:
1. [In U-Boot]: Use "mtdparts" to partition my NAND device
2. [In U-Boot]: Use "ubi part" to setup UBI on a partition
3. [In U-Boot]: Use "ubi create" to create a volume which fills the
whole partition
4. [On my PC]: Use "mkfs.ubifs" & "ubinize" to create a UBIFS image
5. [In U-Boot]: Use "ubi write" to write the UBIFS image to the volume
6. [In Linux]: Boot using the UBIFS image as my rootfs
Is this more or less correct?
The problem I'm currently running into is step 2, which throws an
error in ubi_io_write() (see below). Googling around turned up a few
hits that suggested turning off sub-page writes, so I tried adding
NAND_NO_SUBPAGE_WRITE to NAND_SAMSUNG_LP_OPTIONS, but that causes a
crash. Actually, it gets to volume table copy #2 in that case, so the
crash may be unrelated to subpage writes.
Anyway, I'm mainly wondering whether this is a good approach before I
go chasing down this crash, and also whether others are using UBIFS on
large-page flash devices successfully in U-Boot. Any feedback is
appreciated, thanks!
====
=> mtdparts
device nand0 <flash>, # parts = 2
#: name size offset mask_flags
0: uboot 0x00500000 0x00000000 0
1: root 0x3fb00000 0x00500000 0
active partition: nand0,0 - (uboot) 0x00500000 @ 0x00000000
defaults:
mtdids : nand0=flash
mtdparts: mtdparts=flash:5M(uboot),-(root)
=> ubi part root
Creating 1 MTD partitions on "nand0":
0x00500000-0x40000000 : "mtd=1"
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
nand_read_bbt: Bad block at 0x01fc0000
nand_read_bbt: Bad block at 0x03440000
nand_read_bbt: Bad block at 0x03460000
nand_read_bbt: Bad block at 0x21fc0000
nand_read_bbt: Bad block at 0x21fe0000
nand_read_bbt: Bad block at 0x3a000000
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 131072 bytes (128 KiB)
UBI: logical eraseblock size: 129024 bytes
UBI: smallest flash I/O unit: 2048
UBI: sub-page size: 512
UBI: VID header offset: 512 (aligned 512)
UBI: data offset: 2048
UBI: empty MTD device detected
UBI: create volume table (copy #1)
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 0:512, written
0 bytes
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 1:512, written
0 bytes
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 2:512, written
0 bytes
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 3:512, written
0 bytes
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 4:512, written
0 bytes
UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 5:512, written
0 bytes
UBI error: ubi_init: cannot attach mtd1
UBI error: ubi_init: UBI error: cannot initialize UBI, error -5
UBI init error -5
exit not allowed from main input shell.
=>
--
Matthew L. Creech
More information about the U-Boot
mailing list