- 论坛徽章:
- 0
|
目前我用bcm47xx 驱动调试一块broadcom mips的cpu板,
Kernel command line: console=ttyS0,9600 rd_start=0x80a00000 rd_size=0x200000 rw init=/linuxrc root=/dev/ram0
如果我设置 rd_size>=0x400000 的时候,则系统启动会停在下面的地方不动:
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
如果我设置 rd_size<= 0x200000 的时候,则系统启动会往下走。
我跟到内核代码 init/initramfa.c
fd = sys_open("/initrd.image", O_WRONLY|O_CREAT, 0700);
if (fd >= 0) {
printk("it isn't (%s); looks like an initrd, before sys_write, initrd_start:%02x,initrd_end:%02x\n",
err,initrd_start,initrd_end);
sys_write(fd, (char *)initrd_start,
initrd_end - initrd_start);
printk("after sys_write\n");
sys_close(fd);
free_initrd();
}
发现是在sys_write 函数中出不来了
不知道这是什么原因,是不是内存初始化出了问题? |
|