uboot移植(二)

本文详细介绍了如何将UBoot 2013.10版本移植到三星S5PC110板子上,包括下载、配置、编译过程,以及遇到的DDR初始化、时钟配置、MMC识别、环境变量保存和网卡驱动等问题的解决方法。
摘要由CSDN通过智能技术生成
从 uboot 官方下载一个合适的 uboot,由于新版 uboot 采用了内核的配置方式,这里选用 2013.10 版本。下载地址: ftp://ftp.denx.de/pub/u-boot/
在 uboot/board/samsung 文件夹下找到最接近板子的配置:s5p_goni,具体在 include/configs/s5p_goni.h 文件中可以看到定义了 #define CONFIG_S5PC110 1 /* which is in a S5PC110 */
查找方法可在 Linux 下使用 grep 命令,如:grep -i "s5pc11." *.h
还是首先注意看 Makefile 文件,检查交叉编译琏工具 CROSS_COMPILE 是否配置好了。

配置好后编译 uboot 进行烧录,串口打印出两个 SD checksum Error,第一个是 iROM 内的代码校验 iNand 失败,第二个则是我们自己 SD卡校验失败。首先烧录脚本中的 mkbl1 肯定是没问题的,因为之前都用过没出现错误,那么进 start.S 中看发现头部无占位空间而 mkbl1 是直接将校验和填充到头部,因此要预留空间。在 start.S 前面添加16字节空间占位。

没有在 uboot 镜像的前8k中链接 lowlevel_init.o ,添加上。在 uboot/arch/arm/cpu/u-boot.lds 中添加 board/samsung/goni/lowlevel_init.o (.text*)
添加链接时要注意将目录也加上。
添加后会发现重复定义,实际上是重复链接了。在 lowlevel_init.S 所在的 uboot/board/samsung/goni/Makefile 中将 lowlevel_init.o 链接进了 libgoni.o,之后我们又在链接脚本中又链接了一次,所以出现了这个问题,解决方法就是在 goni 目录下不要链接 lowlevel_init.o,但是不能只注释掉 SOBJS := lowlevel_init.o 这一句,因为只注释掉后 Makefile 会因为没有目标而不去编译 lowlevel_init.S。寻找解决办法就是参照 start.o 的解决方法,因为在链接脚本中 start.o 被第一个链接,肯定也有这个问题,因此去 uboot/arch/arm/cpu/armv7/Mak
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值