我有一块工作u-boot闪亮的电路板。现在我想为引导加载程序添加一些功能(用于初始化硬件的某些部分),但是如果我犯了一些错误,开发过程可能会破坏董事会。 是否可以进行如下所述的多阶段启动: 1)启动u-boot 2)u-boot将加载我的二进制文件,它增加了初始化硬件的功能。 3)我的二进制文件将加载并启动linux内核。
如果可能的话,一些指针将不胜感激。感谢。
答案 0 :(得分:2)
是。多级启动通常用于ARM SoC。
对于TI OMAP设备,作为示例,使用了两个boot-loader实例。第一个是在没有任何期望SDRAM被初始化并且被复制到的情况下运行的 并从48kB的嵌入式SRAM执行。必要的是,除了一些基本的硬件初始化(例如SDRAM,为某些功能单元供电,启用时钟),然后加载第二阶段启动加载器之外,它没有做太多工作。即使这是一个紧密的契合。
u-Boot(以及Barebox,也可能是其他引导加载程序)源树有构建选项来构建这个设置,我相信你可以颠覆它。
您可能最好修改现有的引导加载程序。我有很好的使用Barebox的经验。
对于OMAP,第一个引导加载程序通常称为MLO
- 这可能有助于查找资源。