* mdelay() from board_setup() [is default value for loops_per_jiffy way off?]
@ 2005-04-20 17:50 Clem Taylor
2005-04-20 17:58 ` Pete Popov
0 siblings, 1 reply; 3+ messages in thread
From: Clem Taylor @ 2005-04-20 17:50 UTC (permalink / raw)
To: linux-mips
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?
--Clem
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mdelay() from board_setup() [is default value for loops_per_jiffy way off?]
2005-04-20 17:50 mdelay() from board_setup() [is default value for loops_per_jiffy way off?] Clem Taylor
@ 2005-04-20 17:58 ` Pete Popov
2005-04-20 18:07 ` Ralf Baechle
0 siblings, 1 reply; 3+ messages in thread
From: Pete Popov @ 2005-04-20 17:58 UTC (permalink / raw)
To: Clem Taylor; +Cc: linux-mips
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: mdelay() from board_setup() [is default value for loops_per_jiffy way off?]
2005-04-20 17:58 ` Pete Popov
@ 2005-04-20 18:07 ` Ralf Baechle
0 siblings, 0 replies; 3+ messages in thread
From: Ralf Baechle @ 2005-04-20 18:07 UTC (permalink / raw)
To: Pete Popov; +Cc: Clem Taylor, linux-mips
On Wed, Apr 20, 2005 at 10:58:58AM -0700, Pete Popov wrote:
> 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.
And make sure not to be trapped by wrap-arounds of that counter. Also it
doesn't count the same speed on all processors ...
Ralf
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-04-20 18:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-04-20 17:50 mdelay() from board_setup() [is default value for loops_per_jiffy way off?] Clem Taylor
2005-04-20 17:58 ` Pete Popov
2005-04-20 18:07 ` Ralf Baechle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox