确定msm8937+android7.1采用的dtb文件
先来看入口kernel\msm-3.18\arch\arm\boot\dts\qcom\Makefile
dtb-$(CONFIG_ARCH_MSM8937) +=msm8937-rumi.dtb \
msm8937-pmi8950-cdp.dtb\
msm8937-pmi8937-cdp.dtb\
msm8937-pmi8950-ext-codec-cdp.dtb\
msm8937-pmi8950-mtp.dtb\
msm8937-pmi8937-mtp.dtb\
msm8937-pmi8950-rcm.dtb\
msm8937-pmi8937-rcm.dtb\
msm8937-pmi8950-qrd-sku1.dtb\
msm8937-pmi8937-qrd-sku2.dtb\
msm8937-pmi8950-qrd-sku1-dvt1.dtb\
msm8937-pmi8937-qrd-sku2-dvt1.dtb\
apq8037-pmi8950-cdp.dtb\
apq8037-pmi8937-cdp.dtb\
apq8037-pmi8950-mtp.dtb\
apq8037-pmi8937-mtp.dtb
我们怎么知道我们的设备对应的是哪个dtb呢?有两种方法:
(1) 通过启动的log信息
[ 1.002606] Hardware name: Qualcomm Technologies, Inc. MSM8937-PMI8937 QRDSKU2 (DT)
这里很明显可以看出来对应的msm8937-pmi8937-qrd-sku2.dtb。
(2) 根据硬件信息、代码及设备树信息判断
CPU:msm8937
PMIC:pmi8937
根据这两个信息得到msm8937-pmi8937-qrd-sku2.dtb和msm8937-pmi8937-qrd-sku2-dvt1.dtb,那是用哪个呢先看\bootable\bootloader\lk\platform\msm_shared\board.c的platform_detect()中的一部分
125行:描述msm_id,对应于CPU,比如Msm8937,其值对应sem.h的枚举成员:MSM8937 = 294,对应msm8937.dtsi文件的qcom,msm-id = <2940x0>;属性值中的294.
126行:platform_version,8937暂时没用到。
127行:描述于Platform Type ID,这里为0xb,对应qrd,相当于smem.h的定义:
enum platform {
HW_PLATFORM_UNKNOWN= 0,
…
HW_PLATFORM_MTP= 8,
…
HW_PLATFORM_QRD= 11,
…
HW_PLATFORM_32BITS= 0x7FFFFFFF,
};
对应于msm8937-pmi8937-qrd-sku2.dts文件的qcom,board-id= <0x12000b 0>;
\kernel\Documentation\devicetree\bindings\arm\msm\board-id.txt文件的解释如下:
The cell layout of the qcom,board-idproperty is as follows:
qcom,board-id =
where board_id is a 32-bit integer whosebit values are defined as follows:
bits 31-24 = Platform Subtype ID
bits 23-16 = Platform Version (Major)
bits 15-8 = Platform Version(Minor)
bits 7-0 =Platform Type ID
我们这里board_id=0x12000b,可知Platform Type ID=0xb=11,Platform Version(Minor)=0x00=0,Platform Version (Major)=0x12=18,Platform Subtype ID=0x00=0,这和串口打印信息是一致的:B- 390766 - CDT version:3,PlatformID:11,Major ID:18,Minor ID:0,Subtype:0
128行:描述Platform Subtype ID,这里为0x00
接着看bootable\bootloader\lk\target\msm8952\oem_panel.c下的oem_panel_select()对HW_PLATFORM_QRD的处理
上面我们知道plat_hw_ver_major=0x12=18,所以可以通过这里知道我们是SKU1还是SKU2,我们设备是SKU2。
到此可以知道采用的是msm8937-pmi8937-qrd-sku2.dtb,此文件由哪些dtsi文件组成呢?后面再描述。
参考:
高通 MSM8K bootloader : SBL1 .
http://blog.csdn.net/loongembedded/article/details/51013988