设备树是一种描述系统中可用硬件组件的数据结构。Linux内核查询设备树以找出在引导过程中加载哪些驱动程序。

设备树文件类型

设备树文件位于拱/ arm64 / boot / dts /数码网络并且可以有两个扩展:

  • .dtsi文件是设备树源包括文件。它们描述了包含这些文件的几个平台的通用硬件.dts文件。

  • .dts文件是设备树源文件。它们描述了一个特定的平台。

模块上系统设备树

ConnectCore 8M Nano是一种系统模块(SOM)解决方案,集成了:

  • NXP i.MX8M纳米片上系统,具有多种接口,如UART, CAN, SPI, I2C

  • LPDDR4记忆

  • eMMC记忆

  • PMIC芯片

  • Crypto-authentication芯片

  • 选配Wi-Fi +蓝牙芯片

  • 微控制器辅助(MCA)芯片

ConnectCore 8M Nano系统模块需要焊接到承载板上。因此,没有一个单一的.dts申请吧。相反,它的硬件特性被收集到.dtsi最终平台可以包含的文件.dts

即使ConnectCore 8M Nano系统模块提供了不同的变体,只有一个.dtsi文件已经被定义来描述里面的硬件:ccimx8mn.dtsi

你的最终平台.dts文件必须包含此SOM包含文件。

SOM的变体是通过使用设备树覆盖来处理的,这将在同一页的后面进行解释。

载波板设备树

ConnectCore 8M纳米开发套件是一个载波板组装ConnectCore 8M纳米系统模块。载波板组装其他硬件,如视频端口、以太网PHY、音频芯片、PCIe迷你卡、microSD卡支架、用户led等。

作为最后的平台,载体板有一个.dts文件,其中包括ConnectCore 8M Nano系统模块.dtsi文件:ccimx8mn-dvk.dts

设备树覆盖

复杂的嵌入式SoM和载波板将需要多个器件树blob来考虑许多不同的SoM/板变体和功能组合。

设备树覆盖是特殊的设备树blob片段,它允许您在启动操作系统之前,在引导加载程序中动态地覆盖设备树的特定部分。这允许您将基本设备树与在引导时决定的可选元素组合在一起,而无需重新编译设备树以进行微小的更改。

覆盖只能执行建设性的更改,例如添加或修改节点或属性。它们不能用于执行破坏性更改,例如删除节点或属性。

文件命名约定

Digi设备树覆盖文件名遵循以下约定:

  • 源文件使用常规的.dts扩展。

  • 编译的设备树覆盖blob使用.dtbo扩展。

  • 文件名遵循语法:机汇< som |板> _ <功能> _ <硬件> .dts,在那里

    • _ov_将文件标识为设备树覆盖层。

    • < som |板>表示叠加是否影响到SoM或运营商板。

    • <功能>显示使能/受覆盖影响的具体接口。

    • <硬件>可选地描述覆盖层所针对的特定硬件。

数字设备树覆盖机制

Digi ConnectCore 8M Nano载波板具有具有默认硬件配置的基本设备树blob。Digi还提供了许多预编译的设备树覆盖,支持不同的硬件和外设。

定制的数码U-Bootdboot命令的作用如下:

  1. 加载基本设备树(在变量中定义)fdt_file).

  2. 解析变量的内容覆盖(一个逗号分隔的设备树覆盖文件名列表)。

  3. 顺序加载并应用每个覆盖在基本设备树上。

如果覆盖层加载失败,则启动过程将中止。

要将覆盖应用于基本设备树,请设置覆盖变量到您的设备树覆盖文件名。例如:

= >七层覆盖,我的覆盖

你可以指导dboot应用多个设备树覆盖文件,用逗号分隔它们:

= >七层,我的,我的,我的,我的

覆盖在Digi嵌入式Yocto启动脚本

Digi嵌入式Yocto构建U-Boot启动脚本(boot.scr)自动运行。bootscript:

  1. 读取SOM变体的硬件功能,如Wi-Fi或蓝牙,并将任何相关的设备树覆盖添加到覆盖变量。

  2. 读取SOM版本和运营商板版本,如果适用,将任何相关的设备树覆盖添加到覆盖变量。

  3. 调用dboot命令启动系统。

该机制解决了需要应用于ConnectCore 8M Nano变体上检测到的硬件的覆盖。从那里,你可以设置覆盖变量设置为任何自定义(或预编译)覆盖,您希望为您的目的额外应用。

预编译的设备树覆盖

Digi Embedded Yocto提供了许多预编译的设备树覆盖层,可以解决ConnectCore 8M Nano SOM变体和硬件版本的组合问题,还可以帮助测试由于与其他接口多路复用而在默认设备树上禁用的接口。

SOM覆盖

文件 描述

_ov_som_bt_ccimx8m。dtbo (dts

开启蓝牙接口

_ov_som_mca-keypad_ccimx8m。dtbo (dts

启用MCA键盘

_ov_som_v1_ccimx8mn。dtbo (dts

覆盖版本1的ConnectCore 8M纳米SOM

_ov_som_wifi_ccimx8m。dtbo (dts

开启Wi-Fi接口

覆盖在Digi嵌入式Yocto启动脚本, SOM覆盖层会自动添加到U-Boot的列表中覆盖根据检测到的SOM变体,通过默认的引导脚本设置。

载波板覆盖层

文件 描述

_ov_board_flexspi_ccimx8m-dvk.dtbodts

启用一个Quad-SPI接口示例(并禁用任何冲突接口)

_ov_board_gpio-watchdog_ccimx8m-dvk.dtbodts

ConnectCore 8M纳米开发工具包MCA gpio刷新看门狗的演示覆盖层

_ov_board_hsd101pfw2-lvds_ccimx8m-dvk.dtbodts

融合10”液晶显示器

_ov_board_lvds_ccimx8m-dvk.dtbodts

启用MIPI-to-LVDS显示桥接(并反过来禁用MIPI-to-HDMI)

_ov_board_user-leds_ccimx8m-dvk.dtbodts

ConnectCore 8M纳米开发套件用户led的演示覆盖层

_ov_board_v1-v2_ccimx8mn-dvk.dtbodts

覆盖ConnectCore 8M纳米开发工具包版本1和2

默认的引导脚本会自动添加_ov_board_v1-v2_ccimx8mn-dvk.dtbo文件到U-Boot覆盖变量列表(如果需要)。看到覆盖在Digi嵌入式Yocto启动脚本了解更多信息。