[筆記分享] [eMMC] 核心eMMC分割槽及對應名字讀取
阿新 • • 發佈:2019-02-11
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