[U-Boot] RFC: get_ticks() + get_tbclk()

Wolfgang Denk wd at denx.de
Tue Sep 21 09:13:10 CEST 2010


Dear Reinhard Meyer,

In message <4C98536C.6010003 at emk-elektronik.de> you wrote:
>
> For me it seems useful to keep both functions and have ticks
> increment at a hardware-convenient rate.
> If the hardware timer can be prescaled to increment at 1000 Hz that
> is fine, but I see no immediate need for that. If the hardware cannot
> be prescaled, and software would need to do a 64 bit multiply/divide
> on each timer read, that would really be overkill.

Just FYI: the origin of these functions is (like usual) in the
implementation for the Power Architecture.

There we have a 64 bit timebase register (split into two 32 bit
registers, the upper half in tbu and the lower half in tbl). The
timebase register gets incremented at a pretty high rate, usually
every 4 or 16 system clocks).

get_ticks() just returns the content of the 64 bit timebase register.

[See also wait_ticks(0 which delays for a number of ticks, cf.
"arch/powerpc/lib/ticks.S"]

get_tbclk() just returns the timebase clock (usually derived froom the
system clock; see for exmaple "arch/powerpc/cpu/mpc5xxx/cpu.c":
tbclk = (gd->bus_clk + 3L) / 4L; ).

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
They weren't that important. They were merely at the top. The  people
who  really  run organizations are usually found several levels down,
where it's still possible to get things done.
                                      - Terry Pratchett, _Small Gods_


More information about the U-Boot mailing list