msm8916 dt选用规则

1、AndroidBoard.mk 选则kernel build 默认配置文件:msm8916_defconfig

/device/qcom/msm8916/AndroidBoard.mk

#———————————————————————-
# Compile Linux Kernel
#———————————————————————-
ifeq ($(KERNEL_DEFCONFIG),)
    KERNEL_DEFCONFIG := msm8916_defconfig
endif

2、msm8916_defconfig选则platform id :CONFIG_ARCH_MSM8916

kernel/arch/arm/configs/msm8916_defconfig

CONFIG_ARCH_MSM8916=y

3、Makefile选则编译哪些dts文件:

kernel/arch/arm/boot/dts/qcom/makefile

dtb-$(CONFIG_ARCH_MSM8916) += msm8916-sim.dtb
msm8916-rumi.dtb
msm8916-cdp.dtb
msm8916-cdp-smb1360.dtb
msm8916-mtp.dtb
msm8916-mtp-smb1360.dtb
msm8916-qrd-skuh.dtb
msm8936-sim.dtb
msm8936-rumi.dtb

最后这些dtb会被编译到输出文件:dt.img

其中msm8916-mtp.dts,包含如下platform id 信息。

/ {
model = “Qualcomm MSM 8916 MTP”;
compatible = “qcom,msm8916-mtp”, “qcom,msm8916”, “qcom,mtp”;
qcom,board-id = <8 0>;
};

4、 dt.img 最后通过mkbootimg工具,和其它东西打包到boot.img :

$OUT_HOSTBIN_DIR/mkbootimg –kernel $OUT_DIR/kernel –ramdisk $OUT_DIR/ramdisk.img
–cmdline “$BOARD_KERNEL_CMDLINE” –base $BOARD_KERNEL_BASE –pagesize $BOARD_KERNEL_PAGESIZE
–ramdisk_offset $BOARD_RAMDISK_OFFSET –tags_offset $BOARD_KERNEL_TAGS_OFFSET –dt $OUT_DIR/dt.img
–output $OUT_DIR/boot.img

5、 lk通过tag传递给kernel :

bootable/bootloader/lk/app/aboot/aboot.c 

相应代码,请搜索宏:DEVICE_TREE

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

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