[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Yay! for mvme5500



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 different:

libbsp/powerpc/shared/vectors/vectors_init.c:initialize_exceptions() (calls)->
libcpu/powerpc/mpc6xx/exceptions/raw_exception.c:mpc60x_init_exceptions()


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.


The 4.6 and 4.7 versions of libcpu/powerpc/mpc6xx/exceptions/raw_exception.c are very close to identical.

-- Till




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
interrupt?


Peter

Peter Dufault
HD Associates, Inc.





--
Joel Sherrill, Ph.D.             Director of Research & Development
joel@OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985