summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/cmd_elf.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/cmd_elf.c b/common/cmd_elf.c
index d6a2036..86e694a 100644
--- a/common/cmd_elf.c
+++ b/common/cmd_elf.c
@@ -20,6 +20,7 @@
#include <vxworks.h>
#ifdef CONFIG_X86
#include <asm/e820.h>
+#include <linux/linkage.h>
#endif
/*
@@ -379,7 +380,12 @@ int do_bootvx(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
printf("## Starting vxWorks at 0x%08lx ...\n", addr);
dcache_disable();
+#ifdef CONFIG_X86
+ /* VxWorks on x86 uses stack to pass parameters */
+ ((asmlinkage void (*)(int))addr)(0);
+#else
((void (*)(int))addr)(0);
+#endif
puts("## vxWorks terminated\n");