在移植linux kernel时,发现内核输出现下面的一行打印后,就再也没有输出信息,
......................................................................................................... done, booting the kernel.
在上面的函数解压完kernel后,就会退出,这时是没有问题的。在退回到arch/arm/boot/compressed/head.s后,最终会执行下面的一段汇编:
call_cache_fn: adr
r12, proc_types
#ifdef CONFIG_CPU_CP15
mrc p15, 0, r6, c0, c0
@ get processor ID //获取CPU的ID号到ARM寄存器R6里面
#else
ldr r6, =CONFIG_PROCESSOR_ID
#endif
1: ldr
r1, [r12, #0] @ get value
ldr r2, [r12, #4]
@ get mask
eor r1, r1, r6
@ (real ^ match)
tst r1, r2
@ & mask
addeq pc, r12, r3
@ call cache function
add r12, r12, #4*5
b 1b //不相等则再找下一个。
关于如何修改machine ID在网上很多,在这就不说了。
kernel:
include/asm-arm/mach-types.h
arch/arm/tools/mach-types
arch/arm/kernel/head.s
上面的三个函数,只要改一个就可以了。
intel xscale PXA270 porting :unsupported machine IDg同,布布扣,bubuko.com
intel xscale PXA270 porting :unsupported machine IDg同
原文:http://blog.csdn.net/jackyard/article/details/20468581