
Am 24/06/2011 17:37, schrieb Loïc Minier:
On Fri, Jun 24, 2011, Stefano Babic wrote:
Versatile board is used as example to run u-boot under qemu. The patch fixes relocation for all versatile boards and adds a versatileqemu target to be used under qemu.
Thanks a lot!
You're welcome.
Patch tested only under qemu, not on real boards. Tested with QEMU emulator version 0.14.50.
I've built u-boot tip with your patch with: make CROSS_COMPILE=arm-linux-gnueabi- O=$PWD/obj-versatileqemu \ versatileqemu_config make CROSS_COMPILE=arm-linux-gnueabi- O=$PWD/obj-versatileqemu -j3 using the Ubuntu (Linaro-based, 4.6.0-14ubuntu1cross1.52) armel cross-compiler but couldn't get this to start with my incantations of: qemu-system-arm -M versatilepb -kernel obj-versatileqemu/u-boot \ -m 128 -serial stdio and other combinations I've tried
I do not know if depends on the compiler (search in the mailing list against problem with gcc 4.5+). I tested with ELDK-4.2, that means gcc 4.2.2.
I use the same qemu as you, as I tested on Ubuntu-natty: qemu-system-arm --version QEMU emulator version 0.14.50 (Debian 0.14.50-2011.03-1-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard
And I start the image with:
qemu-system-arm -M versatilepb -m 128M -kernel u-boot.bin -serial stdio -net nic,vlan=0,model=smc91c111
Warning: vlan 0 is not connected to host network
U-Boot 2011.06-rc3-00001-gd723904 (Jun 24 2011 - 18:26:27)
DRAM: 128 MiB Using default environment
In: serial Out: serial Err: serial Net: SMC91111-0
Note: because now the RAM is detected, the correct RAM size is displayed by U-Boot under qemu. In fact, starting with only 16MB I get:
$ qemu-system-arm -M versatilepb -m 16M -kernel u-boot.bin -serial stdio -net nic,vlan=0,model=smc91c111 Warning: vlan 0 is not connected to host network
U-Boot 2011.06-rc3-00001-gd723904 (Jun 24 2011 - 18:26:27)
DRAM: 16 MiB Using default environment
In: serial Out: serial Err: serial Net: SMC91111-0 VersatilePB #
However, inspired by your changes I added these changes: --- a/boards.cfg +++ b/boards.cfg @@ -138,6 +138,7 @@ omap5912osk arm arm926ejs - ti edminiv2 arm arm926ejs - LaCie orion5x dkb arm arm926ejs - Marvell pantheon ca9x4_ct_vxp arm armv7 vexpress armltd +qemuvexpressa9 arm armv7 vexpress armltd - ca9x4_ct_vxp:ARCH_QEMU_VEXPRESS
Probably we need some feedback from ML to know if we have to save the vexpress board or we have simply to drop it, because nobody seems to have interest on it. The versatile is the well known example to run the bootloader under qemu, I do not know if we have to extend the patch to include other boards.
For the same reason, I have not dropped in my patch board/armltd/integrator/split_by_variant.sh. This file is obsolete for versatile, and should be removed if the integrator boards will be removed in the next release.
I wonder whether it would make sense to use the same ifdef for versatile and vexpress boards (QEMU_NO_FLASH?)
Extending the patch to vexpress, I agree using the same #ifdef. No need to add a special CONFIG_ for each board we want to run under qemu.
Could you share your recipe for getting the versatileqemu config to start? I'm using Ubuntu's qemu (Linaro-based, 0.14.50-2011.06-0-0ubuntu1).
See at the beginning. It seems I am testing on the same distro as you, and if it does not work, there should be something related to the different toolchains we are using. I have tested also with gcc 4.4.1, no problem found.
Best regards, Stefano Babic