[U-Boot] ARM v7: Flush icache when executing a program with go

Tom Rini
2013-05-15T16:51:21Z

On Wed, May 15, 2013 at 06:44:10PM +0200, Albert ARIBAUD wrote:
> Hi Henrik,
>
> On Wed, 15 May 2013 18:34:07 +0200, Henrik Nordstr??m
> <henrik@henriknordstrom.net> wrote:
>
> > ons 2013-05-15 klockan 17:11 +0200 skrev Albert ARIBAUD:
> >
> > > What is the rationale behind putting it in arch/ rather than in common/
> > > by adding this to the existing common/cmd_boot.c file under ARMv7
> > > conditionals?
> >
> > Only because of what I said earlier: blindly calling
> > invalidate_icache_all() from the go command will cause loud complains on
> > other arches where the icache is not supported/enabled.
>
> I probably didn't make myself clear: why not put it in comm/cmd_boot.c
> *whthin a pair of #if ... ARMV7... /#endif conditionals*?

There is no such #if test we can do for ARMv7 I believe. There was,
long ago, a CONFIG_ARMV7 but that's been removed for ages.

[snip]
> > > So, should we not have this icache flush conditioned at compile time on
> > > cache being compiled in, and at run time on cache being enabled? This
> > > way, we would automatically cater for the same issue appearing in other
> > > ARM CPUs, and even more, in other architectures.
> >
> > Except.. see common/cmd_cache.c top of file and you'll see the yelling I
> > am talking about.
>
> I'd rather you explained it, as you certainly read this file with the
> knowledge of the issue, and thus immediately focus on part of it that
> are salient to your eyes, while I will read the same file without such
> knowledge and might miss the point.

To summarize why I rejected the last patch in the end, most arches do
not define an invalidate_icache_all so they will see for every "go":
No arch specific invalidate_icache_all available!
And many other arches simply won't compile now as they don't link
common/cmd_cache.o and do not have an invalidate_icache_all anywhere.

--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130515/4a9b2582/attachment.pgp>