[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Yay! for mvme5500
Joel Sherrill wrote:
Till Straumann wrote:
Peter Dufault wrote:
I did "hello world", finally, on the MVME5500 on 4.7
A few "heads up", though. Take these with a grain of salt since I'm
just starting out, but I think they're real problems.
1. The linkcmds in the BSP in 4.7 (and supplied for 4.6) don't seem
to correspond to the linkcmds used to build the "mvme5500-cexp.bin"
that came with the MVME5500 patches for 4.6. That binary obviously
starts at 4000000, but the linkcmds put the start at 4000100. Maybe
the folks at Brookhaven only use incremental linking using cexp as a
boot loader and haven't noticed? Don't get me started on
"incremental linking considered dangerous", you should see some of
the vxWorks startup scripts I've seen.
No clue on this one.
2. bspstart.c is calling "initialize_exceptions()" before setting up
Cpu_table. For me (and I hope this is how it should be) this
results in a call to mpc6xx/exceptions/raw_exception.c, and that
checks Cpu_table.exceptions_in_RAM as a boolean to decide what to
do. Since I kept carefully zeroing out memory for repeatability
before starting things up, that was testing false, and nothing was
working. When I saw what was going on I initialized
Cpu_table.exceptions_in_RAM to 1 before calling
initialize_exceptions(), and then things started working. (I assume
that test is done before BSS is defined to be cleared out).
Hmm - this seems to be broken by 4.7 ? The code flow in my 4.6 BSP is
neither of which is using the Cpu_table...
I think it is doing so in both Till. The mpc60x_get_vector_add()
checks Cpu_table.exceptions_in_RAM and it is called from
mpc60x_init_exceptions() if I am reading the code correctly.
??? When I 'grep -rl exceptions_in_RAM' in libcpu/powerpc,
libbsp/powerpc, and cpukit/score, the only
references to exceptions_in_RAM are from old exception processing. I'm
pretty positive that my BSP
would not work as I zero BSS very early, i.e., definitively prior to
Also, I don't see 'mpc60x_get_vector_add()' - only
'mpc60x_get_vector_addr()' - which is a trivial
inline that doesn't use Cpu_table.
I'm looking at RTEMS-4.6.2...
OK - I digged through your CVS repository an it seems that
mpc60x_get_vector_addr() was modified and the dependency on the
introduced on the 4.6 branch by raw_exceptions.c[18.104.22.168 on 2004/11/10]
The 4.6 and 4.7 versions of
libcpu/powerpc/mpc6xx/exceptions/raw_exception.c are very close to
A quick check of other powerpc bspstart.c's shows that they also
call initialize_exceptions before setting up Cpu_table, they should
maybe be checked for similar problems.
3. I get all my "Hello World" output, but the Motorola "MOTBoot"
dramatically complains when it finishes up. I assume this is just
my getting started.
Some BSPs do something nasty to get back to the monitor. It could be
that. Or it could be an RTEMS interrupt that occurs after returning to
the ROM monitor. What is Exception 3? And where in the code did it
HD Associates, Inc.