[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