日期:2014-05-16  浏览次数:20564 次

uboot启动内核的问题~解决了好久都没有解决出来~
最近做uboot的移植,uboot是可以起来了,但是无法引导内核,问题如下:

-Boot 2010.03 (12鏈?02 2010 - 15:27:43) for SMDK6400



CPU: S3C6400@667MHz

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

Board: SMDK6400

DRAM: 128 MB

Flash: 0 kB

NAND: 1024 MiB

*** Warning - bad CRC, using default environment


In: serial

Out: serial

Err: serial

Net: CS8900-0

Hit any key to stop autoboot: 0 


NAND read: device 0 offset 0x60000, size 0x1c0000

 1835008 bytes read: OK

Wrong Image Format for bootm command

ERROR: can't get kernel image!


本来我的内核是下载在0x40000中,size是300000;下载到的内存是c0008000;
我的解决方法:
1、 我修改了启动参数为:setenv bootcmd nand read c0008000 40000 300000; saveenv;
不行;
2、 我修改源代码中的include/configs/smdk6410.h文件为:
 #define CONFIG_BOOTCOMMAND "nand read 0xc0008000 0x40000 0x300000;" "bootm c0008000"
但是编译后uboot都起不来了;不知道为什么;

问题:
1、第一种方法中更改环境变量能否更改启动的参数?
2、 第二种解决方法中,为什么不能起来?是否还需要修改其他的地方?
请各位大侠帮小弟一把~感谢!


------解决方案--------------------
地址 c0008000 是你的ram有效地址吗?先确定下
------解决方案--------------------
探讨

先谢谢楼上们的回答~
先补充一下我的nandflash的分区:
bootloader 0x0~0x0003ffff
kernel 0x40000~0x003fffff

一楼:RAM是有效地址来的
三楼:我的RAM的有效地址是0x5000 0000~0x5FFF FFFF 256MB,使用了虚拟存储 则c0008000是对应这块地址空间的
四楼:不加0x我想它默认应该是……