[U-Boot-Users] [PATCH 04/10 v2] [ARM] TQMA31: add new board with i.MX31 processor
Wolfgang Denk
wd at denx.de
Thu Jul 10 00:46:42 CEST 2008
In message <4873845B.3020808 at tqs.de> you wrote:
>
> The TQMA31, as well as the mx32ads use the General Purpose Timer 1,
> which is feeded by a 32768 clock (possibly imx31_litekit and
> imx31_phycore with 32000 Hz? I don't know.). The prescale divider can
> only be an integer. 32768/1000 = non-integer.
I think other architectures hav / had similar issues. See for example
the MIPS fixes that were added some time ago.
> Currently, I see only one way to solve this:
> 1. Patch the common file cpu/arm1136/mx31/interrupts.c, function
> interrupt_init(), so that the prescaler divides by 33.
> Alternatively, also make the divider a board specific define.
> 2. Patch all mx31 board config header files with CFG_HZ 1000.
> 3. All mx31 boards have to be tested.
Sounds like a plan.
> And while we are at the timers:
> The udelay function is the next problem:
> udelay cannot go below 1/(32768 Hz) = 30.5 micros
> The current function inserts a theoretical nop if the requested usec
> value is below 1000. Therefore, IMHO, this timer is relatively
> imprecise, because the resulting delay is below 1 microsecond.
> IMHO, this all because of that slow input clock.
How is this handled in Linux? I don't think they would let this go
through?
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
Speed of a tortoise breaking the sound barrier = 1 Machturtle
More information about the U-Boot
mailing list