[U-Boot-Users] [PATCH 04/10 v2] [ARM] TQMA31: add new board with i.MX31 processor
Jens Gehrlein
sew_s at tqs.de
Thu Jul 10 08:22:27 CEST 2008
Wolfgang Denk schrieb:
> 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.
I'll take a look.
>> 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.
What do you mean?
It's just a proposal and I like to read comments from others, especially
those, who wrote this code.
>> 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?
I don't no. Where can I start to have a look on? According to
experience, timer handling in Linux is much more complex.
Question: Why did you accept all the initial patches for
cpu/arm1136/mx31/interrupts.c and for the boards mx31ads, imx31_litekit,
imx31_phycore?
Kind regards,
Jens
More information about the U-Boot
mailing list