确定msm8937+android7.1采用的dtb文件

来源:互联网 发布:sql去重distinct 编辑:程序博客网 时间:2024/06/01 17:43

确定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 = <board_id, reserved> 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