我是嵌入式Linux开发的新手。我必须将uboot和自定义Linux发行版移植到基于ARM的新板上。
我们正在使用的uboot(2009.08)没有Arch和DTS文件夹。我想这是一个旧版本,不使用DTS将硬件信息传递给内核(v 3.0)。我已经阅读了很多关于DTS的内容,但是这里关于这个(过时的)将Uboot传递给我们正在使用的内核的硬件信息的过时方法还不够。互联网告诉我,在Uboot和内核源代码中都有这个任务的C文件,这些文件必须是同步的,但是有人可以指向我那个方向吗?另外,如果我的假设是错误的,请纠正我,并在需要时询问更多信息。
答案 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
处理。
有关文档,请参阅this或this alt site的第8部分。
附录
另见本演示文稿关于before-Device_Tree booting
的第4张幻灯片