最近想加载Linux系统,由于友善之臂的supervivi不是开源的,因此想看看友善提供的vboot代码。
使用友善提供的mini2440光盘文件的vboot代码, 通过make命令后在当前目录下生成vboot.bin。
友善之臂的“mini2440用户手册”说它和光盘中提供的vboot.bin是完全一样的,可是我make生成的vboot.bin大小为:“3.25 KB (3,335 字节)”,而友善光盘里的为:“3.10 KB (3,183 字节)”,它俩大小都不一样。
使用友善之臂的vboot引导系统正常启动。
启动信息为:
load Image of Linux...
Uncompressing Linux.............................................................................. done, booting the kernel.
Linux version 2.6.32.2-FriendlyARM (root@stallion) (gcc version 4.4.3 (ctng-1.6.1) ) #2 Thu Jan 20 14:37:55 CST 2011
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: FriendlyARM Mini2440 development board
ATAG_INITRD is deprecated; please update your bootloader.
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
....
....
而使用我自己编辑出来的vboot.bin启动信息为:load Image of Linux... (后面没了!)
就是说没有进入到解压内核的步骤。。
我尝试在vboot代码中加入调试信息,发现程序在CallLinux函数的
asm (
"mov r0, %0\n"
"mov r1, %1\n"
"mov r2, %2\n"
"mov ip, #0\n"
"mov pc, r2\n"
"nop\n" "nop\n": /* no outpus */
:"r"(0), "r"(1999), "r"(g_os_ram_start)
);
这个地方停了下来,程序跳不过这个asm。
我不知道是不是我有什么操作错误,恳请知道的达人们言语一声,谢谢了。。
=====
附件为友善提供的vboot代码
vboot-src-20100106.tar.gz (15 K) 下载次数:49 [ 此帖被nobody在2011-01-21 18:11重新编辑 ]