linux-mips
[Top] [All Lists]

Re: mdelay() from board_setup() [is default value for loops_per_jiffy wa

To: Clem Taylor <clem.taylor@gmail.com>
Subject: Re: mdelay() from board_setup() [is default value for loops_per_jiffy way off?]
From: Pete Popov <ppopov@embeddedalley.com>
Date: Wed, 20 Apr 2005 10:58:58 -0700
Cc: linux-mips@linux-mips.org
In-reply-to: <ecb4efd10504201050a00f941@mail.gmail.com>
Organization: Embedded Alley Solutions, Inc
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <ecb4efd10504201050a00f941@mail.gmail.com>
Reply-to: ppopov@embeddedalley.com
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020
Clem Taylor wrote:
Hi,

I'm working on a linux port for a custom Au1550 based board. Inside of
board_setup() I need to wait for some hardware to power up. So, I
called mdelay(), but it seems to wait for far too short a time. It
seems that loops_per_jiffy still has the default value (4096) in
board_setup(), the computed value is more like 245248. So, what is the
proper way to spin wait this early in the startup process? Also, isn't
the default value for loops_per_jiffy off by quite a bit? I'm running
the Au1550 at 492MHz, so that would make the default value good for a
~8MHz processor?

It's too early in board_setup() to use the standard delay routines. You can't use those until after calibrate_delay() runs. To do precise delays in board_setup, you'll have to do something yourself where you read the cp0 timer periodically and wait a certain amount of time.

Pete

<Prev in Thread] Current Thread [Next in Thread>