问题解决了,可以启动了,重新编译一道kernel,可以引导内核了,但是,还是没得文件系统,打算移植UBI
u-boot这块总算过去了,调试u-boot引导linux时注意如下几点
我的调试经验如下:
1. kernel的启动参数设置正确与否 ? 注意mach_type,
2. kernel的entry point是否正确,比如对于ARM,可能会使用0x30008000这个地址,uImage会在zImage前加0x40字节,因此,应该将uImage下载到内存的0x30007FC0(0x30008000 - 0x40)处 ;
3. linux kernel有没有配置好,比如支持console;
4. 对于一些可以变频的MCU,如s3c2410,需要检查一下u-boot与kernel中设置的CPU频率是否一致,否则无法在u-boot启动的shell中看到kernel的启动信息;
5,一定要输出到串口“console=ttySAC0”,要不然就是booting the kernel,以为死机了呢。
6. 如果按上面做了还都不行,在确保上面都正确的情况下,直接使用zImage启动,自己在head-common.S,添加启动信息
ENTRY
处添加
mov r0,#0
mov,r1, #你的机器id,具体可以在mach-type.h,路径我忘了
lddr, r2,0x30008000,加载到内存地址
这里就算我的移植记录历程吧