uboot和spl的区别

来源:互联网 发布:十九世纪文学主流 淘宝 编辑:程序博客网 时间:2024/06/03 21:52

使用的是通用的同一份代码 前面的arch的初始化都是一样的
最主要的区别就是spl代码部分会用
CONFIG_SPL_BUILD来选择编译

以am335x而言,前期arch的初始化流程基本上是一致的,出现本质区别的是在board_init_f开始的。
spl中board_init_f是自己实现的 使用CONFIG_SPL_BUILD选择编译的 主要是做ddr pinmx之类的初始化
d:\tronlongfile\tl335x\tronlong-uboot-am335\arch\arm\cpu\armv7\am33xx\Board.c
然后调用的board_init_f也是使用的自己的
调用的board_init_r的路径是d:\tronlongfile\tl335x\tronlong-uboot-am335\common\spl\Spl.c
这里做的是将uboot拷贝到sdram中执行

而uboot部分的board_init_f调用的是
d:\tronlongfile\tl335x\tronlong-uboot-am335\common\Board_f.c
这里的函数
这里主要是执行init_sequence_f 上面有各种初始化 比如fdt 下面会分析

board_init_r调用的是
d:\tronlongfile\tl335x\tronlong-uboot-am335\common\Board_r.c
这里会进入main_loop进行命令行的处理

原创粉丝点击