uboot和spl的区别

版权声明:联系THEN转载 https://blog.csdn.net/qq_38131812/article/details/84073063

使用的是通用的同一份代码 前面的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进行命令行的处理

猜你喜欢

转载自blog.csdn.net/qq_38131812/article/details/84073063