Chinaunix首页 | 论坛 | 博客
  • 博客访问: 641421
  • 博文数量: 263
  • 博客积分: 9025
  • 博客等级: 中将
  • 技术积分: 2567
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-01 17:42
文章分类

全部博文(263)

文章存档

2012年(4)

2011年(64)

2010年(47)

2009年(44)

2008年(99)

2007年(5)

我的朋友

分类:

2008-05-29 22:13:41

今天开始移植2.6.22到2440上。
按s3c2410_defconfig编译了一个image,下载到板子上后,出现错误,
 

Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySA
C0"

MACH_TYPE = 782
NOW, Booting Linux......
Uncompressing Linux.............................................................
...................................... done, booting the kernel.

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

Available machine support:

ID (hex) NAME
0000016a SMDK2440

Please check your kernel config and/or bootloader.

晕,这是什么错误,无法识别machine ID。

移植内核没有想象的那么简单,要多多实践。

早上一上班就认真看了源码,原来VIVI传递给内核的machine ID与指定的machine ID不匹配,导致的错误。
head.S

    bl    __lookup_machine_type        @ r5=machinfo
    movs    r8, r5                @ invalid machine (r5=0)?
    beq    __error_a            @ yes, error 'a'

在这里判断出错的。

内核中machine type定义在文件arch\arm\tools\mach-types,由脚步自动生成.h文件
阅读(987) | 评论(0) | 转发(0) |
0

上一篇:路过公园

下一篇:改了mach type

给主人留下些什么吧!~~