首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写Linux .dts设备树文件?

问如何编写Linux .dts设备树文件?
EN

Stack Overflow用户
提问于 2013-07-05 11:54:50
回答 4查看 40.8K关注 0票数 22

我将在我的开发板上启动一个Linux,我需要一个dts文件(设备树文件)来描述整个硬件。但是我对这个文件的语法知之甚少,这还不足以在板上正确地运行Linux。

我现在只知道如何描述一个单元的中断号、频率、地址、父单元及其兼容的驱动程序类型(如下所述):

代码语言:javascript
复制
ps7_scuwdt_0: ps7-scuwdt@f8f00620 {
                        compatible = "xlnx,ps7-scuwdt-1.00.a";
                        device_type = "watchdog";
                        interrupt-parent = <&ps7_scugic_0>;
                        interrupts = < 1 14 769 >;
                        reg = < 0xf8f00620 0xe0 >;
                } ;

其他高级用法或语法对我来说是陌生的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-22 08:44:22

看看最类似于你的开发板的dts。将其用作参考,并根据参考板和开发板之间的差异对dts进行更改。

还请查看以下内容:

票数 27
EN

Stack Overflow用户

发布于 2017-07-09 09:31:40

具有QEMU虚拟设备的reg interrupt 最小 + 示例

我们的示例将将以下设备树节点添加到versatilepb设备树中,QEMU将使用该树,原因是-M versatilepb

代码语言:javascript
复制
lkmc_platform_device@101e9000 {
    compatible = "lkmc_platform_device";
    reg = <0x101e9000 0x1000>;
    interrupts = <18>;
    interrupt-controller;
    #interrupt-cells = <2>;
    clocks = <&pclk>;
    clock-names = "apb_pclk";
    lkmc-asdf = <0x12345678>;
};

然后,通过使用Linux内核模块与设备交互,我们将测试以下DTS特性:

  • 寄存器地址
  • IRQ
  • 从驱动程序读取自定义属性

这些是本示例的主要组成部分:

  • Linux分叉上的修补程序
    • reg和interrupt匹配在QEMU通用机器(表示SoC)中硬编码的数字。
    • compatible与内核模块中的platform_driver.name匹配,并通知内核哪个模块将处理此设备。
    • 我们还将一个自定义属性传递给驱动程序:lkmc-asdf = <0x12345678>;,它是用of_property_read_u32读取的
    • 使用-dtb参数将设备树传递给QEMU的固件

​

​

  • 核模块在探测器上写入内存以测试结果,这也会生成一个IRQ。

设备树有许多我们还没有讨论过的特性,但是这个例子应该让您开始学习,并且可以轻松地使用任何新的特性。

进一步资源:

票数 5
EN

Stack Overflow用户

发布于 2016-06-29 14:22:23

让我们举一个例子,我将解释其中的每一个如下

代码语言:javascript
复制
auart0: serial@8006a000 {
compatible = "fsl,imx28-auart", "fsl,imx23-auart";
reg = <0x8006a000 0x2000>;
interrupts = <112>;
dmas = <&dma_apbx 8>, <&dma_apbx 9>;
dma-names = "rx", "tx";
};

所需财产:

  • 兼容:应该是"fsl,-auart“。支持的SoC包括imx23和imx28。
  • reg :为设备设置的寄存器的地址和长度
  • 中断:应该包含自动中断号。
  • dmas: DMA说明符,由一个呼叫DMA控制器节点和AUART DMA通道ID组成。
  • dma-名称:" RX“表示RX通道," TX”表示TX通道。

注意:每个auart端口都应该有一个在“别名”节点中正确编号的别名。

要获得更多的高级属性,请访问此链接,它非常有用。

设备树解释

希望能帮上忙!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17488320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档