天嵌 ARM开发社区

 找回密码
 注册
查看: 14719|回复: 20

uboot显示’bad magic number‘

[复制链接]
kiss351513637 发表于 2010-11-3 01:28:23 | 显示全部楼层 |阅读模式
成功移植uboot后,在tools用工具将天嵌自带内核打包后,用tftp先在sdram运行启动成功,但是将uboot download进nand flash后 uboot启动成功 但是启动内核时提示‘bad magic number’,我阅读了一些文档后,说是内核没有头部信息,可是我已经在uboot的tool里用mkimage打包了啊!实在不知是何原因,用printenv 也显示了uboot传过去的参数,这难道是参数位置没放到位?假如是这样的话?请问下具体如何修改。链接脚本也跟范本的天嵌源码一样了。
machoe 发表于 2010-11-3 09:47:58 | 显示全部楼层
你看一下,你的机器码有没有修改?然后再来看一下,你的参数的地址是多少?
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 10:38:26 | 显示全部楼层
机器码改了。
#define CONFIG_SETUP_MEMORY_TAGS  1
#define CONFIG_CMDLINE_TAG    1
#define CONFIG_INITRD_TAG      1
#define CONFIG_BOOTARGS "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
#define CONFIG_BOOTCOMMAND 'nboot 0x32000000 kernel; bootm 0x32000000'
TEXT_BASE = 0x33D80000
回复

使用道具 举报

天嵌_support1 发表于 2010-11-3 11:07:33 | 显示全部楼层
3# kiss351513637


#define CONFIG_BOOTCOMMAND                "boot_zImage"
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 12:33:28 | 显示全部楼层
还是不行啊!用自己的uboot启动后显示‘bad magic number’后 再用tftp下载到0x30000000 后 bootm 0x30000000 启动成功。
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 13:25:18 | 显示全部楼层
config.mk中TEXT_BASE是如何计算的?可以根据boot。lds推算出环境变量的位置吗?
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 15:18:25 | 显示全部楼层
U-Boot 1.1.6 (Sep  1 2010 - 20:48:25)

DRAM:  64 MB
Flash:  2 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0

Loading from NAND 256MiB 3,3V 8-bit, offset 0x0

** Bad Magic Number 0xea000012 **
## Booting image at 32000000 ...
Bad Magic Number
sjf2440->                                                                        
就是出现了这个错误  内核已经打包头了   直接再用tftp下载到0x30000000 后 bootm 0x30000000 启动成功。
回复

使用道具 举报

haichang417 发表于 2010-11-3 15:27:15 | 显示全部楼层
是zImage还是uImage???u-boot默认引导的是uImage镜像
回复

使用道具 举报

天嵌_support1 发表于 2010-11-3 18:09:36 | 显示全部楼层
8# haichang417


天嵌的是zImage.
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 18:22:50 | 显示全部楼层
U-Boot 1.1.6 (Sep  1 2010 - 20:48:25)

DRAM:  64 MB
Flash:  2 MB
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0

Loading from NAND 256MiB 3,3V 8-bit, offset 0x0

** Bad Magic Number 0xea000012 **
## Booting image at 32000000 ...
Bad Magic Number
sjf2440->                                                                        
就是出现了这个错误  内核已经打包头了   直接再用tftp下载到0x30000000 后 bootm 0x30000000 启动成功。tftp下载后bootm能启动啊!
回复

使用道具 举报

天嵌_support1 发表于 2010-11-3 19:05:12 | 显示全部楼层
10# kiss351513637



你的这个问题可能你是生成了 uimage
天嵌用的是zimage的
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-3 20:17:34 | 显示全部楼层
用tq自带的内核烧进去后还是出现一模一样的打印错误信息。
回复

使用道具 举报

maylag 发表于 2010-11-3 21:14:54 | 显示全部楼层
你用的是天嵌的uboot还是自己编译的新版本的uboot?是哪个版本?
天嵌的uboot引导的是zImage镜像,而现在的uboot版本默认的是uImage镜像。
用天嵌的uboot,不用mkimage处理可以直接用boot_zImage命令
要是新版本的uboot,把你的mkimage制作uboot头信息的命令贴一下看看。
回复

使用道具 举报

 楼主| kiss351513637 发表于 2010-11-4 00:14:45 | 显示全部楼层
自己编译的uboot1.1.6  
mkimage -n 'linux-2.6.30.4' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage.bin UImage.bin    直接再用tftp下载到0x30000000 后 bootm 0x30000000 启动成功。tftp下载后bootm能启动啊!uboot在nand启动。
回复

使用道具 举报

maylag 发表于 2010-11-4 13:02:27 | 显示全部楼层
不知你的mtdparts值是多少?kernel代表的范围是?
Loading from NAND 256MiB 3,3V 8-bit, offset 0x0
这里为什么是0x0啊?
如果tftp下载可以启动,而从nand中读到内存启动不能成功,我感觉应该是读取时有问题,是不是读取的地址范围设置错了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-5-7 19:13 , Processed in 2.041049 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表