[U-Boot-Users] PATCH for drivers/cfi_flash.c

Wolfgang Denk wd at denx.de
Mon May 30 10:23:34 CEST 2005


In message <c166aa9f0505281515495cf1c5 at mail.gmail.com> you wrote:
>
> I tried this part of this patch out and aggravated some problems in
> the cfi_flash code.
> 
> Several of the timeout parameters in the CFI query structure return units of
> microseconds.  I use an AMD 29LV160 part.  In the CFI parser code these
> microsecond values are converted to milliseconds by integer division.  For
> the 29LV160 this leaves some of the timeout parameters in the info structure
> at zero.

I see.

> I can see a few ways to fix this:
> 
> 1) adjust the info values after the scaling to millisecond values
> 2) force a one tick delay no matter what in flash_status_check()

1) and 2) sound similar to me - if you count in  millisecs  you  will
have to round up any non-zero delay in any case.

> 3) modify the code to report everything in microseconds and use udelay

This would probably slow down  execution,  as  you  then  will  delay
always instead of actively waitingin a busy loop.

> 4) use set_timer() to make sure there is a full timer tick

This is just another variant of 1) and 2), right?

I recommend to implement correct rounding  of  the  timeouts  (i.  e.
round  up  to  fill  lilliseconds);  note that his does NOT slow down
normal operation.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Everything should be made as simple as possible, but not simpler."
                                                    - Albert Einstein




More information about the U-Boot mailing list