2013-04-08 66 views
2

我有一个工作u-boot闪动的板子。现在我想为bootloader添加一些功能(用于初始化硬件的某些部分),但是如果我犯了一些错误,开发过程可能会让开发板变砖。 是否可以做如下提到的多阶段启动: 1)启动u-boot 2)u-boot会加载我的二进制文件,它增加了初始化硬件的功能。 3)我的二进制文件会加载并启动linux内核。多阶段启动

如果有可能,一些指针将不胜感激。谢谢。

+0

工作太多!您已经创建了一个XY问题。使用'go'命令加载“子程序”可能更简单,并继续使用U-Boot加载内核。 http://stackoverflow.com/questions/15340089/how-to-run-custom-kernel-on-beaglebone/15375308#15375308最终你应该将这个新的板初始化代码合并到U-Boot中。 – sawdust 2013-04-09 00:40:21

+0

谢谢!我想我需要使用“去”命令。 – xpankaj 2013-04-09 04:14:34

+0

您可能会将U-Boot'go'命令用于下一级引导加载程序或子程序。 – sawdust 2013-04-09 19:23:52

回答

1

是的。多级引导通常用于ARM SoC。

以TI OMAP设备为例,使用两个boot-loader实例。第一种是在没有任何预期的情况下运行SDRAM初始化,并被复制到 并从48kB的嵌入式SRAM中执行。除了一些基本的硬件初始化(例如,SDRAM,为某些功能单元启用电源,启用时钟)之外,除了第二阶段引导加载程序之外,它并没有太多的工作。即使这是一个紧身衣。

u-Boot(以及Barebox,也可能是其他引导加载程序)源代码树都有构建选项来构建此设置,我相信您可以颠覆它。

修改现有的引导装载程序可能会更好。我有很好的使用Barebox的经验。

对于OMAP,第一个引导加载程序通常被称为MLO - 这可能有助于查找资源。

+0

感谢您的回答。我目前没有用于闪存引导程序的工具。所以目前唯一的方法就是开发另一个二进制文件,它将在u-boot之后作为bootloader的另一个阶段工作。 – xpankaj 2013-04-08 11:21:51

+0

第一次闪动引导加载程序时会感到有些紧张不安 - 但是,大多数系统都有一些主要引导选项,因此您通常可以使用无需牢狱之灾的卡而不是砖块板。 – marko 2013-04-08 12:25:25

相关问题