Blame view
doc/README.ubi
6.54 KB
ae8082c7e Add UBI README |
1 2 3 |
------------------- UBI usage in U-Boot ------------------- |
cc63bb05e doc/README.ubi: A... |
4 5 |
UBI support in U-Boot is broken down into five separate commands. The first is the ubi command, which has six subcommands: |
ae8082c7e Add UBI README |
6 7 8 9 10 11 12 13 14 15 |
=> 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 |
cc734f5ab cmd_ubi: add writ... |
16 17 |
ubi write.part address volume size [fullsize] - Write part of a volume from address |
ae8082c7e Add UBI README |
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
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 |
cc734f5ab cmd_ubi: add writ... |
81 |
ubi write.part Write data from memory to UBI volume, in parts |
ae8082c7e Add UBI README |
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 |
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 |
cc63bb05e doc/README.ubi: A... |
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 |
Next, the ubifsmount command allows you to access filesystems on the UBI partition which has been attached with the ubi part command: => help ubifsmount ubifsmount - mount UBIFS volume Usage: ubifsmount <volume-name> - mount 'volume-name' volume For example: => ubifsmount ubi0:recovery UBIFS: mounted UBI device 0, volume 0, name "recovery" UBIFS: mounted read-only UBIFS: file system size: 46473216 bytes (45384 KiB, 44 MiB, 366 LEBs) UBIFS: journal size: 6348800 bytes (6200 KiB, 6 MiB, 50 LEBs) UBIFS: media format: w4/r0 (latest is w4/r0) UBIFS: default compressor: LZO UBIFS: reserved for root: 0 bytes (0 KiB) Note that unlike Linux, U-Boot can only have one active UBI partition at a time, which can be referred to as ubi0, and must be supplied along with the name of the filesystem you are mounting. Once a UBI filesystem has been mounted, the ubifsls command allows you to list the contents of a directory in the filesystem: => help ubifsls ubifsls - list files in a directory Usage: ubifsls [directory] - list files in a 'directory' (default '/') For example: => ubifsls |
93e145964 Coding Style clea... |
190 191 |
17442 Thu Jan 01 02:57:38 1970 imx28-evk.dtb 2998146 Thu Jan 01 02:57:43 1970 zImage |
cc63bb05e doc/README.ubi: A... |
192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
And the ubifsload command allows you to load a file from a UBI filesystem: => help ubifsload ubifsload - load file from an UBIFS filesystem Usage: ubifsload <addr> <filename> [bytes] - load file 'filename' to address 'addr' For example: => ubifsload ${loadaddr} zImage Loading file 'zImage' to addr 0x42000000 with size 2998146 (0x002dbf82)... Done Finally, you can unmount the UBI filesystem with the ubifsumount command: => help ubifsumount ubifsumount - unmount UBIFS volume Usage: ubifsumount - unmount current volume For example: => ubifsumount Unmounting UBIFS volume recovery! |