最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

uboot2012-10移植s5pv210

IT圈 admin 32浏览 0评论

2024年6月1日发(作者:危问兰)

s5pv210 uboot-2012-10的移植

s5pv210 uboot-2012-10移植(一) 之分析Alex Ling的

linaro-2011.10 for mini210

好久好久前就买了s5pv210的开发板,一直都是东搞搞西搞搞,一点收获也没有,这次下

决心来移植最新的uboot到u-boot-2012.10上,并通过这个博客记录下来以防时间长给忘

了,我的开发板是QT210的。s5pv210的启动分为BL0,BL1,BL2,BL0是出厂的时候

就固化在IROM里的,所以我们的uboot就要实现BL1和BL2,BL1在uboot里叫做

,BL2就是我们很熟悉的了。在移植之前,我们先看下Alex Ling

的linaro-2011.10 for mini210的UBOOT是怎么实现的。这里主要还是分析SPL部分,

是如何生成的现在资料很多,也很复杂,我这个菜鸟也是一知半解的,所以就不

分析了。

1.顶层的Makefile,从中可以知道,我们要想生成就必须配置COFNIG_SPL,

那么依赖什么呢,我们继续

[plain] view plaincopy

1. ALL-$(CONFIG_SPL) += $(obj)spl/

2.

3. all: $(ALL-y)

搜索发现,是进入到uboot顶层目录的spl目录下执行Makefile的

[plain] view plaincopy

1. $(obj)spl/: depend

2. $(MAKE) -C spl all

2.打开spl/Makefile分析,一开始就给我们导出CONFIG_SPL_BUILD

[plain] view plaincopy

1. CONFIG_SPL_BUILD := y

2. export CONFIG_SPL_BUILD

然后分析目标,因为我们的平台是三星的,所以,会有两个目标,一个是不带头信息的

,一个是$(obj)$(BOARD)-。

[plain] view plaincopy

1. ALL-y += $(obj)

2.

3. ifdef CONFIG_SAMSUNG

4. ALL-y += $(obj)$(BOARD)-

5. endif

6.

7. all: $(ALL-y)

搜索$(obj)$(BOARD)-,发现,他是通过一个工具生成带头信息的

[plain] view plaincopy

1. ifdef CONFIG_SAMSUNG

2. $(obj)$(BOARD)-: $(obj)

3. $(TOPDIR)/board/$(BOARDDIR)/tools/mk$(BOARD)

4. $(obj) $(obj)$(BOARD)-

5. endif

好了,Makefile就分析到这里,知道了BL1是如何生成的了。下面里分析代码了。

首先分析arch/arm/cpu/armv7/start.S

[plain] view plaincopy

1. reset:

2. bl save_boot_params

3. /*

4. * set the cpu to SVC32 mode

5. */

6. mrs r0, cpsr

7. bic r0, r0, #0x1f

8. orr r0, r0, #0xd3

9. msr cpsr,r0

10.

11. /* the mask ROM code should have PLL and others stable */

12. #ifndef CONFIG_SKIP_LOWLEVEL_INIT

13. bl cpu_init_crit

14. #endif

15.

16. /* Set stackpointer in internal RAM to call board_init_f */

2024年6月1日发(作者:危问兰)

s5pv210 uboot-2012-10的移植

s5pv210 uboot-2012-10移植(一) 之分析Alex Ling的

linaro-2011.10 for mini210

好久好久前就买了s5pv210的开发板,一直都是东搞搞西搞搞,一点收获也没有,这次下

决心来移植最新的uboot到u-boot-2012.10上,并通过这个博客记录下来以防时间长给忘

了,我的开发板是QT210的。s5pv210的启动分为BL0,BL1,BL2,BL0是出厂的时候

就固化在IROM里的,所以我们的uboot就要实现BL1和BL2,BL1在uboot里叫做

,BL2就是我们很熟悉的了。在移植之前,我们先看下Alex Ling

的linaro-2011.10 for mini210的UBOOT是怎么实现的。这里主要还是分析SPL部分,

是如何生成的现在资料很多,也很复杂,我这个菜鸟也是一知半解的,所以就不

分析了。

1.顶层的Makefile,从中可以知道,我们要想生成就必须配置COFNIG_SPL,

那么依赖什么呢,我们继续

[plain] view plaincopy

1. ALL-$(CONFIG_SPL) += $(obj)spl/

2.

3. all: $(ALL-y)

搜索发现,是进入到uboot顶层目录的spl目录下执行Makefile的

[plain] view plaincopy

1. $(obj)spl/: depend

2. $(MAKE) -C spl all

2.打开spl/Makefile分析,一开始就给我们导出CONFIG_SPL_BUILD

[plain] view plaincopy

1. CONFIG_SPL_BUILD := y

2. export CONFIG_SPL_BUILD

然后分析目标,因为我们的平台是三星的,所以,会有两个目标,一个是不带头信息的

,一个是$(obj)$(BOARD)-。

[plain] view plaincopy

1. ALL-y += $(obj)

2.

3. ifdef CONFIG_SAMSUNG

4. ALL-y += $(obj)$(BOARD)-

5. endif

6.

7. all: $(ALL-y)

搜索$(obj)$(BOARD)-,发现,他是通过一个工具生成带头信息的

[plain] view plaincopy

1. ifdef CONFIG_SAMSUNG

2. $(obj)$(BOARD)-: $(obj)

3. $(TOPDIR)/board/$(BOARDDIR)/tools/mk$(BOARD)

4. $(obj) $(obj)$(BOARD)-

5. endif

好了,Makefile就分析到这里,知道了BL1是如何生成的了。下面里分析代码了。

首先分析arch/arm/cpu/armv7/start.S

[plain] view plaincopy

1. reset:

2. bl save_boot_params

3. /*

4. * set the cpu to SVC32 mode

5. */

6. mrs r0, cpsr

7. bic r0, r0, #0x1f

8. orr r0, r0, #0xd3

9. msr cpsr,r0

10.

11. /* the mask ROM code should have PLL and others stable */

12. #ifndef CONFIG_SKIP_LOWLEVEL_INIT

13. bl cpu_init_crit

14. #endif

15.

16. /* Set stackpointer in internal RAM to call board_init_f */

发布评论

评论列表 (0)

  1. 暂无评论