[U-Boot] Problems using vxboot

Hello,
i run into a strange problem booting vxWorks on the cpci750 and vme8349 using u-boot 2011.06.
The decrementer slot contains old code. The problem is starting vxWorks with the data cache enabled.
The code below fix the problem. It disable (and flush) the data cache, and set the start parameter to cold boot for the vxWorks sysInit(int p0) routine.
Is this code acceptable?
diff --git a/common/cmd_elf.c b/common/cmd_elf.c index bf32612..c3f0986 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;
Kind regards
Reinhard Arlt

Hi Reinhard,
i run into a strange problem booting vxWorks on the cpci750 and vme8349 using u-boot 2011.06.
The decrementer slot contains old code. The problem is starting vxWorks with the data cache enabled.
The code below fix the problem. It disable (and flush) the data cache, and set the start parameter to cold boot for the vxWorks sysInit(int p0) routine.
Is this code acceptable?
If vxworks needs the caches disabled to start, then sure why shouldn't it? Isn't there some vxWorks documentation item for that? It would be good to reference that in a comment.
Cheers Detlev
participants (2)
-
Detlev Zundel
-
Reinhard Arlt