From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jens Gehrlein Date: Thu, 10 Jul 2008 08:22:27 +0200 Subject: [U-Boot-Users] [PATCH 04/10 v2] [ARM] TQMA31: add new board with i.MX31 processor In-Reply-To: <20080709224642.4951524304@gemini.denx.de> References: <20080709224642.4951524304@gemini.denx.de> Message-ID: <4875AAA3.2040501@tqs.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk schrieb: > In message <4873845B.3020808@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