[U-Boot] non-blocking flash functions - is this possible/acceptable?

Wolfgang Wegner
2009-10-27T15:22:18Z

Hi Jerry,

On Tue, Oct 27, 2009 at 10:03:49AM -0400, Jerry Van Baren wrote:
> Jerry Van Baren wrote:
> >Wolfgang Wegner wrote:
[...]
> >>we have an update protocol that normally relies on data being
> >>received while the previous block is written to flash.
[...]
>
> By the way, what sort of benefit do you see? What is your load time
> with and without the non-blocking changes?

I am not sure if I understand what you mean, or if we are talking
about different things.

Our update protocol starts the update and immediately starts sending
data over the (relatively slow) serial line. During the data is
transferred, the first flash block is erased (first operation "in
background"), and after the data for the complete flash block
arrived, this data is written to flash and the next block is erased
(again an operation "in background"), while the data transfer over
the serial line continues.

Of course, doing the whole erase & flash procedure after receiving
the complete bunch of data would solve this problem, but this update
protocol comes from time where there simply was not enough RAM to
store all the data before flashing, and we did not want to change
everything for this new device - and still, even erasing for and
programming the whole ~4MBytes of data would take some time which
can be hidden when erasing/programming each flash block during the
serial transfer, which is the real bottleneck of the whole procedure.

Regards,
Wolfgang