在线问答
直播中

马猛

12年用户 293经验值
擅长:嵌入式技术 处理器/DSP
私信 关注

【OK210试用体验】飞凌 OK 210 开发板上移植 U-Boot

飞凌 OK210 开发板上移植 U-Boot 的过程主要包括以下四个步骤:
1.下载 U-Boot 源码
2.修改相应的文件代码
3.编译 U-Boot
4.烧写到开发板上,运行
    U-Boot 是 universal bootloader,也就是通用的 bootloader。它存在于 nandflash 或者 SD
卡中,它是在开机上点之后,操作系统起来之前用来引导的一个程序。U-boot 的主要作用
是进行内存的初始化、CPU 的初始化、串口初始化等一系列的初始化工作,完成这些之后,
再将操作系统加载到内存中,从而运行起来。
     U-Boot 源码文件下包括一些目录文件和文本文件,这些文件可分为”与平台相关的文
件”和”与平台无关的文件”,其中 common 文件夹下的文件就是与平台无关的文件;与平台
相关的文件又分为 CPU 级相关的文件和与板级相关的文件:arch 目录下的文件就是与 CPU
级相关的文件,而 board、drivers、include 等文件夹下的文件都是与板级相关的文件。我们
在移植的过程中,需要修改的文件也就是这些与平台相关的文件。
下面是移植OK 210 处理器上时修改(或添加)的文件:
以下文件均为与 CPU 级相关的文件
uboot2011.06/arch/arm/cpu/armv7/start.s
uboot2011.06/arch/arm/cpu/armv7/Makefile
uboot2011.06/arch/arm/include/asm/arch-s5pc1xx/hardware.h
uboot2011.06/arch/arm/lib/board.c
uboot2011.06/arch/arm/lib/Makefile
uboot2011.06/arch/arm/config.mk
以下文件均为与板级相关的文件
uboot2011.06/board/samsung/OK210/tools/mkv210_image.c
uboot2011.06/board/samsung/OK210/lowlevel_init.S
uboot2011.06/board/samsung/OK210/mem_setup.S
uboot2011.06/board/samsung/OK210/OK210.c
uboot2011.06/board/samsung/OK210/OK210_val.h
uboot2011.06/board/samsung/OK210/mmc_boot.c
uboot2011.06/board/samsung/OK210/Makefile
uboot2011.06/drivers/mtd/nand/s5pc1xx_nand.c
uboot2011.06/drivers/mtd/nand/Makefile
uboot2011.06/include/configs/OK210.h
uboot2011.06/include/s5pc110.h
uboot2011.06/include/s5pc11x.h
uboot2011.06/spl/Makefile
uboot2011.06/boards.cfg
uboot2011.06/config.mk
uboot2011.06/Makefile
移植过程就是在新的 U-Boot 代码中增加与 OK 210 开发板 CPU 级和 Board 级代码,
使之能够在 210 开发板上面运行。
1.看一下源代码里面是否有 CPU 级相关代码,比如 210 是 ARMV7 架构,看一下
CPU 目录下面是否有 ARMV7 的目录,因为 U-Boot 已经是开发板里面应用很广泛的
Bootloader 了,所以基本上都已经有了 CPU 级相关代码。
2.下一步就是查看板级相关代码了。一款主流 CPU 发布的时候,厂商一般都会提供官
方开发板,比如 210 发布的时候三星公司提供了官方开发板,使用的 U-Boot 是 1.3.4
版本, 三星在U-Boot官方提供的1.3.4基础上面进行了改进, 比如增加SD卡启动和NandFlash
启动相关代码 等等。在移植新版本的 U-Boot 到开发板的时候,我们需要看一下 U-Boot 代
码里面是否已经含有了板级代码,如果已经有了,就不需要自己改动了,编译以后就可以使
用,而有的时候在较新的 U-Boot 代码里面,是不含有这些板级支持包的,这个时候就需要
增加自己的板级包了。
3.板级包的增加需要参考 CPU 官方提供的 U-Boot 代码,因为我们移植的是最小功能的
U-Boot,让 U-Boot 能够运行起来即可,所以只需要抓最关键的代码,比如系统时钟的配置,
DDR2 内存的初始化代码,调试串口的初始化等,这些代码是需要参考 U-Boot1.3.4 的,不
需要我们自己去写每一行,但是需要我们知道 U-Boot 能够在 210 上面运行起来,必
须做的工作。

回帖(1)

HelloWii

2015-9-13 09:04:57
看一下。。。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分