Starting kernel ...
排除串口号设置等问题后;发现还是没有打印信息
uart发送使用了fifo的方法,因fifo_mask、fifo_max没被赋值,导致死在了一个while循环里面
(arch/arm/mach-s5pv210/include/mach/uncompress.h static void putc(int ch))
解决办法:
arch/arm/mach-s5pv210/include/mach/uncompress.h
static void arch_detect_cpu(void)
{
/* we do not need to do any cpu detection here at the moment. */
fifo_mask = S5PV210_UFSTAT_TXMASK;
fifo_max = 255 << S5PV210_UFSTAT_TXSHIFT;
}
## Booting kernel from Legacy Image at 20007fc0 ...
Image Name: Linux-3.0.8-gaa35df4-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1849084 Bytes = 1.8 MiB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
XIP Kernel Image ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
s3c24xx_serial_initconsole
s3c24xx_serial_init_ports: initialising ports...
在S5PV210(tiny210)设备上,Linux-3.0.8内核启动时遇到'Starting kernel ...'卡住的问题。尽管UART配置正确,但问题出在未初始化fifo_mask和fifo_max,导致在putc函数的while循环中停滞。解决方案是在'uncompress.h'文件中添加对fifo_mask和fifo_max的赋值。完成这些修改后,内核成功解压并启动。
&spm=1001.2101.3001.5002&articleId=69266470&d=1&t=3&u=016bf38e98e8419ab5920079395d07db)
1万+

被折叠的 条评论
为什么被折叠?



