掠夺者pi如何知道要加载哪个设备树blob(dtb)?

时间:2018-09-10 00:00:12

标签: linux-kernel raspberry-pi u-boot device-tree

树莓pi卡映像在启动分区中包含几个不同的dtb文件。例如:

bcm2708-rpi-0-w.dtb
bcm2708-rpi-b.dtb
bcm2708-rpi-b-plus.dtb
bcm2708-rpi-cm.dtb
bcm2709-rpi-2-b.dtb
bcm2710-rpi-3-b.dtb
bcm2710-rpi-3-b-plus.dtb
bcm2710-rpi-cm3.dtb

当pi启动时,如何知道何时选择dtb?

2 个答案:

答案 0 :(得分:1)

在U-Boot文件board / raspberrypi / rpi / rpi.c中,使用函数get_board_rev()读取主板修订版,并根据该修订版确定dtb名称。 dtb文件名在环境变量ftdfile中设置,可在启动脚本中使用它来加载适当的文件,然后将其传递给操作系统。

答案 1 :(得分:1)

我不确定 currently accepted answer 对 Raspberry Pi OS 是否正确 - 至少“官方文档”对它的解释完全不同。还不清楚为什么 u-boot 是答案的一部分,因为 Raspberry Pi OS 不使用 u-boot;并且 OP 没有提到 u-boot

我不是“质量警察”,并声称没有这方面的专业知识 - 此问答已列在搜索结果中,看起来有点偏离...因此,这个“答案” ”。

最后 - 回答:这些不同的 .dtb 文件包含各种 Raspberry Pi 型号的硬件定义。在 boot process 期间检测硬件模型,并用于选择要使用的 .dtb 文件,该文件又用于设置内核。

A much more detailed answer 在“官方”文档中提供。