MPC834x global timers question

Ben Warren bwarren at qstreams.com
Sat Feb 24 14:13:43 EST 2007


Bruce,

--- Bruce_Leonard at selinc.com wrote:

> I know this isn't the right forum for this but I
> can't seem to find a 
> generic PPC mailing list.
> 
> I'm trying to get a global timer going on an
> MPC834x, and the way I learn 
> is to just play with HW, so I've got an Abatron
> BDI2K hooked up to my 
> processor so I can just manipulate registers without
> having to deal with 
> writing code.  However, I seem to be unable to
> modify certain registers in 
> the global timers with this set up and I don't
> understand why. 
> Specifically, if a register has a bit that's a '1'
> following a reset, I 
> can't change that bit to a '0'.  This is happening
> with the Global Timers 
> Reference Registers (GTRFR1 - 4) and the Global
> Timers Prescale Registers 
> (GTPSR1 - 4).  The reset state of the GTRFRs is
> 0xFFFF and I can't change 
> it to any other value.  The reset state of the
> GTPSRs is 0x3 and I can't 
> clear the 2 LSB.  I can change any other bits in the
> prescale registers, 
> but not the two which are a '1' at reset.

There's a sequence that needs to be followed.  You
need to enable the timer first, then set the mode,
then set the prescaler.  I've attached some expect
code for U-boot that generates a 1Hz output from timer
3 on an MCP8349.  It's not quite what you have, but
hopefully close enough for you to figure it out.  I
also have a simple char driver for Linux if you need
it later on.

COMMENT "Set SICLR so that GPIO1_8 becomes TOUT3"
send "mm.w e0000114\r"
expect $mmPrompt
send "8001\r"
expect $mmPrompt
send "q\r"
expect $mainPrompt

COMMENT "Enable timer 3"
send "mm.b e0000504\r"
expect $mmPrompt
send "01\r"
expect $mmPrompt
send "q\r"
expect $mainPrompt

COMMENT "Set mode register"
send "mm.w e0000520\r"
expect $mmPrompt
send "ff0c\r"
expect $mmPrompt
send "q\r"

COMMENT "Set frequency to 1Hz"
send "mm.w e0000524\r"
expect $mmPrompt
send "1f77\r"
expect $mmPrompt
send "q\r"
expect $mainPrompt

Hope this helps
regards,
Ben



More information about the Linuxppc-embedded mailing list