当前位置:   article > 正文

Open Firmware 之Device Tree

Open Firmware 之Device Tree

1.       DeviceTree简介

DeviceTree 源于 PowerPC 架构下的device配置,后mergeLinux的主分支。DeviceTree 使用Device Tree sourcedts)的文本方式对系统设备树进行描述。Device Tree Compiler(dtc)dts文件转换成二进制文件binary device tree blob(dtb)Dtb文件在kernelboot时,由解析程序解析成memory数据,然后依据不同ARCH的不同需求,可以根据这些内存中的数据创建相应设备的设备节点(通用类型设备,kernelof中已提供相应的设备节点创建API)。这样就可以在不改动kernel的情况下,对不同的平台实现无差异的支持,只需更换相应的dts文件,即可满足。

2.       Device Tree Source的描述

DTS的描述格式如下:

{//root node

         An empty property

        

         A child node {

                   Array-prop = <>;

                   String-prop= “Hello”;

};

 

Another child node {

         Binary-prop = <>;

         String-list = “yes”, “no”;

};

};

         Root node  device tree的起点。由mode & compatible 属性描述,格式为<mfg>, <board>,两属性共同描述一个具体的平台类型。

 

         Chosen node 此节点并不代表真正的设备节点,而是一些虚拟的由bootloader传递给内核一些参数(??)

3.       相关node简介

Cpus node

PowerPC,8641@0 {
        device_type = "cpu";
        reg = <0>;
        d-cache-line-size = <20>;    // 32 bytes
        i-cache-line-size = <20>;    // 32 bytes
        d-cache-size = <8000>;        // L1, 32K
        i-cache-size = <8000>;        // L1, 32K
        timebase-frequency = <0>;    // 33 MHz, from uboot
        bus-frequency = <0>;        // From uboot
        clock-frequency = <0>;        // From uboot
        32-bit;
        linux,boot-cpu;
    };

PowerPC为节点的alias8641@0 为节点名。

 

System memory

         描述系统内存节点,为root节点子节点,通常只用一个memory节点描述系统所有的内存,reg属性用来定义当前可用的各个memory范围。

Memory {

         Device_type = “memory”;

         Reg = <0x00000000, 0x8000000>; // Range of valid memory

};

设备节点名:memory

 

Interrupts的表示,还需整理。。。。。  

转载于:https://my.oschina.net/u/994235/blog/142540

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/325944
推荐阅读
相关标签
  

闽ICP备14008679号