I’m using the board to test VxWorks6.x images.
1. Should I replace the u-boot bootloader with vxWorks’ bootloader
(bootrom), or can I work with uboot?
2. I have a VxWorks image with that name. I’ve set up a tftp server,
and download the image to local memory (tftp 0x10000 vxWorks). I then
used “bootm 0x10000 0x100000” to uncompress/copy the file to 0x100000
(the address of the entry point for VxWorks). I got an error: “Wrong
Image Format for bootm command”. I guess this is an error resulted
from bad compilation. What did I do wrong?
3. Where do I need to copy the VxWorks image, and what address should
I start running this image from (using the “go” command). I know the
entry point for VxWorks is usrInit, and its address is 0x00106df4 (got
it by using nmppc). Should I copy the entire image to 0x100000
(LOW_ADDRS)?
4. I tired another approach, and used several other ways to start
running the image, and failed in every way. I tried bootvx, bootelf,
and several other ways. In all cases I got a machine check exception
error, and the board restarted:
Caused by (from msr): regs 0fe9ec98 Data PLB Error
NIP: 00000000 XER: 0000005F LR: 0FFB7F58 REGS: 0fe9ec98 TRAP: 0200
DEAR: 00000000
MSR: 00000000 EE: 0 PR: 0 FP: 0 ME: 0 IR/DR: 00
GPR00: 7CAAF3A6 0FE9ED88 0FE9EF44 004568CF 003568D0 00000000 004568CC
02000000
GPR08: 00000000 00000050 00000000 00100000 44022042 00000000 0FFF1700
00000000
GPR16: 0FFE6CC4 0FFED9B8 00000000 00000000 00000000 00000000 00000000
FFFFFFFF
GPR24: 00000000 0FEA4778 00000000 00000001 00000002 00100000 0FFF2040
7CAAF3F6
Call backtrace:
00000000 0FFB8364 0FFC77D0 0FFC6EE0 0FFC7050 0FFC9CCC 0FFA7334
0FFA56AC
machine check
What am I doing wrong?
Thanks,
Ofer
Two things:
First, you didn't say exactly what version of VxWorks you have. It is
not enough to say "VxWorks6.x." You should have explicitly said 6.6,
6.7 or 6.8. Yes, it matters. I don't know why people are so reluctant
to just come out and say what version of the OS they have.
Second, the BSP for the Kilauea board comes with a target.ref file,
which provides documentation, including information on how to boot
VxWorks on the target. You have two options. One is to use the Wind
River ICE or Probe JTAG tools to replace U-Boot with a VxWorks
bootrom. The other is to use U-Boot to load the VxWorks bootrom into a
separate space in flash, and the use U-Boot to launch it (and from
there use the bootrom in turn to load VxWorks). In effect, this is
sort of a two-stage boot: U-Boot launches, then you use the "go"
command from the U-Boot shell to start the bootrom. This preserves the
ability to use U-Boot to boot other OSes.
Note that the bootrom is a flat binary file (bootrom.bin). You can't
necessarily boot a VxWorks ELF image directly from U-Boot unless the
target.ref file for the BSP says so. (Yes, I know U-Boot has a bootvx
command, but I think that's included whenever you build U-Boot for a
PPC target. It's not automatically guaranteed to work unless the
VxWorks BSP has been set up to allow it.)
-Bill
Thanks Bill. Your answer was very comprehensive. Indeed, I didn't
mention the vxWorks version as I wasn't sure it matters. It is a vx6.8
for PPC.
Anyway, I will try the 2 stages boot you mentioned, as I do not have a
JTAG/ICE for that aboard.
Thanks,
Ofer