Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314369
  • 博文数量: 72
  • 博客积分: 2580
  • 博客等级: 少校
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-07 17:36
文章分类

全部博文(72)

文章存档

2012年(7)

2011年(17)

2010年(46)

2009年(2)

分类: LINUX

2012-05-02 14:18:04

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 属性描述,格式为, ,两属性共同描述一个具体的平台类型。

 

         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的表示,还需整理。。。。。   

阅读(7933) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~