Chinaunix

标题: 用s5pv210跑linux 3.0.15无限卡在kernel解压完成阶段 [打印本页]

作者: 孙墨水    时间: 2016-09-30 17:41
标题: 用s5pv210跑linux 3.0.15无限卡在kernel解压完成阶段
这两天在做实践,直接下载了linux官网的kernel 3.0.15,想移植到自己的开发板.如下是uboot的设置。                                                         
bootcmd=nand read 0x30008000 0x600000 0x500000;bootm 0x30008000                 
bootargs=root=/dev/mtdblock4 rootfstype=yaffs2 init=/sbin/init console=ttySAC0,0                                                               
arch_number = 0x00000998                                                        
env_t       = 0x00000000                                                        
boot_params = 0x30000100                                                        
DRAM bank   = 0x00000000                                                        
-> start    = 0x30000000                                                        
-> size     = 0x10000000                                                        
DRAM bank   = 0x00000001                                                        
-> start    = 0x40000000                                                        
-> size     = 0x10000000                                                        
ethaddr     = 00:40:5C:26:0A:5B                                                
ip_addr     = 192.168.1.88                                                      
baudrate    = 115200 bps


首先来说,UBOOT是没问题的,我编译的kernel 2.6是可以正常运行的。先来看下我kernel3.0.15遇到的情况。(蓝色字体是打印信息)
NAND read: device 0 offset 0x600000, size 0x500000                              
Main area read (40 blocks):                                                     
5242880 bytes read: OK                                                         
get_format                                                                     
-------- 1 --------                                                            
## Booting kernel from Legacy Image at 30008000 ...                             
   Image Name:   linux-3.0.15                                                   
   Created:      1979-09-05  22:51:36 UTC                                       
   Image Type:   ARM Linux Kernel Image (uncompressed)                          
   Data Size:    1255204 Bytes =  1.2 MB                                       
   Load Address: 30008000                                                      
   Entry Point:  30008040                                                      
   Verifying Checksum ... OK                                                   
get_format                                                                     
-------- 1 --------                                                            
   XIP Kernel Image ... OK                                                      
OK                                                                              
                                                                                
Starting kernel ...                                                            
                                                                                
Uncompressing Linux... done, booting the kernel.

1.首先我kernel是没有超过5M的。所以内核不完整是排除的。我将zImage 做成了uImge ,放在了0x30008000上面启动。(我内存是512M)
2.内核能打印出Uncompressing Linux..,证明串口是正常的。而且解压完成。
3.怀疑机器码有问题。我将输入个错误的机器码,则打印信息如下。
Starting kernel ...                                                            
                                                                                
Uncompressing Linux... done, booting the kernel.                                
                                                                                
Error: unrecognized/unsupported machine ID (r1 = 0x0000099.                  
                                                                                
Available machine support:                                                      
                                                                                
ID (hex)        NAME                                                            
00000a74        Aquila                                                         
00000891        MY-s5pv210                                                      
00000891        SMDKC110                                                        
00000b2e        GONI                                                            
                                                                                
Please check your kernel config and/or bootloader.

到此可以证明,我内核串口设置正确,内核调试信息正常显示。而且内核确实被解压,内核也对UBOOT传递过来的机器码进行核对。但是为什么无法进入c阶段的main.c里面的start_kernel()?我怀疑是CPU的配置问题,我仔细查看了arch/arm/mach-s5pv210/Kconfig.  在config CPU_S5PV210里面确实包括了 select PLAT_S5P。而且我在最开始的make 里面使用的是官方给的s5pv210_defconfig做基础配置。为什么会卡在这里?



作者: 孙墨水    时间: 2016-10-09 09:35
自己顶,已经卡在这好几天了
作者: jeppeter    时间: 2016-10-11 16:14
回复 1# 孙墨水

最傻的办法,就是你出现那个错误打印之前是什么原因会进入这个打印的,那里的比较,就是你出错的原因了。

作者: xingjiu119    时间: 2016-11-17 14:49
本帖最后由 xingjiu119 于 2016-11-17 14:55 编辑

                                    插眼,等结果




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2