diff --git a/common/cmd_elf.c b/common/cmd_elf.c
index 11ffc1b8aa7dee46dee62f25f44170f3dcf40d61..8266bba0e6935063263e4db3bb8c983316be5731 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;