[U-Boot] [PATCH] ARM: versatile: fix board support

stefano babic
2011-06-24T16:53:31Z

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

--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================