当前位置: 技术问答>linux和unix
uboot启动内核的问题~解决了好久都没有解决出来~
来源: 互联网 发布时间:2017-03-19
本文导语: 最近做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: ...
最近做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、 第二种解决方法中,为什么不能起来?是否还需要修改其他的地方?
请各位大侠帮小弟一把~感谢!
-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有效地址吗?先确定下
|
你的意思是你在uboot中开启了mmu?建立页表了?
|
Wrong Image Format for bootm command
ERROR: can't get kernel image!
应该是内核格式不对吧。bootm好像启动uImage格式的。
你该成go命令试下。
nand read c0008000 40000 300000; go c0008000
ERROR: can't get kernel image!
应该是内核格式不对吧。bootm好像启动uImage格式的。
你该成go命令试下。
nand read c0008000 40000 300000; go c0008000
|
是否uImage生成的不对啊。
将u-boot源码编译后将mkimage拷到到/bin下再编译一下内核试试。
将u-boot源码编译后将mkimage拷到到/bin下再编译一下内核试试。