1. 原因
A lot of very similar C code to support each and every board.
![ARM Linux为什么要引进Device Tree - 路雷米 - 路雷米的博客](http://img2.ph.126.net/EyIBLiVRdsvuVNKPbV17gw==/6598129695867201386.png)
Linux kernel老的Probing机制
![ARM Linux为什么要引进Device Tree - 路雷米 - 路雷米的博客](http://img2.ph.126.net/nx1R8hLQPqXRkhcBWpLYQg==/3394025269277330927.png)
关键是:
要提供一个board file,用于registers SOC的各个设备.
要提供一个SOC file
separate a large part of the hardware description from the kernel sources.
2. Device Tree
此概念:源自Open Firmware,在PPC 平台,已使用很长时间!
The Device Tree is a tree of nodes.
Describing the different hardware components of a system and their characteristics.
使用一种特殊语言来书写.
通过Device Tree Compiler编译为Device Tree Blob.
.dts files for boards.
.dtsi for include files.
示例:
![ARM Linux为什么要引进Device Tree - 路雷米 - 路雷米的博客](http://img0.ph.126.net/gIDAYVsoIx0d-VQruc_tPA==/3392899369370506959.png)
3. Device Tree用法
![ARM Linux为什么要引进Device Tree - 路雷米 - 路雷米的博客](http://img1.ph.126.net/V3mS5StDH6Kpdx-FXGGY7g==/6599333661097749001.png)