summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReinhard Arlt <reinhard.arlt@esd.eu>2011-11-18 09:06:52 +0000
committerWolfgang Denk <wd@denx.de>2012-03-18 20:14:05 +0100
commit6eee21daf3d1cabad8a4dfaf6641d8845ee7578a (patch)
tree408e417f7ece9263c5821ca1d292b5b7572542cb
parentf6add132f6d7f45eb7d4b3839513c38bfb28eb08 (diff)
downloadu-boot-imx-6eee21daf3d1cabad8a4dfaf6641d8845ee7578a.zip
u-boot-imx-6eee21daf3d1cabad8a4dfaf6641d8845ee7578a.tar.gz
u-boot-imx-6eee21daf3d1cabad8a4dfaf6641d8845ee7578a.tar.bz2
bootvx: Clear and disable data cache, and call vxWorks with parameter.
This patch clear and disable the data cache for vxWorks. The entry point sysInit(int) intended by Windriver to be called from the vxWorks bootrom, a very small vxWorks system. The routine is called by the go() handler in the bootrom, that clears the cache from start of image to end of usable memory. The PowerPC implementations only invalidates and disable the cache, the ARM implementations also flush it. U-Boot will be on the safe side, if it disables the data cache before calling vxWorks sysInit(int). Signed-off-by: Reinhard Arlt <reinhard.arlt@esd.eu>
-rw-r--r--common/cmd_elf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/common/cmd_elf.c b/common/cmd_elf.c
index 11ffc1b..8266bba 100644
--- a/common/cmd_elf.c
+++ b/common/cmd_elf.c
@@ -230,7 +230,8 @@ int do_bootvx (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
(char *) bootaddr);
printf ("## Starting vxWorks at 0x%08lx ...\n", addr);
- ((void (*)(void)) addr) ();
+ dcache_disable();
+ ((void (*)(int)) addr) (0);
puts ("## vxWorks terminated\n");
return 1;