Subject: Re: lack of decent delay (Re: CVS commit: syssrc)
To: Ben Harris <bjh21@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: port-arm32
Date: 04/11/2001 21:20:22
--------------Boundary-00=_YT9N0EFMLBV1Y5WIN200
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

On Wednesday 11 April 2001 11:32 am, Ben Harris wrote:
> On Wed, 11 Apr 2001, Chris Gilbert wrote:
> > > Log Message:
> > > Apply a bandage to delay() so that it takes a more suitable time on
> > > StrongARM Risc PCs.  It really should be replaced entirely, but I've
> > > got more important bugs to fix.
> >
> > Would using something similiar to the delay mechanism from
> > arm26/iobus/ioc.c work?   Or are you thinking of some mechanism that uses
> > the 2nd iomd timer (which I don't think we use for anything currently) 
> > Using the arm26 method would actually be more portable to the other arm32
> > architectures.
>
> As Richard points out, the second timer should be reserved for
> statclock().  The arm26 delay() should be a reasonable replacement for the
> current arm32 one if anyone feels like working on that.

See attached patch, (it's only for iomd based systems though, probably be 
useable on the others though with a bit of tweaking)

If anyone can give me some feedback on the size of the loop used to calibrate 
that'd be good :)  I believe that it needs to be big otherwise it might go 
too fast on the SA It may actually have to be based on the cpu id though, or 
it may take too long on a the 600/700's

If there are no objections I'll look to check the code in on friday.

Cheers,
Chris

--------------Boundary-00=_YT9N0EFMLBV1Y5WIN200
Content-Type: text/x-c;
  charset="iso-8859-1";
  name="delay.patch"
Content-Transfer-Encoding: base64
Content-Description: Make delay more accurate
Content-Disposition: attachment; filename="delay.patch"

SW5kZXg6IGlvbWRfY2xvY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zeXNzcmMv
c3lzL2FyY2gvYXJtMzIvaW9tZC9pb21kX2Nsb2NrLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MjUKZGlmZiAtdSAtcCAtcjEuMjUgaW9tZF9jbG9jay5jCi0tLSBpb21kX2Nsb2NrLmMJMjAwMS8w
NC8xMCAxOTowODo0MgkxLjI1CisrKyBpb21kX2Nsb2NrLmMJMjAwMS8wNC8xMSAyMDoxNDowOQpA
QCAtNzYsNiArNzYsNyBAQCBzdGF0aWMgdm9pZCBjbG9ja2F0dGFjaAlfX1AoKHN0cnVjdCBkZXZp
CiAjaWZkZWYgRElBR05PU1RJQwogc3RhdGljIHZvaWQgY2hlY2tkZWxheQlfX1AoKHZvaWQpKTsK
ICNlbmRpZgorc3RhdGljIHZvaWQgY3B1X2RlbGF5X2NhbGlicmF0ZShzdHJ1Y3QgZGV2aWNlICop
OwogCiBzdHJ1Y3QgY2ZhdHRhY2ggY2xvY2tfY2EgPSB7CiAJc2l6ZW9mKHN0cnVjdCBjbG9ja19z
b2Z0YyksIGNsb2NrbWF0Y2gsIGNsb2NrYXR0YWNoCkBAIC0xMjUsNiArMTI2LDcgQEAgY2xvY2th
dHRhY2gocGFyZW50LCBzZWxmLCBhdXgpCiAJLyogQ2Fubm90IGRvIGFueXRoaW5nIHVudGlsIGNw
dV9pbml0Y2xvY2tzKCkgaGFzIGJlZW4gY2FsbGVkICovCiAJCiAJcHJpbnRmKCJcbiIpOworCWNv
bmZpZ19pbnRlcnJ1cHRzKHNlbGYsIGNwdV9kZWxheV9jYWxpYnJhdGUpOwogfQogCiAKQEAgLTI2
NCw5ICsyNjYsNiBAQCBjcHVfaW5pdGNsb2NrcygpCiAJCQlwYW5pYygiJXM6IENhbm5vdCBpbnN0
YWxsZXIgdGltZXIgMSBJUlEgaGFuZGxlclxuIiwKIAkJCSAgICBjbG9ja19zYy0+c2NfZGV2LmR2
X3huYW1lKTsKIAl9Ci0jaWZkZWYgRElBR05PU1RJQwotCWNoZWNrZGVsYXkoKTsKLSNlbmRpZgog
fQogCiAKQEAgLTMzOCwyNSArMzM3LDU1IEBAIG1pY3JvdGltZSh0dnApCiAgKiBFc3RpbWF0ZWQg
bG9vcCBmb3IgbiBtaWNyb3NlY29uZHMKICAqLwogCi0vKiBOZWVkIHRvIHJlLXdyaXRlIHRoaXMg
dG8gdXNlIHRoZSB0aW1lcnMgKi8KKy8qIEZpeGVkIGNvZGUgc2VxdWVuY2UgZm9yIHJlbGlhYmls
aXR5ICovCisjZGVmaW5lIGNwdV9kZWxheWxvb3AobG9vcHMpCQkJCQkJXAorCWFzbSB2b2xhdGls
ZSAoIjE6c3VicyAlMCwgJTAsICMxOyBibmUgMWIiIDogOiAiciIgKGxvb3BzKSA6ICJjYyIpCiAK
LS8qIE9uZSBkYXkgc29vbiBJIHdpbGwgYWN0dWFsbHkgZG8gdGhpcyAqLworaW50IGNwdV9kZWxh
eV9mYWN0b3IgPSAtMTsKIAotaW50IGRlbGF5Y291bnQgPSAxMDA7Ci0KIHZvaWQKLWRlbGF5KG4p
Ci0JdV9pbnQgbjsKK2RlbGF5KHVfaW50IHVzZWNzKQogewotCXVfaW50IGk7Ci0KLQlpZiAobiA9
PSAwKSByZXR1cm47Ci0Jd2hpbGUgKC0tbiA+IDApIHsKLQkJaWYgKGNwdXR5cGUgPT0gQ1BVX0lE
X1NBMTEwKQkvKiBYWFggLSBTZXJpb3VzbHkgZ3Jvc3MgaGFjayAqLwotCQkJZm9yIChpID0gZGVs
YXljb3VudDsgLS1pOyk7Ci0JCWVsc2UKLQkJCWZvciAoaSA9IDg7IC0taTspOworCWlmICh1c2Vj
cyA8PSAxMCB8fCBjb2xkKSB7CisJICAgIGlmIChjcHVfZGVsYXlfZmFjdG9yID09IC0xKSB7CisJ
CWlmIChjcHV0eXBlID09IENQVV9JRF9TQTExMCkgeworCQkgICAgY3B1X2RlbGF5bG9vcCh1c2Vj
cyAqIDEwMCk7CisJCX0gZWxzZSB7CisJCSAgICBjcHVfZGVsYXlsb29wKHVzZWNzICogOCk7CisJ
CX0KKwkgICAgfSBlbHNlIHsKKwkJY3B1X2RlbGF5bG9vcCh1c2VjcyAqIGNwdV9kZWxheV9mYWN0
b3IpOworCSAgICB9CisJfSBlbHNlIHsKKwkJc3RydWN0IHRpbWV2YWwgc3RhcnQsIGdhcCwgbm93
LCBlbmQ7CisKKwkJbWljcm90aW1lKCZzdGFydCk7CisJCWdhcC50dl9zZWMgPSB1c2VjcyAvIDEw
MDAwMDA7CisJCWdhcC50dl91c2VjID0gdXNlY3MgJSAxMDAwMDAwOworCQl0aW1lcmFkZCgmc3Rh
cnQsICZnYXAsICZlbmQpOworCQlkbyB7CisJCQltaWNyb3RpbWUoJm5vdyk7CisJCX0gd2hpbGUg
KHRpbWVyY21wKCZub3csICZlbmQsIDwpKTsKIAl9CiB9CisKKworc3RhdGljIHZvaWQKK2NwdV9k
ZWxheV9jYWxpYnJhdGUoc3RydWN0IGRldmljZSAqc2VsZikKK3sKKwlzdHJ1Y3QgdGltZXZhbCBz
dGFydCwgZW5kLCBkaWZmOworCisJbWljcm90aW1lKCZzdGFydCk7CisJY3B1X2RlbGF5bG9vcCgx
MDAwMDApOworCW1pY3JvdGltZSgmZW5kKTsKKwl0aW1lcnN1YigmZW5kLCAmc3RhcnQsICZkaWZm
KTsKKwljcHVfZGVsYXlfZmFjdG9yID0gMTAwMDAwIC8gZGlmZi50dl91c2VjICsgMTsKKwlwcmlu
dGYoIiVzOiAxMDAwMDAgbG9vcHMgaW4gJWxkIG1pY3Jvc2Vjb25kcywgZGVsYXkgZmFjdG9yID0g
JWRcbiIsCisJICAgICAgIHNlbGYtPmR2X3huYW1lLCBkaWZmLnR2X3VzZWMsIGNwdV9kZWxheV9m
YWN0b3IpOworI2lmZGVmIERJQUdOT1NUSUMKKwljaGVja2RlbGF5KCk7CisjZW5kaWYKK30KKwog
CiAvKiBFbmQgb2YgaW9tZF9jbG9jay5jICovCg==

--------------Boundary-00=_YT9N0EFMLBV1Y5WIN200--