我有一个工作u-boot闪动的板子。现在我想为bootloader添加一些功能(用于初始化硬件的某些部分),但是如果我犯了一些错误,开发过程可能会让开发板变砖。 是否可以做如下提到的多阶段启动: 1)启动u-boot 2)u-boot会加载我的二进制文件,它增加了初始化硬件的功能。 3)我的二进制文件会加载并启动linux内核。多阶段启动
如果有可能,一些指针将不胜感激。谢谢。
我有一个工作u-boot闪动的板子。现在我想为bootloader添加一些功能(用于初始化硬件的某些部分),但是如果我犯了一些错误,开发过程可能会让开发板变砖。 是否可以做如下提到的多阶段启动: 1)启动u-boot 2)u-boot会加载我的二进制文件,它增加了初始化硬件的功能。 3)我的二进制文件会加载并启动linux内核。多阶段启动
如果有可能,一些指针将不胜感激。谢谢。
是的。多级引导通常用于ARM SoC。
以TI OMAP设备为例,使用两个boot-loader实例。第一种是在没有任何预期的情况下运行SDRAM初始化,并被复制到 并从48kB的嵌入式SRAM中执行。除了一些基本的硬件初始化(例如,SDRAM,为某些功能单元启用电源,启用时钟)之外,除了第二阶段引导加载程序之外,它并没有太多的工作。即使这是一个紧身衣。
u-Boot(以及Barebox,也可能是其他引导加载程序)源代码树都有构建选项来构建此设置,我相信您可以颠覆它。
修改现有的引导装载程序可能会更好。我有很好的使用Barebox的经验。
对于OMAP,第一个引导加载程序通常被称为MLO
- 这可能有助于查找资源。
工作太多!您已经创建了一个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
谢谢!我想我需要使用“去”命令。 – xpankaj 2013-04-09 04:14:34
您可能会将U-Boot'go'命令用于下一级引导加载程序或子程序。 – sawdust 2013-04-09 19:23:52