MTD分区concat合并操作
合并流程:
struct mtd_info *mtd_buff[MAX];
struct mtd_info *mtd_new = NULL;
需要合并的所有的分区mtd信息,全部整合进数组mtd_buff,MAX是实际分区数量
{
mtd_buff[i] = get_mtd_device_nm(mtd_name);
释放对应的分区mtd
put_mtd_device(mtd[index]);
}
合并出新分区
mtd_new = mtd_concat_create(mtd_buff, MAX, new_name);
注册新mtd分区,新分区没有继承原分区的mtd_get_device_size,UBI文件系统需要自行ubiattach处理坏块预留比例
mtd_device_register(mtd_new, NULL, 0);
去除合并流程:
mtd_new = get_mtd_device_nm(new_name);
put_mtd_device(mtd_new);
mtd_device_unregister(mtd_new);
mtd_concat_destroy(mtd_new);