U-Boot的.这一切从哪里开始?

And*_*y J 4 u-boot

这里有新手问题.

我正在看一个u-boot boardfile,它有很多功能.
例如; board_mmc_init(), enet_board_init(), setup_splash_img(),等等

大多数这些函数都不会从boardfile中调用.他们从其他地方打来电话.但我无法弄清楚在哪里.

在Linux内核板文件中有一个机器结构.在那里,我们可能有.init_machine = myboard_init.那么myboard_init(void)就会调用其他函数这将反过来通话等功能.我发现这种风格很容易阅读.

我的问题是; 确实u-boot有一个相当于.init_machine? 我在哪里看到一切'开始'?谁将所有那些松散的函数调用在u-boot中boardfile?

-Andy

Jie*_*ang 13

首先,uboot将从指定CPU的start.S开始,如下所示:http://git.denx.de/cgi-bin/gitweb.cgi?p = u-boot.git; a = blob; f =拱/臂/ CPU/ARMv7的/ start.S中; H = ef62fc83270a327bc7df970f598540f1d7ce0fe2; HB = HEAD

它会做一些像"异常向量"设置,缓存设置等.

然后它会跳转到 http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=blob;f=arch/arm/lib/crt0.S 做一些c运行时建立,

然后它将返回start.S,在一些misc之后,你可以引用注释,它会跳转到lowlevel_init.S http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot的.git; A =斑点; F =拱/臂/ CPU/ARMv7的/ lowlevel_init.S; H = 82b2b86520eb2b2d63c2478145b625a49f931542; HB = HEAD

然后..它将转向soc(在ARM中很常见)init,如下所示:http://git.denx.de/cgi-bin/gitweb.cgi?p = u-boot.git; a = blob; f =拱/臂/ CPU/ARMv7的/ MX6/soc.c

在soc init完成之后,它会转到某个板关联init,在board init中,它将调用一些外围设备/驱动程序init.

希望能给你一些关于uboot进程的打击.