Linux设备树DeviceTree/DTS全功能解析

1)本章主要分享如何在Linux 中使用以及学习设备树DeviceTree/DTS的方法,适用于三星平台、以及其他SOC厂商(MTK/海思/Mstar/Amlogic/SigmaStar/全志/RockChip平台等)遵守Linux 标准DTS架构的平台。分享给将要学习或者正在学习Linux 设备树DTS/DeviceTree相关问题的同学。
2)适用于对C语言有基本的认识,以及对Linux驱动知识有基本的掌握能力。
3)Linux内核版本:Linux5.10.61。
4)内容属于原创,若转载,请说明出处。
5)本人提供相关问题有偿答疑和支持。

首先官方提供标准的文档:devicetree-specification-v0.2.pdf,可以到网上下载,此文档详细讲解了Linux设备树DeviceTree/DTS的功能,以及编译,运行,等等信息。
6272ec6ae52d443d9625b4d25f0effe6.png
学习/了解本节文章你将得到如下知识:
1)Device Tree基本属性介绍
2)Uboot/Kernel对Device Tree的处理,这里不会去讲具体驱动,放到以后具体讲解
3)穿插典型的SOC厂家案例分析,做到学有所用。主要包括普通节点属性,中断(interrupt)节点属性,时钟树(clock tree)节点属性等等。


Device Tree是一种描述硬件的数据结构,相比于旧架构它起源于 OpenFirmware (OF),在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的冗余代码,相当多数的代码只是在描述板级硬件细节,而这些不同的板级细节描述对于内核来讲是不必要的,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的platform_data。
采用Device Tree后,许多硬件的细节可以直接透过DTS传递给Linux,而不再需要在kernel中进行大量的冗余编码。Device Tree由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。
f0c64c9ed4334257b1b8bfc23b5ab50a.png
在Device Tree中,可描述的信息有很多(原先这些信息大多被hard code到kernel中):
a48deb33fd474252b237b8ccff3e4805.png
Device Tree的基本文件构造:分别是RockChip/Amlogic/SigmaStar三家平台对比

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值