Ham*_*frq 8 arm linux-kernel embedded-linux u-boot device-tree
像U-Boot这样没有实现Open Firmware API的Bootloader,应该将平面设备树的二进制形式传递给内核 - LinuxFDTBlob
为什么DTS文件也存在于内核中?这不是多余的吗?
例如,U-boot源代码包含以下文件:
arch/arm/dts/tegra124-jetson-tk1.dts
此文件也可以在Linux源代码下找到:
arch/arm/boot/dts/tegra124-jetson-tk1.dts
虽然内核版本是U-boot版本的4倍,但我想知道这种冗余背后的原因.我相信维护人员和开发人员都很难维护和使用它们
以下是Artlessnoise的评论答案:
u-boot源使用u-boot DTB,而Linux在内核引导时使用Linux DTB。u-boot版本是精简版,因为启动所需的外围设备不多。您始终使用Linux内核版本,即u-boot将此内核版本传递给Linux(以及加载bzImage或vmlinux)。
许多u-boot驱动程序几乎与Linux相同。显然,您可以为所有u-boot驱动程序设置相同的参数。大多数是Linux驱动程序的副本,其中的中断已由轮询例程替换。使用相同的开放式固件界面可使它们更紧密地匹配。
小智 5
由于上述原因,复制 DTS 的副本是有意义的。