首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有些嵌入式板卡需要设备树,而有些则不需要?

为什么有些嵌入式板卡需要设备树,而有些则不需要?
EN

Stack Overflow用户
提问于 2014-08-25 22:14:43
回答 2查看 194关注 0票数 0

这可能是一个非常基本的问题,但我真的很困惑。

有些主板在引导过程中不需要设备树dtb文件,比如beagleboard,而有些主板在引导过程中应该有dtb文件,比如Zynq。

这个假设是正确的吗?

另外,在引导过程中。引导加载程序何时获取dtb文件并加载它?

有没有了解整个过程的参考资料?

EN

回答 2

Stack Overflow用户

发布于 2014-08-26 12:14:46

Linux正在慢慢地向设备树移动。这一切都是从PowerPC开始的,现在ARM有了它。与在ARM中使用ATAGS相比,这是一种更好的传递系统信息的方法。

由于您提到了Xilinx的Zynq,bootloader (u-boot)被分配了从非易失性存储区(在本例中是SD卡)读取内核和设备树的任务。内核和设备树被传递给boot命令。

你应该通过启动Zynq和u- read more来理解它。找到"Device Tree“子部分。

票数 0
EN

Stack Overflow用户

发布于 2014-08-29 20:22:02

传统上,您必须为每个电路板编写一个" board -file“(用C语言编写),以描述哪些组件在电路板上的位置以及它们是如何连接的。那就是一个过程性的描述。

对于设备树,您可以使用声明性方法来描述硬件,并让内核调用适当的设备注册函数。

因此,对于较旧的主板,如果主板文件可用(在Beagleboard的情况下为arch/arm/mach-omap2/board-omap3beagle.c),则不需要设备树。但是如果没有板级文件和设备树,内核就无法知道它运行在哪种类型的硬件上。

设备树blob (dtb)由引导加载器加载到RAM中,然后引导加载器通过预定的寄存器通知内核该位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25487911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档