uboot如何在不使用DTS的情况下将硬件信息传递给内核

时间:2014-05-16 13:00:22

标签: linux-kernel arm embedded-linux boot u-boot

我是嵌入式Linux开发的新手。我必须将uboot和自定义Linux发行版移植到基于ARM的新板上。

我们正在使用的uboot(2009.08)没有Arch和DTS文件夹。我想这是一个旧版本,不使用DTS将硬件信息传递给内核(v 3.0)。我已经阅读了很多关于DTS的内容,但是这里关于这个(过时的)将Uboot传递给我们正在使用的内核的硬件信息的过时方法还不够。互联网告诉我,在Uboot和内核源代码中都有这个任务的C文件,这些文件必须是同步的,但是有人可以指向我那个方向吗?另外,如果我的假设是错误的,请纠正我,并在需要时询问更多信息。

1 个答案:

答案 0 :(得分:5)

在U-Boot和Linux ARM内核之间传递数据的(旧)方法称为 ATAG 内存列表。使用此数据列表将可用内存区域,机器类型和板信息等信息从U-Boot传递到Linux ARM内核。

在U-Boot中, ATAGs 内置于lib_arm/armlinux.c(1.1.5)或lib_arm/bootm.c(2009.08)或arch/arm/lib/bootm.c(2015.04),并且需要配置选项 CONFIG_SETUP_MEMORY_TAGS 且突出 CONFIG_xxx_TAG s。
然后, ATAGs 由Linux在arch/arm/kernel/setup.c处理。

有关文档,请参阅thisthis alt site的第8部分。

附录

另见本演示文稿关于before-Device_Tree booting

的第4张幻灯片