145 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| -------------------
 | |
| UBI usage in U-Boot
 | |
| -------------------
 | |
| 
 | |
| Here the list of the currently implemented UBI commands:
 | |
| 
 | |
| => help ubi
 | |
| ubi - ubi commands
 | |
| 
 | |
| Usage:
 | |
| ubi part [part] [offset]
 | |
|  - Show or set current partition (with optional VID header offset)
 | |
| ubi info [l[ayout]] - Display volume and ubi layout information
 | |
| ubi create[vol] volume [size] [type] - create volume name with size
 | |
| ubi write[vol] address volume size - Write volume from address with size
 | |
| ubi read[vol] address volume [size] - Read volume to address with size
 | |
| ubi remove[vol] volume - Remove volume
 | |
| [Legends]
 | |
|  volume: character name
 | |
|  size: specified in bytes
 | |
|  type: s[tatic] or d[ynamic] (default=dynamic)
 | |
| 
 | |
| 
 | |
| The first command that is needed to be issues is "ubi part" to connect
 | |
| one mtd partition to the UBI subsystem. This command will either create
 | |
| a new UBI device on the requested MTD partition. Or it will attach a
 | |
| previously created UBI device. The other UBI commands will only work
 | |
| when such a UBI device is attached (via "ubi part"). Here an example:
 | |
| 
 | |
| => mtdparts
 | |
| 
 | |
| device nor0 <1fc000000.nor_flash>, # parts = 6
 | |
|  #: name                size            offset          mask_flags
 | |
|  0: kernel              0x00200000      0x00000000      0
 | |
|  1: dtb                 0x00040000      0x00200000      0
 | |
|  2: root                0x00200000      0x00240000      0
 | |
|  3: user                0x01ac0000      0x00440000      0
 | |
|  4: env                 0x00080000      0x01f00000      0
 | |
|  5: u-boot              0x00080000      0x01f80000      0
 | |
| 
 | |
| active partition: nor0,0 - (kernel) 0x00200000 @ 0x00000000
 | |
| 
 | |
| defaults:
 | |
| mtdids  : nor0=1fc000000.nor_flash
 | |
| mtdparts: mtdparts=1fc000000.nor_flash:2m(kernel),256k(dtb),2m(root),27392k(user),512k(env),512k(u-boot)
 | |
| 
 | |
| => ubi part root
 | |
| Creating 1 MTD partitions on "nor0":
 | |
| 0x000000240000-0x000000440000 : "mtd=2"
 | |
| UBI: attaching mtd1 to ubi0
 | |
| UBI: physical eraseblock size:   262144 bytes (256 KiB)
 | |
| UBI: logical eraseblock size:    262016 bytes
 | |
| UBI: smallest flash I/O unit:    1
 | |
| UBI: VID header offset:          64 (aligned 64)
 | |
| UBI: data offset:                128
 | |
| UBI: attached mtd1 to ubi0
 | |
| UBI: MTD device name:            "mtd=2"
 | |
| UBI: MTD device size:            2 MiB
 | |
| UBI: number of good PEBs:        8
 | |
| 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: 8
 | |
| UBI: number of PEBs reserved for bad PEB handling: 0
 | |
| UBI: max/mean erase counter: 2/1
 | |
| 
 | |
| 
 | |
| Now that the UBI device is attached, this device can be modified
 | |
| using the following commands:
 | |
| 
 | |
| ubi info	Display volume and ubi layout information
 | |
| ubi createvol	Create UBI volume on UBI device
 | |
| ubi removevol	Remove UBI volume from UBI device
 | |
| ubi read	Read data from UBI volume to memory
 | |
| ubi write	Write data from memory to UBI volume
 | |
| 
 | |
| 
 | |
| Here a few examples on the usage:
 | |
| 
 | |
| => ubi create testvol
 | |
| Creating dynamic volume testvol of size 1048064
 | |
| 
 | |
| => ubi info l
 | |
| UBI: volume information dump:
 | |
| UBI: vol_id          0
 | |
| UBI: reserved_pebs   4
 | |
| UBI: alignment       1
 | |
| UBI: data_pad        0
 | |
| UBI: vol_type        3
 | |
| UBI: name_len        7
 | |
| UBI: usable_leb_size 262016
 | |
| UBI: used_ebs        4
 | |
| UBI: used_bytes      1048064
 | |
| UBI: last_eb_bytes   262016
 | |
| UBI: corrupted       0
 | |
| UBI: upd_marker      0
 | |
| UBI: name            testvol
 | |
| 
 | |
| UBI: volume information dump:
 | |
| UBI: vol_id          2147479551
 | |
| UBI: reserved_pebs   2
 | |
| UBI: alignment       1
 | |
| UBI: data_pad        0
 | |
| UBI: vol_type        3
 | |
| UBI: name_len        13
 | |
| UBI: usable_leb_size 262016
 | |
| UBI: used_ebs        2
 | |
| UBI: used_bytes      524032
 | |
| UBI: last_eb_bytes   2
 | |
| UBI: corrupted       0
 | |
| UBI: upd_marker      0
 | |
| UBI: name            layout volume
 | |
| 
 | |
| => ubi info
 | |
| UBI: MTD device name:            "mtd=2"
 | |
| UBI: MTD device size:            2 MiB
 | |
| UBI: physical eraseblock size:   262144 bytes (256 KiB)
 | |
| UBI: logical eraseblock size:    262016 bytes
 | |
| UBI: number of good PEBs:        8
 | |
| UBI: number of bad PEBs:         0
 | |
| UBI: smallest flash I/O unit:    1
 | |
| UBI: VID header offset:          64 (aligned 64)
 | |
| UBI: data offset:                128
 | |
| 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: 8
 | |
| UBI: number of PEBs reserved for bad PEB handling: 0
 | |
| UBI: max/mean erase counter: 4/1
 | |
| 
 | |
| => ubi write 800000 testvol 80000
 | |
| Volume "testvol" found at volume id 0
 | |
| 
 | |
| => ubi read 900000 testvol 80000
 | |
| Volume testvol found at volume id 0
 | |
| read 524288 bytes from volume 0 to 900000(buf address)
 | |
| 
 | |
| => cmp.b 800000 900000 80000
 | |
| Total of 524288 bytes were the same
 |