对于许多用例,拥有一个用于整个设备的设备节点是有帮助的。MTD 设备以及各个分区的设备节点。 例如,这允许查询整个设备的属性。一个常见的习惯用法是创建一个额外的分区,它跨越在整个设备上。 这个补丁做了一个配置选项,CONFIG_MTD_PARTITIONED_MASTER,这使得主分区即使在设备已经建立分区的情况下仍然存在。 默认情况下不会打开,因为它提供了向后不兼容的设备编号。
总结就是一句话: 将整个flash设备当作一个分区注册进内核
int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types,
struct mtd_part_parser_data *parser_data,
const struct mtd_partition *parts,
int nr_parts)
{
int ret;
mtd_set_dev_defaults(mtd);
if (IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) {
ret = add_mtd_device(mtd);
if (ret)
return ret;
}
如果配置了 CONFIG_MTD_PARTITIONED_MASTER
,则会首先注册master mtd device。
CONFIG_MTD_PARTITIONED_MASTER
的提交patch如下:
linux patch