设备树与U-Boot:嵌入式系统硬件配置与启动的关键
1. 设备树简介
设备树是定义计算机系统硬件组件的灵活方式,它是静态数据,并非可执行代码。通常,设备树由引导加载程序加载并传递给内核,不过也能将其与内核映像捆绑,以适应无法单独加载设备树的引导加载程序。
设备树格式源自Sun Microsystems的OpenBoot引导加载程序,该格式被正式定义为Open Firmware规范(IEEE标准IEEE1275 - 1994)。最初用于基于PowerPC的Macintosh计算机,因此成为PowerPC Linux移植的合理选择。此后,它被大量的Arm Linux实现广泛采用,在一定程度上也被MIPS、MicroBlaze、ARC等架构采用。更多信息可访问https://www.devicetree.org 。
1.1 设备树基础
Linux内核的 arch/$ARCH/boot/dts 目录包含大量设备树源文件,这是学习设备树的良好起点。U - boot源代码的 arch/$ARCH/dts 目录中也有少量相关源文件。若从第三方获取硬件,设备树源文件(.dts)是板级支持包的一部分,会随其他源文件一同提供。
设备树将计算机系统表示为按层次结构连接的组件集合,类似树状结构。它以根节点(用斜杠“/”表示)开始,根节点包含代表系统硬件的后续节点。每个节点有名称,并包含多个以 name = "value" 形式存在的属性。以下是一个简单示例:
/dts-v1/;
/{
model = "TI AM335x Bea
超级会员免费看
订阅专栏 解锁全文
366

被折叠的 条评论
为什么被折叠?



