linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <bh40@calva.net>
To: Gabriel Paubert <paubert@iram.es>
Cc: <linuxppc-dev@lists.linuxppc.org>, <paulus@linuxcare.com.au>
Subject: Re: 2.2.18pre17 again
Date: Tue, 31 Oct 2000 15:48:44 +0100	[thread overview]
Message-ID: <19340925082028.17042@192.168.1.2> (raw)
In-Reply-To: <Pine.HPX.4.10.10010311315380.15431-100000@gra-ux1.iram.es>


>
>Why isn't udelay based on the timebase then ? Easy to scale
>microseconds to timebase.

Because you didn't implement it yet ? :)

>There is a multiplier for mulhwu somewhere in a global variable, I should
>remember the name since I wrote the code, tb_to_us if I'm not messing up.

Do we have that code in 2.2 ? Your time management patches are in 2.4
only AFAIK (nice code BTW).

>It needs some care for 601 because of the different registers (RTC) that
>has the bad habit of jumping from 1e9 to 0. It is trivial to implement as
>a subroutine and check for CPU inside the subroutine. After all it's a
>delay, so performance should not be critical.
>
>udelay:
>	lis	r4,tb_to_us@ha
>	mfpvr	r5
>	lwz	r4,tb_to_us@l(r4)
>	srwi	r5,r5,16
>	mulhwu	r4,r3,r4
>	cmpwi	cr0,r5,1
>	beq	2f
>	mftbl	r5
>1:	mftbl	r3
>	sub	r3,r3,r5
>	cmplw	cr0,r3,r4	# works for delays of up to almost 2^32 tb ticks
>	blt	cr0,1b
>	blr
>
>2:	mfrtcl	r5
>3:	mfrtcl	r3
>	sub.	r3,r3,r5	# if wraparound has occurred
>	bnl+	4f		# bump elapsed time by one second
>	addis	r3,r3,1000000000@ha
>	addi	r3,r3,1000000000@l
>4:	cmplw	r3,r3,r4	# works for delays of up to almost 1 second
>	blt	cr0,3b
>	blr
>
>Caution, untested... BTW, that's the kind of routine in which I'd like to
>tell the compiler that it only uses r3/r4/r5/cr0 so that it can keep more
>variables in the registers of the caller.

What is the max delay supported ? I beleive we should implement it as
__udelay and keept the macro mecanism to catch too high delays.

>	Gabriel.
>


** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

  reply	other threads:[~2000-10-31 14:48 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-10-26  6:30 2.2.18pre17 again Paul Mackerras
2000-10-26 14:19 ` Gabriel Paubert
2000-10-27  1:51 ` Paul Mackerras
2000-10-27  6:21 ` Martin Costabel
2000-10-27 11:59 ` Lombard Sleep Crash (Was: 2.2.18pre17 again) Albrecht Dre_
2000-10-27 14:39   ` Olaf Hering
2000-11-02 12:34     ` Albrecht Dreß
2000-11-02 15:07       ` Claus
2000-11-02 15:28         ` Albrecht Dre_
2000-11-02 18:09           ` Benjamin Herrenschmidt
2000-11-03 10:13             ` Albrecht Dre_
2000-11-03 12:22               ` Michael Schmitz
2000-11-03 12:32                 ` Albrecht Dre_
2000-11-03 12:52                   ` Michael Schmitz
2000-11-03 14:11                     ` Albrecht Dre_
2000-11-03 14:52                       ` Michael Schmitz
2000-11-03 21:51                   ` Michael Schmitz
2000-11-02 15:35         ` Benjamin Herrenschmidt
2000-11-02 15:43           ` Michael Schmitz
2000-11-02 16:11             ` Benjamin Herrenschmidt
2000-11-02 17:13           ` Michael Schmitz
2000-11-03 15:22             ` Claus
2000-11-03 15:55               ` Benjamin Herrenschmidt
2000-11-03 21:53                 ` Michael Schmitz
2000-11-09  1:22                   ` Claus
2000-11-09  8:26                     ` Michael Schmitz
2000-11-02 17:23           ` Joseph P. Garcia
2000-11-02 18:06             ` Benjamin Herrenschmidt
2000-11-02 22:18               ` Michael Schmitz
2000-11-02 22:56       ` Olaf Hering
2000-11-08 20:35   ` Michael Schmitz
2000-11-08 20:54     ` Benjamin Herrenschmidt
2000-11-08 21:48       ` Michael Schmitz
2000-10-27 19:02 ` 2.2.18pre17 again Olaf Hering
2000-10-28  0:14   ` Olaf Hering
2000-10-31  6:49 ` Michel Lanners
2000-10-31 11:53   ` Benjamin Herrenschmidt
2000-10-31 14:03     ` Gabriel Paubert
2000-10-31 14:48       ` Benjamin Herrenschmidt [this message]
2000-10-31 17:20         ` Gabriel Paubert
2000-11-01  1:20           ` Dan Malek
2000-11-01  7:33     ` Michel Lanners

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19340925082028.17042@192.168.1.2 \
    --to=bh40@calva.net \
    --cc=linuxppc-dev@lists.linuxppc.org \
    --cc=paubert@iram.es \
    --cc=paulus@linuxcare.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).