[U-Boot-Users] How do I boot VxWorks (6.3) image with u-boot 1.1.3 :: mkimage entry point and address ?

I have a working system, PowerPC embedded in Xilinx Virtex II Pro, that does boot into Linux using u-boot 1.1.3; but I need to load a VxWorks (6.3) image and boot from that. I have read the documentation, but I don't know what my entry point for mkimage to use, sysInit( )? What should my load address be?
To date I have used the following command mkimage -O VxWorks -A ppc -C none -a 0x00 -e 0x00 \ -n vxWorks1a.msc -d ./vxWorks ./vxworks1a
I load the resulting file (vxworks1a) to the device, and attempt to run the it => loadb 0x00200000 ## Ready for binary (kermit) download to 0x00200000 at 115200 bps... ## Total Size = 0x000e09b6 = 919990 Bytes ## Start Addr = 0x00200000 => => => => => bootm 0x00200000 ## Booting image at 00200000 ... Image Name: vxWorks3.msc Image Type: PowerPC VxWorks Kernel Image (uncompressed) Data Size: 919926 Bytes = 898.4 kB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK OK The system never returns from 'OK'. What am I doing wrong?
Michael S. Chaffin Satellite Test Engineer MicroSat Systems, Inc. microsatsystems.com

Chaffin, Michael wrote:
I have a working system, PowerPC embedded in Xilinx Virtex II Pro, that does boot into Linux using u-boot 1.1.3; but I need to load a VxWorks (6.3) image and boot from that. I have read the documentation, but I don't know what my entry point for mkimage to use, sysInit( )? What should my load address be?
You have to pass as address the entry point of the vxworks kernel. On my PPC405 board I had no problem with the following steps I have in my config.h a RAM_LOW_ADRS = 00010000 ; I did no call mkImage for my vxWorks (5.5.1), but copied it directly into the ram at an address which does not conflict with my RAM_LOW_ADRS e.g. loadb 0x00200000 then I call bootm 0x00010000 ;
On the Yosemite PPC440EP evaluation board, my vxWorks (6.3) hangs too. I had not yet a chance to figure out why, but I think there might be some differences into how the HW is mapped into the memory space.
Best regards
Niklaus Giger

Hi Michael,
On Thursday 30 November 2006 18:59, Chaffin, Michael wrote:
I have a working system, PowerPC embedded in Xilinx Virtex II Pro, that does boot into Linux using u-boot 1.1.3; but I need to load a VxWorks (6.3) image and boot from that. I have read the documentation, but I don't know what my entry point for mkimage to use, sysInit()? What should my load address be?
The VxWorks image is an elf image and has it's load address encoded. Why not use this information (see below)?
To date I have used the following command mkimage -O VxWorks -A ppc -C none -a 0x00 -e 0x00 \ -n vxWorks1a.msc -d ./vxWorks ./vxworks1a
Not needed.
I load the resulting file (vxworks1a) to the device, and attempt to run the it => loadb 0x00200000 ## Ready for binary (kermit) download to 0x00200000 at 115200 bps... ## Total Size = 0x000e09b6 = 919990 Bytes ## Start Addr = 0x00200000 => => => => => bootm 0x00200000
Why don't you just use the U-Boot command for booting VxWorks images "bootvx"? One reason could be, that you don't have support for this built into your U-Boot image (you have to include CFG_CMD_ELF in the commands).
So either use the bootvx command right away, or rebuild your U-Boot image with support for the "elf-" commands (like bootelf or bootvx).
Something like:
=> tftp 800000 vxWorks => bootvx 800000
Please note that you also have to setup the "bootargs" environment variable. This will be copied into the VxWorks bootline (on PPC's at 0x4200).
Best regards, Stefan
participants (3)
-
Chaffin, Michael
-
Niklaus Giger
-
Stefan Roese