我将在我的开发板上启动一个Linux,我需要一个dts文件(设备树文件)来描述整个硬件。但是我对这个文件的语法知之甚少,这还不足以在板上正确地运行Linux。
我现在只知道如何描述一个单元的中断号、频率、地址、父单元及其兼容的驱动程序类型(如下所述):
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 >;
} ;其他高级用法或语法对我来说是陌生的。
发布于 2013-07-22 08:44:22
发布于 2017-07-09 09:31:40
具有QEMU虚拟设备的reg interrupt 最小 + 示例
我们的示例将将以下设备树节点添加到versatilepb设备树中,QEMU将使用该树,原因是-M versatilepb
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特性:
这些是本示例的主要组成部分:
reg和interrupt匹配在QEMU通用机器(表示SoC)中硬编码的数字。compatible与内核模块中的platform_driver.name匹配,并通知内核哪个模块将处理此设备。lkmc-asdf = <0x12345678>;,它是用of_property_read_u32读取的-dtb参数将设备树传递给QEMU的固件
-M versatilepb
设备树有许多我们还没有讨论过的特性,但是这个例子应该让您开始学习,并且可以轻松地使用任何新的特性。
进一步资源:
dtc一起玩纯粹的句法问题。例如,它展示了节点如何简单地被路径合并:https://unix.stackexchange.com/a/375923/32558发布于 2016-06-29 14:22:23
让我们举一个例子,我将解释其中的每一个如下
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";
};所需财产:
注意:每个auart端口都应该有一个在“别名”节点中正确编号的别名。
要获得更多的高级属性,请访问此链接,它非常有用。
希望能帮上忙!
https://stackoverflow.com/questions/17488320
复制相似问题