[U-Boot] [RFC] command/cache: Add flush_cache command

Wolfgang Denk
2013-03-21T13:37:32Z

Dear Tom,

In message <20130321122923.GB26945@bill-the-cat> you wrote:
>
> > Not really. Only a tiny fraction of users will ever run any standalone
> > applications, so please let's save the memory footprint for the
> > overwhelming majority of users who do not need that.
>
> Well, can we run into this problem on ARM (v7 or v8) systems as well?

Probably.

But I wonder what the exact usage szenario is that will trigger the
problem. If I understand correctly, this can only happen when you
perform a (manual) memory copy (either between different locations in
RAM, or from parallel NOR flash to RAM) of the code you are going to
run.

As far as I understand all other ways to load any such code (over the
network or from storage devices) already make sure to run flush_cache()
after any such load operation.

Scott: is my understanding correct that you only need this because
you are performing such memory copy ops manually? From where / to
where are you copying, and why?

Thinking about alternatives:

- eventually we should discourage the use of "go"; it may be
conveniend when you know what you are doing, but if it's casuing
such problems we might be better off recommending to use
proper IH_TYPE_STANDALONE legacy images in combination with the
bootm command instead.

- Also, instead of adding a new command, this could probably be
scripted; I guess this should be roughly equivalent?

setenv flush_cache 'dc off;ic off;dc on;ic on'

??

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If the hours are long enough and the pay is short enough, someone
will say it's women's work.