We have a Motorola MPC8260ADS development board onto which I am
struggling to get QNX installed. So far I’ve had no luck at all
and I’m hoping someone here can point out what I’m doing wrong.
I am running QNX 6.1.0 which I downloaded from the QNX website.
Once installed, I used the package manager to install development
tools and tools for cross-development. I’m not exactly sure what
that gave me or if it gave me everything I need, but I do now
have a /ppcbe directory and associated subdirectories. Here is
what I’ve done so far…
The /ppcbe/boot/build directory contains *.build files for
several different PPC development boards including one called
“8260ads.build” which I presume will build an image suitable for
use on my 8260ADS board. Most of the build files have
accompanying .readme files but there is no .readme for the
8260ads which leaves me kind of flying blind.
At any rate, I made a copy of 8260ads.build called “test.build”
which I then opened in my text editor and modified by removing
the comment characters from in front of the following two lines.
devf-8260 &
io-net -dppc8260-ads channel=2 -pttcpip if=en0:172.23.11.207 &
According to the comments in the file, this was necessary to
add a flash filesystem and to enable TCP/IP networking.
I then saved the file back to the /ppcbe/boot/build directory and
used the mkifs utility like this…
mkifs test.build test.ifs
which resulted in a file called ‘test.ifs’. I gather this
contains the boot image. The problem is, how do I get it onto
the 8260? There was an OCDemon parallel port to JTAG pod
Included along with the development board along with some Windows
based software for running it. I installed the software on my
laptop, connected up the pod between the laptop and the 8260
board and tried to figure out how to transfer the boot image made
previously.
It appears the pod software will only work with an S-record
format file or Intel hex file. I’m not positive on this because
there is ZERO documentation included with the pod software and
the online “help” is also basically non-existant. However, when
I tried to load thie .ifs image file I made earlier the software
rejected it. So I used the following QNX utility
mkifsf_srec test.ifs test.s19
to convert the image file made earlier into an S-record version
of the same (I think). The pod software happily imported the new
file and returned with the following numbers:
Load image starts at: 0x00010000
ends at: 0x001BB213
start programming at flash address: 0xFF800000
The “load image starts at” number corresponds to the
[image=0x10000] field in the test.build file I guess. I don’t
understand what that means or what’s magical about 0x10000 but
just the fact that they were the same was encouraging.
Similarly, according to the 8260ADS manual, the flash ROM does
start at 0xFF800000 so that seemed like a good sign too. Time to
program!
I pushed the image down and performed a hard reset on the board.
I crossed my fingers and was hoping for the message “Welcome to
Neutrino on a PPC 8260 ADS board” to pop out of serial port 1
(this is the display_msg message included in the build file).
Nothing. Not only did no message pop out the serial port, the
LEDs on the ADS board indicated neither RS-232 was even enabled.
The build file contains the line
devc-serppc8260 -e -b57600 -c1662500 scc1 scc2 &
There is no documentation for devc_serppc8260 in the QNX online
help but there is for devc-serppc800 and I presume they are
similar. At any rate, I had my terminal emulator hooked to
serial port 1 and set to 57600 baud (I tried serial port 2 as
well, also with no results).
I’ve used the JTAG pod to snoop around in the flash ROM some and
I’ve compared the contents at the start of flash with the
contents at the start of the S-record file I supposedly
downloaded. They match so I think the download went ok. I think
the problem is the CPU is not tranferring to the boot image when
it is reset.
I’m in over my head at this point but one of our hardware guys
took a look at the 8260ADS manual and said the 8260 should (as I
recall) jump to a vector from its system exception table on
hard-reset and start executing code from that point. It looks to
me like the system exception table should be located at
0xFFF00100 but, when I look at the contents of the memory there,
it shows all F’s (i.e. empty flash).
What have I missed? What do I need to do special to get the 8260
to actually find and execute the boot image on reset?
Sorry for the long winded post. I figured more details would be
better than fewer in a case like this. If anyone can give me any
advice on how to make this thing work I would be most
appreciative!
Charlie Hubbard