OpenWrt 内核阶段导出dtb为dts
/sys/firmware/fdt该文件表示原始DTB文件,可用hexdump -C /sys/firmware/fdt查看scp拷贝fdt到Host主机中
scp /sys/firmware/fdt root@192.168.0.1:/home/book/tmp
转换fdt为dts文件
cd /home/book/tmp dtc -I dtb -O dts -o cp01-c2.dts fdt #最终的dts文件为cp01-c2.dts,
加入工程编译
以高通的
qca/src/linux-4.4/arch/arm64/boot/dts/qcom/qcom-ipq6018-cp01-c2.dts为例说明:用
if 0先屏蔽以前的,#else中加入cp01-c2.dts里面的所有内容#if 0 /dts-v1/; #include "qcom-ipq6018-cp01.dtsi" #include "qcom-ipq6018-rpm-regulator.dtsi" #include "qcom-ipq6018-cpr-regulator.dtsi" #include "qcom-ipq6018-cp-cpu.dtsi" #include "qcom-ipq6018-ion.dtsi" / { model = "Qualcomm Technologies, Inc. IPQ6018/AP-CP01-C2"; //此处省略N行 }; #else //面是拷贝的刚生成的cp01-c2.dts里面的所有内容 /dts-v1/; #include "qcom-ipq6018-cp01.dtsi" ///memreserve/ 0x00000000484ea000 0x0000000000014000; / { soc_version_minor = <0x0>; soc_version_major = <0x1000000>; cpu_type = <0xa6010000>; flash_type = <0x7000000>; rpm_version = [43 52 4d 2d 52 50 4d 2e 42 46 2e 32 2e 34 2e 31 2d 30 30 30 38 39 0a]; tz_version = [43 52 4d 2d 54 5a 2e 57 4e 53 2e 35 2e 31 2d 30 30 31 32 37 0a]; boot_version = [63 72 6d 2d 75 62 75 6e 74 75 31 32 31 2d 42 4f 4f 54 2e 58 46 2e 30 2e 33 2d 30 30 30 39 38 2d 49 50 51 36 30 78 78 4c 5a 42 2d 31 0a]; machid = <0x1000308>; //此处省略N行 };
编译后烧录即可