Linux MIPS Architecture development
 help / color / mirror / Atom feed
* 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