[笔记分享] [eMMC] 内核eMMC分区及对应名字读取

[笔记分享] [eMMC] 内核eMMC分区及对应名字读取Chipset:msm8926OS:Android4.4Kernel:3.4.0在N久之前的会议上留下了两个问题:1.内核在加载emmc驱动时是如何知道当前有几个分区的?2.如何知道/dev/mmcblkXpX对应的是哪个分区呢?读取分区加载sd/emmc驱动的时候,有如下流程:来看看Check_partition():核心的部分是check_part这个结构体

Chipset: msm8926
OS: Android4.4
Kernel: 3.4.0

在N久之前的会议上留下了两个问题:
1. 内核在加载emmc驱动时是如何知道当前有几个分区的?
2. 如何知道/dev/mmcblkXpX对应的是哪个分区呢?

读取分区

加载sd/emmc驱动的时候,有如下流程:
这里写图片描述
来看看Check_partition():
这里写图片描述

核心的部分是check_part这个结构体,里面放的都是对应的解析分区的算法:
这里写图片描述
算法不是我们需要关注的,解析哪一块区域等小弟看了partition再给大家解释吧。
解析完成之后放到struct parsed_partitions也就是这里的state变量的parts元素里:
这里写图片描述
然后通过add_partition()将这些part信息添加到disk里去。

有多少分区可以从开机Log看到:
这里写图片描述
确实我们在8926平台上定义的分区个数是34个:
[non_hlos\common\build\partition_f5.xml]
这里写图片描述

分区对应label

其实Linux已经在/dev/block下提供了查看方法:
这里写图片描述

从本质上来说,这些信息是从解析出来的struct parsed_partitions中的info变量获取的:
这里写图片描述
对应的volname存的就是分区的label name.

                                                    Kris.Fei
                                                    2014/09/11

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37924.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注