| /rk3399_rockchip-uboot/drivers/mtd/ubi/ |
| H A D | build.c | 183 int ubi_volume_notify(struct ubi_device *ubi, struct ubi_volume *vol, int ntype) in ubi_volume_notify() argument 188 ubi_do_get_device_info(ubi, &nt.di); in ubi_volume_notify() 189 ubi_do_get_volume_info(ubi, vol, &nt.vi); in ubi_volume_notify() 196 ret = ubi_update_fastmap(ubi); in ubi_volume_notify() 198 ubi_msg(ubi, "Unable to write a new fastmap: %i", ret); in ubi_volume_notify() 215 int ubi_notify_all(struct ubi_device *ubi, int ntype, struct notifier_block *nb) in ubi_notify_all() argument 223 ubi_do_get_device_info(ubi, &nt.di); in ubi_notify_all() 225 mutex_lock(&ubi->device_mutex); in ubi_notify_all() 226 for (i = 0; i < ubi->vtbl_slots; i++) { in ubi_notify_all() 232 if (!ubi->volumes[i]) in ubi_notify_all() [all …]
|
| H A D | wl.c | 131 static int self_check_ec(struct ubi_device *ubi, int pnum, int ec); 132 static int self_check_in_wl_tree(const struct ubi_device *ubi, 134 static int self_check_in_pq(const struct ubi_device *ubi, 181 static void wl_entry_destroy(struct ubi_device *ubi, struct ubi_wl_entry *e) in wl_entry_destroy() argument 183 ubi->lookuptbl[e->pnum] = NULL; in wl_entry_destroy() 194 static int do_work(struct ubi_device *ubi) in do_work() argument 207 down_read(&ubi->work_sem); in do_work() 208 spin_lock(&ubi->wl_lock); in do_work() 209 if (list_empty(&ubi->works)) { in do_work() 210 spin_unlock(&ubi->wl_lock); in do_work() [all …]
|
| H A D | fastmap-wl.c | 17 void update_fastmap_work_fn(struct ubi_device *ubi) in update_fastmap_work_fn() 21 struct ubi_device *ubi = container_of(wrk, struct ubi_device, fm_work); in update_fastmap_work_fn() local 24 ubi_update_fastmap(ubi); in update_fastmap_work_fn() 25 spin_lock(&ubi->wl_lock); in update_fastmap_work_fn() 26 ubi->fm_work_scheduled = 0; in update_fastmap_work_fn() 27 spin_unlock(&ubi->wl_lock); in update_fastmap_work_fn() 55 static void return_unused_pool_pebs(struct ubi_device *ubi, in return_unused_pool_pebs() argument 62 e = ubi->lookuptbl[pool->pebs[i]]; in return_unused_pool_pebs() 63 wl_tree_add(e, &ubi->free); in return_unused_pool_pebs() 64 ubi->free_count++; in return_unused_pool_pebs() [all …]
|
| H A D | io.c | 87 static int self_check_not_bad(const struct ubi_device *ubi, int pnum); 88 static int self_check_peb_ec_hdr(const struct ubi_device *ubi, int pnum); 89 static int self_check_ec_hdr(const struct ubi_device *ubi, int pnum, 91 static int self_check_peb_vid_hdr(const struct ubi_device *ubi, int pnum); 92 static int self_check_vid_hdr(const struct ubi_device *ubi, int pnum, 94 static int self_check_write(struct ubi_device *ubi, const void *buf, int pnum, 119 int ubi_io_read(const struct ubi_device *ubi, void *buf, int pnum, int offset, in ubi_io_read() argument 128 ubi_assert(pnum >= 0 && pnum < ubi->peb_count); in ubi_io_read() 129 ubi_assert(offset >= 0 && offset + len <= ubi->peb_size); in ubi_io_read() 132 err = self_check_not_bad(ubi, pnum); in ubi_io_read() [all …]
|
| H A D | eba.c | 53 unsigned long long ubi_next_sqnum(struct ubi_device *ubi) in ubi_next_sqnum() argument 57 spin_lock(&ubi->ltree_lock); in ubi_next_sqnum() 58 sqnum = ubi->global_sqnum++; in ubi_next_sqnum() 59 spin_unlock(&ubi->ltree_lock); in ubi_next_sqnum() 72 static int ubi_get_compat(const struct ubi_device *ubi, int vol_id) in ubi_get_compat() argument 89 static struct ubi_ltree_entry *ltree_lookup(struct ubi_device *ubi, int vol_id, in ltree_lookup() argument 94 p = ubi->ltree.rb_node; in ltree_lookup() 128 static struct ubi_ltree_entry *ltree_add_entry(struct ubi_device *ubi, in ltree_add_entry() argument 142 spin_lock(&ubi->ltree_lock); in ltree_add_entry() 143 le1 = ltree_lookup(ubi, vol_id, lnum); in ltree_add_entry() [all …]
|
| H A D | vmt.c | 26 static int self_check_volumes(struct ubi_device *ubi); 67 struct ubi_device *ubi; in vol_attribute_show() local 69 ubi = ubi_get_device(vol->ubi->ubi_num); in vol_attribute_show() 70 if (!ubi) in vol_attribute_show() 73 spin_lock(&ubi->volumes_lock); in vol_attribute_show() 74 if (!ubi->volumes[vol->vol_id]) { in vol_attribute_show() 75 spin_unlock(&ubi->volumes_lock); in vol_attribute_show() 76 ubi_put_device(ubi); in vol_attribute_show() 81 spin_unlock(&ubi->volumes_lock); in vol_attribute_show() 110 spin_lock(&ubi->volumes_lock); in vol_attribute_show() [all …]
|
| H A D | vtbl.c | 61 static void self_vtbl_check(const struct ubi_device *ubi); 70 static int ubi_update_layout_vol(struct ubi_device *ubi) in ubi_update_layout_vol() argument 75 layout_vol = ubi->volumes[vol_id2idx(ubi, UBI_LAYOUT_VOLUME_ID)]; in ubi_update_layout_vol() 77 err = ubi_eba_atomic_leb_change(ubi, layout_vol, i, ubi->vtbl, in ubi_update_layout_vol() 78 ubi->vtbl_size); in ubi_update_layout_vol() 97 int ubi_change_vtbl_record(struct ubi_device *ubi, int idx, in ubi_change_vtbl_record() argument 103 ubi_assert(idx >= 0 && idx < ubi->vtbl_slots); in ubi_change_vtbl_record() 112 memcpy(&ubi->vtbl[idx], vtbl_rec, sizeof(struct ubi_vtbl_record)); in ubi_change_vtbl_record() 113 err = ubi_update_layout_vol(ubi); in ubi_change_vtbl_record() 115 self_vtbl_check(ubi); in ubi_change_vtbl_record() [all …]
|
| H A D | misc.c | 24 int ubi_calc_data_len(const struct ubi_device *ubi, const void *buf, in ubi_calc_data_len() argument 29 ubi_assert(!(length & (ubi->min_io_size - 1))); in ubi_calc_data_len() 36 length = ALIGN(i + 1, ubi->min_io_size); in ubi_calc_data_len() 50 int ubi_check_volume(struct ubi_device *ubi, int vol_id) in ubi_check_volume() argument 54 struct ubi_volume *vol = ubi->volumes[vol_id]; in ubi_check_volume() 73 err = ubi_eba_read_leb(ubi, vol, i, buf, 0, size, 1); in ubi_check_volume() 94 void ubi_update_reserved(struct ubi_device *ubi) in ubi_update_reserved() argument 96 int need = ubi->beb_rsvd_level - ubi->beb_rsvd_pebs; in ubi_update_reserved() 98 if (need <= 0 || ubi->avail_pebs == 0) in ubi_update_reserved() 101 need = min_t(int, need, ubi->avail_pebs); in ubi_update_reserved() [all …]
|
| H A D | ubi.h | 46 #define ubi_msg(ubi, fmt, ...) argument 48 #define ubi_msg(ubi, fmt, ...) printk(UBI_NAME_STR "%d: " fmt "\n", \ argument 49 ubi->ubi_num, ##__VA_ARGS__) 53 #define ubi_warn(ubi, fmt, ...) pr_warn(UBI_NAME_STR "%d warning: %s: " fmt "\n", \ argument 54 ubi->ubi_num, __func__, ##__VA_ARGS__) 56 #define ubi_err(ubi, fmt, ...) pr_err(UBI_NAME_STR "%d error: %s: " fmt "\n", \ argument 57 ubi->ubi_num, __func__, ##__VA_ARGS__) 315 struct ubi_device *ubi; member 766 int (*func)(struct ubi_device *ubi, struct ubi_work *wrk, int shutdown); 786 int ubi_add_to_av(struct ubi_device *ubi, struct ubi_attach_info *ai, int pnum, [all …]
|
| H A D | kapi.c | 32 void ubi_do_get_device_info(struct ubi_device *ubi, struct ubi_device_info *di) in ubi_do_get_device_info() argument 34 di->ubi_num = ubi->ubi_num; in ubi_do_get_device_info() 35 di->leb_size = ubi->leb_size; in ubi_do_get_device_info() 36 di->leb_start = ubi->leb_start; in ubi_do_get_device_info() 37 di->min_io_size = ubi->min_io_size; in ubi_do_get_device_info() 38 di->max_write_size = ubi->max_write_size; in ubi_do_get_device_info() 39 di->ro_mode = ubi->ro_mode; in ubi_do_get_device_info() 41 di->cdev = ubi->cdev.dev; in ubi_do_get_device_info() 56 struct ubi_device *ubi; in ubi_get_device_info() local 60 ubi = ubi_get_device(ubi_num); in ubi_get_device_info() [all …]
|
| H A D | fastmap.c | 26 static inline int *init_seen(struct ubi_device *ubi) in init_seen() argument 30 if (!ubi_dbg_chk_fastmap(ubi)) in init_seen() 33 ret = kcalloc(ubi->peb_count, sizeof(int), GFP_KERNEL); in init_seen() 55 static inline void set_seen(struct ubi_device *ubi, int pnum, int *seen) in set_seen() argument 57 if (!ubi_dbg_chk_fastmap(ubi) || !seen) in set_seen() 68 static int self_check_seen(struct ubi_device *ubi, int *seen) in self_check_seen() argument 72 if (!ubi_dbg_chk_fastmap(ubi) || !seen) in self_check_seen() 75 for (pnum = 0; pnum < ubi->peb_count; pnum++) { in self_check_seen() 76 if (!seen[pnum] && ubi->lookuptbl[pnum]) { in self_check_seen() 77 ubi_err(ubi, "self-check failed for PEB %d, fastmap didn't see it", pnum); in self_check_seen() [all …]
|
| H A D | debug.h | 12 void ubi_dump_flash(struct ubi_device *ubi, int pnum, int offset, int len); 58 int ubi_self_check_all_ff(struct ubi_device *ubi, int pnum, int offset, 62 int ubi_debugfs_init_dev(struct ubi_device *ubi); 63 void ubi_debugfs_exit_dev(struct ubi_device *ubi); 72 static inline int ubi_dbg_is_bgt_disabled(const struct ubi_device *ubi) in ubi_dbg_is_bgt_disabled() argument 74 return ubi->dbg.disable_bgt; in ubi_dbg_is_bgt_disabled() 83 static inline int ubi_dbg_is_bitflip(const struct ubi_device *ubi) in ubi_dbg_is_bitflip() argument 85 if (ubi->dbg.emulate_bitflips) in ubi_dbg_is_bitflip() 97 static inline int ubi_dbg_is_write_failure(const struct ubi_device *ubi) in ubi_dbg_is_write_failure() argument 99 if (ubi->dbg.emulate_io_failures) in ubi_dbg_is_write_failure() [all …]
|
| H A D | attach.c | 88 static int self_check_ai(struct ubi_device *ubi, struct ubi_attach_info *ai); 188 static int validate_vid_hdr(const struct ubi_device *ubi, in validate_vid_hdr() argument 207 ubi_err(ubi, "inconsistent vol_id"); in validate_vid_hdr() 217 ubi_err(ubi, "inconsistent vol_type"); in validate_vid_hdr() 222 ubi_err(ubi, "inconsistent used_ebs"); in validate_vid_hdr() 227 ubi_err(ubi, "inconsistent data_pad"); in validate_vid_hdr() 235 ubi_err(ubi, "inconsistent VID header at PEB %d", pnum); in validate_vid_hdr() 320 int ubi_compare_lebs(struct ubi_device *ubi, const struct ubi_ainf_peb *aeb, in ubi_compare_lebs() argument 337 ubi_err(ubi, "unsupported on-flash UBI format"); in ubi_compare_lebs() 368 vh = ubi_zalloc_vid_hdr(ubi, GFP_KERNEL); in ubi_compare_lebs() [all …]
|
| H A D | wl.h | 8 void update_fastmap_work_fn(struct ubi_device *ubi); 11 static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); 12 static void ubi_fastmap_close(struct ubi_device *ubi); 13 static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) in ubi_fastmap_init() argument 16 *count += (ubi->fm_size / ubi->leb_size) * 2; in ubi_fastmap_init() 18 INIT_WORK(&ubi->fm_work, update_fastmap_work_fn); in ubi_fastmap_init() 21 static struct ubi_wl_entry *may_reserve_for_fm(struct ubi_device *ubi, 25 static struct ubi_wl_entry *get_peb_for_wl(struct ubi_device *ubi); 26 static inline void ubi_fastmap_close(struct ubi_device *ubi) { } in ubi_fastmap_close() argument 27 static inline void ubi_fastmap_init(struct ubi_device *ubi, int *count) { } in ubi_fastmap_init() argument [all …]
|
| H A D | upd.c | 48 static int set_update_marker(struct ubi_device *ubi, struct ubi_volume *vol) in set_update_marker() argument 56 ubi_assert(ubi->vtbl[vol->vol_id].upd_marker); in set_update_marker() 61 vtbl_rec = ubi->vtbl[vol->vol_id]; in set_update_marker() 64 mutex_lock(&ubi->device_mutex); in set_update_marker() 65 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in set_update_marker() 67 mutex_unlock(&ubi->device_mutex); in set_update_marker() 81 static int clear_update_marker(struct ubi_device *ubi, struct ubi_volume *vol, in clear_update_marker() argument 89 vtbl_rec = ubi->vtbl[vol->vol_id]; in clear_update_marker() 104 mutex_lock(&ubi->device_mutex); in clear_update_marker() 105 err = ubi_change_vtbl_record(ubi, vol->vol_id, &vtbl_rec); in clear_update_marker() [all …]
|
| H A D | debug.c | 25 void ubi_dump_flash(struct ubi_device *ubi, int pnum, int offset, int len) in ubi_dump_flash() argument 30 loff_t addr = (loff_t)pnum * ubi->peb_size + offset; in ubi_dump_flash() 35 err = mtd_read(ubi->mtd, addr, len, &read, buf); in ubi_dump_flash() 37 ubi_err(ubi, "err %d while reading %d bytes from PEB %d:%d, read %zd bytes", in ubi_dump_flash() 42 ubi_msg(ubi, "dumping %d bytes of data from PEB %d, offset %d", in ubi_dump_flash() 256 struct ubi_device *ubi; in dfs_file_read() local 261 ubi = ubi_get_device(ubi_num); in dfs_file_read() 262 if (!ubi) in dfs_file_read() 264 d = &ubi->dbg; in dfs_file_read() 309 ubi_put_device(ubi); in dfs_file_read() [all …]
|
| /rk3399_rockchip-uboot/drivers/mtd/ubispl/ |
| H A D | ubispl.c | 23 static size_t ubi_calc_fm_size(struct ubi_scan_info *ubi) in ubi_calc_fm_size() argument 31 (ubi->peb_count * sizeof(struct ubi_fm_ec)) + in ubi_calc_fm_size() 33 (ubi->peb_count * sizeof(__be32))) + in ubi_calc_fm_size() 35 return roundup(size, ubi->leb_size); in ubi_calc_fm_size() 38 static int ubi_io_read(struct ubi_scan_info *ubi, void *buf, int pnum, in ubi_io_read() argument 41 return ubi->read(pnum + ubi->peb_offset, from, len, buf); in ubi_io_read() 44 static int ubi_io_is_bad(struct ubi_scan_info *ubi, int peb) in ubi_io_is_bad() argument 46 return peb >= ubi->peb_count || peb < 0; in ubi_io_is_bad() 49 static int ubi_io_read_vid_hdr(struct ubi_scan_info *ubi, int pnum, in ubi_io_read_vid_hdr() argument 56 if (test_bit(pnum, ubi->corrupt)) in ubi_io_read_vid_hdr() [all …]
|
| H A D | Makefile | 1 obj-y += ubispl.o ../ubi/crc32.o
|
| /rk3399_rockchip-uboot/cmd/ |
| H A D | ubi.c | 36 static struct ubi_device *ubi; variable 54 static void display_volume_info(struct ubi_device *ubi) in display_volume_info() argument 58 for (i = 0; i < (ubi->vtbl_slots + 1); i++) { in display_volume_info() 59 if (!ubi->volumes[i]) in display_volume_info() 61 ubi_dump_vol_info(ubi->volumes[i]); in display_volume_info() 65 static void display_ubi_info(struct ubi_device *ubi) in display_ubi_info() argument 67 ubi_msg("MTD device name: \"%s\"", ubi->mtd->name); in display_ubi_info() 68 ubi_msg("MTD device size: %llu MiB", ubi->flash_size >> 20); in display_ubi_info() 70 ubi->peb_size, ubi->peb_size >> 10); in display_ubi_info() 71 ubi_msg("logical eraseblock size: %d bytes", ubi->leb_size); in display_ubi_info() [all …]
|
| /rk3399_rockchip-uboot/doc/ |
| H A D | README.ubi | 6 The first is the ubi command, which has six subcommands: 8 => help ubi 9 ubi - ubi commands 12 ubi part [part] [offset] 14 ubi info [l[ayout]] - Display volume and ubi layout information 15 ubi create[vol] volume [size] [type] - create volume name with size 16 ubi write[vol] address volume size - Write volume from address with size 17 ubi write.part address volume size [fullsize] 19 ubi read[vol] address volume [size] - Read volume to address with size 20 ubi remove[vol] volume - Remove volume [all …]
|
| /rk3399_rockchip-uboot/drivers/dfu/ |
| H A D | dfu_mtd.c | 36 if (dfu->data.mtd.ubi && !offset) { in dfu_write_medium_mtd() 113 if (dfu->data.mtd.ubi) in dfu_polltimeout_mtd() 125 dfu->data.mtd.ubi = 0; in dfu_fill_entity_mtd() 135 dfu->data.mtd.ubi = 1; in dfu_fill_entity_mtd() 149 dfu->data.mtd.ubi = 1; in dfu_fill_entity_mtd()
|
| H A D | dfu_nand.c | 147 if (dfu->data.nand.ubi) { in dfu_flush_medium_nand() 186 if (dfu->data.nand.ubi) in dfu_polltimeout_nand() 198 dfu->data.nand.ubi = 0; in dfu_fill_entity_nand() 233 dfu->data.nand.ubi = 1; in dfu_fill_entity_nand()
|
| /rk3399_rockchip-uboot/include/ |
| H A D | ubispl.h | 61 struct ubi_scan_info *ubi; member
|
| /rk3399_rockchip-uboot/fs/ubifs/ |
| H A D | ubifs.c | 595 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY); in ubifs_ls() 629 ubi_close_volume(c->ubi); in ubifs_ls() 638 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY); in ubifs_exists() 640 ubi_close_volume(c->ubi); in ubifs_exists() 652 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY); in ubifs_size() 671 ubi_close_volume(c->ubi); in ubifs_size() 866 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY); in ubifs_read() 930 ubi_close_volume(c->ubi); in ubifs_read()
|
| H A D | super.c | 1752 ubi_close_volume(c->ubi); in ubifs_umount() 2055 ubi_close_volume(c->ubi); in ubifs_put_super() 2148 struct ubi_volume_desc *ubi; in open_ubi() local 2155 ubi = ubi_open_volume_path(name, mode); in open_ubi() 2156 if (!IS_ERR(ubi)) in open_ubi() 2157 return ubi; in open_ubi() 2192 static struct ubifs_info *alloc_ubifs_info(struct ubi_volume_desc *ubi) in alloc_ubifs_info() argument 2232 ubi_get_volume_info(ubi, &c->vi); in alloc_ubifs_info() 2247 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READWRITE); in ubifs_fill_super() 2250 c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY); in ubifs_fill_super() [all …]
|