Iwz 
Iwz 
Ii 
mttbl 
mttbu 
mttbl 
Rx, 
upper 
Ry, 
lower 
Rz,O 
Rz 
Rx 
Ry 
# load 64-bit time base value into 
Rx 
and 
Ry 
# force 
TBL 
to 0 to avoid rollover while writing TBU 
#set 
TBU 
# set 
TBL 
11.2  Programmable Interval Timer (PIT) 
The PIT is a 32-bit SPR that decrements at the same rate as the time base. The PIT is read and 
written using 
mfspr 
and mtspr, respectively. Writing to the PIT also simultaneously writes to a hidden 
reload register. Reading the 
PIT using 
mfspr 
returns the current PIT contents; the hidden reload 
register cannot be read. When a non-zero 
value is written to the 
PIT, 
it begins to 
decrement 
A PIT 
event occurs when a decrement occurs on a PIT count of 
1. 
When a PIT event occurs, the following 
occurs: 
1. 
If the PIT is 
in 
auto-reload mode (the ARE field of the Timer Control Register (TCR) is 1), the PIT is 
loaded with the 
last value an 
mtspr 
wrote to the 
PIT. 
A decrement from a PIT count of 1 
immediately causes a reload; no intermediate 
PIT content of 0 occurs. 
If the PIT is not 
in 
auto-reload mode (TCR[ARE] = 0), a decrement from a PIT count of 1 simply 
causes a 
PIT content of 
O. 
2. TSR[PIS] is set to 
1. 
3. 
If enabled (TCR[PIE] = 1 and the EE field of the Machine State Register (MSR) is 1), a PIT 
interrupt is taken. See "Programmable Interval Timer (PIT) Interrupt" on page 10-41  for details of 
register behavior during a 
PIT interrupt. 
The interrupt handler should use software to reset the 
PIS field of the Timer Status Register (TSR). 
This is done by using 
mtspr 
to write a word to the TSR having a 1 
in 
TSR[PIS] and any other bits to 
be cleared, and a 
0 in all other bits. The data written to the TSR is not direct data, but a mask. A 1 
clears a bit; a 0 has no effect. 
Using 
mtspr 
to force the PIT to 0 does not cause a PIT interrupt. However, decrementing that was 
ongoing at the instant of the 
mtspr 
instruction can cause the appearance of an interrupt. 
To 
eliminate 
the 
PIT as a source of interrupts, write a 0 to TCR[PIE], the PIT interrupt enable bit. 
To 
eliminate all PIT activity: 
1. 
Write a 0 to TCR[PIE]. This prevents PIT activity from causing interrupts. 
2.  Write a 
0 to TCR[ARE]. This disables the PIT auto-reload feature. 
3. 
Write zeroes to the PIT to halt PIT decrementing. Although this action does not cause a pit PIT 
interrupt to become pending, a near-simultaneous decrement to 0 might have done 
so. 
4.  Write a 1 to TSR[PIS] (PIT Interrupt Status bit). This clears TSR[PIS] to 0 (see ''Timer Status 
Register (TSR)" on page 11-8). This also clears any pending PIT interrupt. Because the PIT stops 
decrementing, no further 
PIT events are possible. 
If the auto-reload feature is disabled (TCR[ARE] = 
0) 
when the PIT decrements to 
0, 
the PIT remains 
o until software uses 
mtspr 
to reload it. 
After a reset, TCR[ARE] 
= 0, which disables the auto-reload feature. 
11-4 
PPC405GP User's Manual  Preliminary