linux - 为什么有些嵌入式板需要设备树而有些则不需要?

标签 linux linux-kernel embedded-linux boot device-tree

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

有些板在启动过程中不需要设备树 dtb 文件(如 beagleboard),而有些板在启动过程中应该有 dtb 文件(如 Zynq)。

这个假设正确吗?

还有,在启动过程中。引导加载程序何时获取 dtb 文件并加载它?

有什么引用资料可以了解整个过程吗?

最佳答案

Linux 正在慢慢转向设备树。这一切都始于 PowerPC,现在 ARM 也拥有了它。这是一种比使用 ARM 中的 ATAGS 等更好的传递系统信息的方法。

既然您提到了 Xilinx 的 Zynq,引导加载程序 (u-boot) 就被分配了从非 volatile 存储区域(在本例中为 SD 卡)读取内核和设备树的任务。内核和设备树被传递给启动命令。

你应该read more关于Zynq和u-boot来了解一下。找到“设备树”子部分。

关于linux - 为什么有些嵌入式板需要设备树而有些则不需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25487911/

相关文章:

c - linux kernel/sched.c - find_process_by_pid - 如何从 C 应用程序代码中使用它

linux-kernel - 无法解压缩时如何找到ARM Linux入口点?

linux - xhci-hcd xhci-hcd.0.auto : xHCI host not responding to stop endpoint command

c++ - 在 C++ 中打印 char 字符串时,Linux Ubuntu 中的 g++ 出现段错误,但 Windows 中的 g++/MingW 则不会出现段错误

c - C 中的共享内存和缺少 MAP_ANONYMOUS?

linux - printk 消息未显示在 dmesg 日志中

linux - Linux 是否为单独的 mmap() 调用携带数据结构/抽象?

c - aws嵌入式c SDK无法与aws iot连接

.net - SQLite 在使用密码在 Linux 上运行时抛出 "EntryPointNotFoundException: sqlite3_key"异常

linux - 从 shell 脚本调用 erlang 文件的函数