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

Loïc Minier
2011-06-24T15:37:18Z

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!

> 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

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
efikamx arm armv7 efikamx - mx5 mx51evk:IMX_CONFIG=board/efikamx/imximage.cfg
mx51evk arm armv7 mx51evk freescale mx5 mx51evk:IMX_CONFIG=board/freescale/mx51evk/imximage.cfg
mx53evk arm armv7 mx53evk freescale mx5 mx53evk:IMX_CONFIG=board/freescale/mx53evk/imximage.cfg
--- a/include/configs/ca9x4_ct_vxp.h
+++ b/include/configs/ca9x4_ct_vxp.h
@@ -148,6 +148,12 @@
"cp ${initrdaddr} ${initrd} ${maxinitrd}; " \
"bootm ${kerneladdr} ${initrd}\0"

+#ifdef CONFIG_ARCH_QEMU_VEXPRESS
+#define CONFIG_ENV_SIZE 8192
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_SYS_MONITOR_LEN 0x80000
+#else
/* FLASH and environment organization */
#define PHYS_FLASH_SIZE 0x04000000 /* 64MB */
#define CONFIG_SYS_FLASH_CFI 1
@@ -187,6 +193,7 @@
#define CONFIG_SYS_FLASH_EMPTY_INFO /* flinfo indicates empty blocks */
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE0, \
CONFIG_SYS_FLASH_BASE1 }
+#endif

/* Monitor Command Prompt */
#define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */

and built with:
make CROSS_COMPILE=arm-linux-gnueabi- O=$PWD/obj-qemuvexpressa9 \
qemuvexpressa9_config
make CROSS_COMPILE=arm-linux-gnueabi- O=$PWD/obj-qemuvexpressa9 -j3 \
$PWD/obj-qemuvexpressa9/u-boot
and this started fine with:
qemu-system-arm -M vexpress-a9 -kernel obj-qemuvexpressa9/u-boot \
-m 1024 -serial stdio

I wonder whether it would make sense to use the same ifdef for
versatile and vexpress boards (QEMU_NO_FLASH?) and prefix the board
names with qemu; e.g. qemu_versatile_foo?

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).

--
Lo?c Minier