linuxfellow 发表于 2012-02-04 23:34

如何为QEMU制作flash image?


我在QEMU上加了flash emulation support, 然后模拟开发版 boot 全过程,先制作flash file:
文件制作如下:
dd if=/dev/zero of=flash.img bs=256k count=256
dd if=u-boot.bin of=flash.img bs=256k conv=notrunc
dd if=uImage of=flash.img bs=256k seek=2 conv=notrunc
dd if=roofs.img.gz of=flash.img bs=256K seek=8 conv=notrunc

运行后出现问题:
qemu-system-arm -M versatilepb -m 200 -nographic -pflash flash.img

qemu: fatal: Trying to execute code outside RAM or ROM at 0xffff0844

R00=fffcdf70 R01=ffff0000 R02=00000000 R03=00028250
R04=ffff0000 R05=fffcdf70 R06=ffff0000 R07=00000000
R08=008fff78 R09=fffe0000 R10=00028250 R11=00000000
R12=008ffff0 R13=fffcdf60 R14=ffff0844 R15=ffff0844
PSR=600001d3 -ZC- A svc32
Aborted

如果单独运行没问题:
qemu-system-arm -M versatilepb -m 200 -nographic -kernel u-boot.bin

好像uImage在flash文件里没放对,u-boot 时间延迟不起作用。有没有做过类似的flash文件,请帮帮忙!万分感谢

amarant 发表于 2012-06-01 15:03

回复 1# linuxfellow


    LZ现在解决了吗? 我现在也这么做,但是用qemu调,看到跑的代码不对

amarant 发表于 2012-06-01 19:24

回复 1# linuxfellow


    我今天调过了。分享下我的经验。你的是arm的,跟我不一样,可能不是完全合适

qemu mips默认的board是malta的,qemu malta会在bfc00000处写上一个简单的boot,导致了我自己写的boot没有运行起来,然后我用-M mips -cpu 5Kc指定了板子和cpu就跑起来了。

而你的是uboot.bin能够跑起来,说明你的板子和cpu都是正确的。你可以用
qemu-system-arm -kernel u-boot.bin -d in_asm -D ./qemu.log 查看你跑到了哪。

linuxfellow 发表于 2012-06-02 12:34

回复 3# amarant

太谢谢了,我一定试一试。
页: [1]
查看完整版本: 如何为QEMU制作flash image?