简介
本文介绍一个IPQ4019的MTD分区信息是如何从配置文件一步步传递到linux内核的。这个过程有几个部分组成,分区信息在编译过程中的传递;升级时写入flash区;设备上电时linux如何得到分区信息。
上电后linux打印的MTD分区如下图。
分区信息在编译过程中的传递
原始的配置文件
BOOT.BF.3.1.1/boot_images/build/ms/bin/40xx/misc/tools/config/nor-partition.xml等文件中。
打开以后是如下xml内容。
<partition_versionlength="4">0x4</partition_version>
<partitions>
<partition>
<name length="16"type="string">0:SBL1</name>
<size_kblength="4">256</size_kb> //256KB
<pad_kblength="2">0</pad_kb>
<which_flashlength="2">0</which_flash>
<attr>0xFF</attr>
<attr>0xFF</attr>
<attr>0x00</attr>
<attr>0xFF</attr>
<img_nametype="string">sbl1_nor.mbn</img_name>
</partition>
<partition>
<namelength="16" type="string">0:MIBIB</name>
<size_kblength="4">128</size_kb>
<pad_kblength="2">0</pad_kb>
<which_flashlength="2">0</which_flash>
<attr>0xFF</attr>
<!-- Specify flashblock size in KB -->
<attr>64</attr>
<!-- Specify flash density in MB -->
<attr>32</attr>
<attr>0xFF</attr>
<img_nametype="string">nor-user-partition-ipq40xx.bin</img_name>
</partition>
<partition>
<namelength="16" type="string">0:QSEE</name>
<size_kblength="4">384</size_kb>
<pad_kblength="2">0</pad_kb>
<which_flashlength="2">0</which_flash>
<attr>0xFF</attr>
<attr>0xFF</attr>
<attr>0x00</attr>
<attr>0xFF</attr>
<img_nametype="string">tz.mbn</img_name>
</partition>