bootvx: Clear and disable data cache, and call vxWorks with parameter.
authorReinhard Arlt <reinhard.arlt@esd.eu>
Fri, 18 Nov 2011 09:06:52 +0000 (09:06 +0000)
committerWolfgang Denk <wd@denx.de>
Sun, 18 Mar 2012 19:14:05 +0000 (20:14 +0100)
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>
common/cmd_elf.c

index 11ffc1b8aa7dee46dee62f25f44170f3dcf40d61..8266bba0e6935063263e4db3bb8c983316be5731 100644 (file)
@@ -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;