
The option CONFIG_VXWORKS_PREBOOT allows a board specific vxworks_preboot to be run just before jumping into the vxWorks images. This can be used to alter a register which is used differently by U-boot and vxWorks.
Signed-off-by: Niklaus Giger niklaus.giger@netstal.com --- common/cmd_elf.c | 4 ++++ include/vxworks.h | 4 ++++ 2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/common/cmd_elf.c b/common/cmd_elf.c index bf7dd63..4e36680 100644 --- a/common/cmd_elf.c +++ b/common/cmd_elf.c @@ -213,6 +213,10 @@ int do_bootvx (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) (char *) bootaddr); printf ("## Starting vxWorks at 0x%08lx ...\n", addr);
+#ifdef CONFIG_VXWORKS_PREBOOT + vxworks_preboot(); +#endif + ((void (*)(void)) addr) ();
puts ("## vxWorks terminated\n"); diff --git a/include/vxworks.h b/include/vxworks.h index 1633904..df2b580 100644 --- a/include/vxworks.h +++ b/include/vxworks.h @@ -50,4 +50,8 @@ int do_bootvx(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]); #define CONFIG_SYS_VXWORKS_SERVERNAME "srv" #endif
+#ifdef CONFIG_VXWORKS_PREBOOT + void vxworks_preboot(void); +#endif + #endif