您的位置:首页 > 其它

ok6410平台移植uboot时发生Signal # 8 caught的问题

2013-05-24 14:00 441 查看
Signal # 8 caught的问题:
网上可以找到资料说是arch/arm/cpu/arm1176/s3c64xx/timer.c里面的变量因为版本差异而不同的问题

可找到有DECLARE_GLOBAL_DATA_PTR的正确的timer.c替换掉或者自己动手打补丁。

打补丁的方法:
  正确的为timer1.c,需要修改的为timer.c

diff timer.c timer1.c > timer.patch

patch ./timer.c < timer.patch

打完补丁后编译可能会发现有提示关于timer的结构体及函数没有定义,这是因为新的timer.c里面的结构体定义跟#include <asm/arch/s3c6410.h>定义的不一样,主要就是大小写的问题。在这里我找了个新的S3C6410.h,里面关于外设寄存器的定义比原来从SMDK6400拷贝而来的那个smdk6410.h要全面的得多。

另外如果在driver/serial/s3c64xx.c里面也有结构体或函数未定义的问题。修改成和smdk6410.h里面一样就可以了。

打完补丁,屏蔽掉hang();

编译后下载运行:

U-Boot 2012.10 (Nov 06 2012 - 15:10:19) for SMDK6410

CPU: S3C6410@533MHz

Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)

Board: SMDK6410

DRAM: 256 MiB

WARNING: Caches not enabled

Flash: *** failed ***

NAND: No oob scheme defined for oobsize 218

2048 MiB

*** Warning - bad CRC, using default environment

In: serial

Out: serial

Err: serial

Net: CS8900-0

Hit any key to stop autoboot: 0

SMDK6410 #

可以看到u-boot已经运行起来了,但有个NAND:  No oob scheme defined for oobsize 218的提示。而且网卡的驱动不对,ok6410开发板上的网卡芯片是DM9000而非cs8900,所以要修改驱动,使其支持DM9000。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  U-Boot