今天开始移植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文件
阅读(995) | 评论(0) | 转发(0) |