[flashrom] r990 udelay fails for me ...

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Sat Apr 3 23:09:35 CEST 2010


On 03.04.2010 01:28, Urja Rannikko wrote:
> This seems to "fix" this for me - the delay loop is still unreliable, but
> atleast the recalibration attempts only take 5s instead of minutes. This is
> a combined diff for both my fix and the % fix.
>
> Index: udelay.c
> ===================================================================
> --- udelay.c	(revision 990)
> +++ udelay.c	(working copy)
> @@ -66,6 +66,7 @@
>  	printf("Calibrating delay loop... ");
>  
>  recalibrate:
> +	count = 1000;
>  	while (1) {
>  		timeusec = measure_delay(count);
>  		if (timeusec > 1000000 / 4)
>   

Does the timing get more reliable if you try the following stuff:

- change the comparison above to

if (timeusec > 1000)


- Make sure there are no CPU frequency changes or sleep states


> @@ -93,7 +94,7 @@
>  		 */
>  		for (i = 0; i < 4; i++) {
>  			if (measure_delay(100) < 90) {
> -				msg_pdbg("delay more than 10% too short, "
> +				msg_pdbg("delay more than 10%% too short, "
>  					 "recalculating... ");
>  				goto recalibrate;
>  			}
> Signed-off-by: Urja Rannikko <urjaman at gmail.com>
>   

In general, I like your patch. I just hope to get more input if reducing
the abort condition in the loop from 250 ms to 1 ms helps as well.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the flashrom mailing list