先说现象吧:uboot能够正常启动,不过在kernel启动时却出现起不了的现象,停在这里
Uncompressing Linux.............................................................. done, booting the kernel。就是在这里停住了
分析原因:这个是由于时钟频率还未达到我们的要求,或者是时钟刚启动还未稳定造成的。
解决方法:就是在时钟初始化函数的末尾添加一个毫秒级延时即可。具体修改办法:
因为我的是s3c2416的板子
打开 /arch/arm/mach-s3c2416/clock.c 在文件的末尾
for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++)
{
ret = s3c24xx_register_clock(clkp);
if (ret < 0) {
printk(KERN_ERR "Failed to register clock %s (%d)\n",
clkp->name, ret);
}
(clkp->enable)(clkp, 0);
msleep(2); //sfx add
}