603e Clock Issue -- Decrementer Problem

Joel Sherrill joel.sherrill at OARcorp.com
Fri Sep 19 17:21:31 UTC 2008

Thomas Doerfler wrote:
> Jennifer, Joel,
>> My Output looks like the following:
>> bsp_start (Top): Decrementer at 0xFFD4DAA1
>> bsp_start: Zero out lots of memory
>> Cpu: 0x7 Revision: 4609
>> Cpu MPC603ev
>> <snip>
>> MSR: 0x2030
>> clockOn: Decrementer at 0xFFE5C5B7
>> clockOn: Setting decrementer to 0xA1220
>> clockOn: Decrementer at 0xFFFEF1AA
>> <<=== JOEL HERE: notice that the value read indicates that the set never
>>    occurred.  We have both looked at the assembly and don't see how this
>>    could happen.  There is a mtdec between the two prints.
> No, I think you are wrong. The second value is HIGHER than the first, so
> either the DEC has spun a whole 32 bit range (which might make sense
> only when aour console runs at 30 Bits/sec) or it has been reloaded.
Grr.. you are right.  Thanks for the quick reply.
> Please observe that the printk between the two Decrementer operations
> will take a LONG time (in measures of the DEC tick rate) so it might be
> better to store the DEC values in variables and output them later.
> There had been many changes around the decrementer recently. Jennifer,
> can you check the actual opcodes generated to access the DEC? I had a
> strange problem a short time ago where the MPC8xx Timebase could not be
> read, I never came to the bottom of that problem...
> At least the shared code (libbsp/powerpc/shared/clock/*) now tests for
> various flavours of the CPU, it also checks whether we have a "e300"
> (formerly named 603LE) which has a decrementer reload feature. Maybe
> this is what you see here? On these cores, this feature can be enabled
> in one of the HID register: HID0, bit 25 is the DECAREN bit. if it is
> set, the decrementer automatically reloads after it has reached zero (it
> took 15 years until this feature was built in...)
> Maybe Sebastian can help on next week.
Jennifer's gone for the weekend apparently as well so maybe
next week.

I am reviewing the score603e IRQ code in case the interrupt
is actually happening and not getting dispatched correctly.
This board has a custom FPGA for IRQ logic and any time
something is unique to a board, it seems to be the source
of trouble.

Any insight is good insight.

> wkr,
> Thomas.
>> Below is the compilation options on  the file:
>> powerpc-rtems4.9-gcc --pipe -B../../../../.././lib/
>> -B../../../../.././score603e/lib/ -specs bsp_specs -qrtems
>> -DPACKAGE_NAME=\"rtems-c-src-lib-libcpu-powerpc\"
>> -DPACKAGE_TARNAME=\"rtems-c-src-lib-libcpu-powerpc\"
>> -DPACKAGE_STRING=\"rtems-c-src-lib-libcpu-powerpc\\"
>> -DPACKAGE_BUGREPORT=\"http://www.rtems.org/bugzilla\" -I.
>> -I../../../../../../../rtems-work/rtems/c/src/lib/libcpu/powerpc
>> -isystem ../../../../.././score603e/lib/include -Wall
>> -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs
>> -mcpu=603e -Dppc603e -O2 -g -fno-keep-inline-functions -MT
>> mpc6xx/clock/mpc6xx_clock_rel-c_clock.o -MD -MP -MF
>> mpc6xx/clock/.deps/mpc6xx_clock_rel-c_clock.Tpo -c -o
>> mpc6xx/clock/mpc6xx_clock_rel-c_clock.o `test -f
>> 'mpc6xx/clock/c_clock.c' || echo
>> '../../../../../../../rtems-work/rtems/c/src/lib/libcpu/powerpc/'`mpc6xx/clock/c_clock.c
>> Thanks. (from joel and jennifer)
> --
> --------------------------------------------
> embedded brains GmbH
> Thomas Doerfler           Obere Lagerstr. 30
> D-82178 Puchheim          Germany
> Tel. : +49-89-18 90 80 79-2
> Fax  : +49-89-18 90 80 79-9
> email: Thomas.Doerfler at embedded-brains.de
> PGP public key available on request
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

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

More information about the users mailing list