查询.dts文件

时间:2013-10-12 09:06:35

标签: linux-kernel linux-device-driver embedded-linux

我正在阅读Linux Source中的.dts,并询问有关设备寄存器空间的信息。 以下内容来自“arch / arm / boot / dts / omap3.dtsi”

   dss@48050000 {

            compatible = "ti,omap3-dss","simple-bus";  
            reg = <0x48050000 0x200>;
            ti,hwmods = "dss_core";
            #address-cells = <1>;
            #size-cells = <1>;
            ranges;

                 dispc@48050400 {

                           compatible = "ti,omap3-dispc";
                            reg = <0x48050400 0x400>;
                            interrupts = <25>;
                           ti,hwmods = "dss_dispc";
                                };
                  }

对于节点dss @ 48050000,设备的寄存器从0x48050000开始,大小为0x200。 我怀疑是子节点dispc @ 48050400,基址应该从0x48050200开始,因为早先的设备寄存器地址结束于0x48050200。

为什么它从0x48050400开始。

dts和dtsi文件之间有什么区别??

1 个答案:

答案 0 :(得分:2)

查看第2438页omap3 TR(SPRUF98X- 2010年4月 - 2012年6月修订) http://www.ti.com/product/omap3530

您可以看到寄存器映射显示显示子系统寄存器从0x48050000开始(与dts文件相关)。它还显示寄存器地址有很大差距,DISPC_REVISION位于0x48050400,这也与dts文件相关。

我想你可以将寄存器的大小设置为0x48050000 0x10(因为那是该地址的寄存器空间的大小),或者你可以使它成为0x400,这样它就会进入下一个块的开始,即使大多数空间未使用。无论如何,只要涵盖所有寄存器,它就没那么重要了。

故事的寓意是软件必须符合硬件,这就是为什么存在差距。

dtsi文件也只是一个dst包含文件... dtsi可以包含在多个dts文件中。