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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值