sxbo 发表于 2007-2-3 17:14:58

请教:U-BOOT引导内核问题,急!

我使用命令生成U-BOOT执行内核zImage.img
mkimage -n 'zImage' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage zImage.img
下载后开机运行:

U-Boot 1.1.4 (Feb1 2007 - 21:34:29)                                    

U-Boot code: 33F80000 -> 33F9C3C0BSS: -> 33FA04A8                                                   
RAM Configuration:                  
Bank #0: 30000000 64 MB                     
Flash:2 MB            
NAND:64 MB/n*** Warning - bad CRC, using default environment                                                            

In:    serial            
Out:   serial            
Err:   serial            
Hit any key to stop autoboot:0                              

NAND read: device 0 offset 1048576, size 3145728 ...3145728 bytes read: OK                                                                           
## Booting image at 30008000 ...                              
   Image Name:   uImage                     
   Created:      2007-02-03   8:57:21 UTC                                       
   Image Type:   ARM Linux Kernel Image (uncompressed)                                                      
   Data Size:    957924 Bytes = 935.5 kB                                       
   Load Address: 30008000                        
   Entry Point:30008000                        
   Verifying Checksum ... OK                           
   XIP Kernel Image ... OK                        

Starting kernel ...                  

data abort
pc : [<30008008>]    lr : [<33f95c10>]
sp : 33f07c64ip : 33f07c54fp : 33f07c98
r10: 33f07d0cr9 : 00000001r8 : 33f4ffdc
r7 : 33f9f2e4r6 : 30008000r5 : 00000000r4 : 00000000
r3 : 30008000r2 : 30000100r1 : 000000c1r0 : 00000000
Flags: nZCvIRQs offFIQs offMode SVC_32
Resetting CPU ...



U-Boot 1.1.4 (Feb1 2007 - 21:34:29)

U-Boot code: 33F80000 -> 33F9C3C0BSS: -> 33FA04A8
RAM Configuration:
Bank #0: 30000000 64 MB
Flash:2 MB
NAND:64 MB/n*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:0
crne2410 #>

然后在运行
crne2410 #>go 0x30008040

crne2410 #> go 0x30008040
## Starting application at 0x30008040 ...
Uncompressing Linux.............................................................
... done, booting the kernel.

Error: unrecognized/unsupported machine ID (r1 = 0x33f07d10).

Available machine support:

ID (hex)      NAME
000000c1      SMDK2410

Please check your kernel config and/or bootloader.(不动)

请教这是啥原因啊,怎么修改啊?
谢谢!

zshxiong 发表于 2007-2-3 18:30:30

u-boot传参有问题。

修改内核使u-boot的go命令能够启动内核
找到并打开arch/arm/kernel/head.S文件,直接将s3c2410的参数赋给内核。在如下代码:
__INIT
.type        stext, %function
ENTRY(stext)
后面添加:
mov                r0, #0
mov                r1, #0xc1
ldr                r2, =0x30000100
保存后关闭该文件。

然后重新编译内核。当然也可以修改u-boot的源代码。具体怎么修改,你上网查一下吧

sxbo 发表于 2007-2-3 22:39:16

谢谢

sxbo 发表于 2007-2-4 09:57:38

zshxiong您好:
我按您的方法改了内核代码,可运行还是不行
U-Boot 1.1.4 (Feb1 2007 - 21:34:29)

U-Boot code: 33F80000 -> 33F9C3C0BSS: -> 33FA04A8
RAM Configuration:
Bank #0: 30000000 64 MB
Flash:2 MB
NAND:64 MB/n*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:0

NAND read: device 0 offset 1048576, size 3145728 ...3145728 bytes read: OK
## Booting image at 30008000 ...
Bad Magic Number
crne2410 #>

若运行go 0x30008000就可正常进入内核运行
crne2410 #> go 0x30008000
## Starting application at 0x30008000 ...
Uncompressing Linux........................................................(正常启动)
帮我分析一下
谢谢

volans 发表于 2007-2-5 14:59:21

bootm不能使用zImage
页: [1]
查看完整版本: 请教:U-BOOT引导内核问题,急!