[U-Boot] [U-Boot,v2] cmd_boot: cleanup for 'go' command
Scott Wood
scottwood at freescale.com
Wed May 22 00:12:20 CEST 2013
On 05/10/2013 07:06:47 AM, Tom Rini wrote:
> On Sun, Apr 28, 2013 at 04:53:08PM -0000, Kuo-Jung Su wrote:
>
> > From: Kuo-Jung Su <dantesu at faraday-tech.com>
> >
> > With MMU/D-Cache enabled, data might be retained at d-cache
> > rather than at DRAM when we execute 'go' command, and some
> > of the bare-metal softwares would always invalidate the entire
> > data cache at start-up, and then leads to a data lost issue.
> > Furthermore, the U-Boot not only relocates itself but also
> > updates symbol table at start-up, which means the i-cache
> > might also be dirty, so it would be better to invalidates the
> > i-cache alone with d-cache flush.
> >
> > This patch is designed to fix the issues above.
> > It has been verified at ARM based systems, and should also work
> > at other platforms.
>
> This patch has a few not trivially solvable problems. First, the only
> weak version of invalidate_icache_all is in common/cmd_cache.c. The
> only defined version of the function is for ARMv7 CPUs. So, everyone
> that is not ARMv7 and does not have CONFIG_CMD_CACHE will not build
> now.
>
> And I'm not seeing a globally defined CONFIG to say "Yes, we are
> ARMv7"
> or "Yes, we have icache to invalidate".
>
> This actually seems related to the cache flush issue that Freescale
> folks brought up a few weeks ago. Or maybe that's my pre-coffee brain
> talking.
Yes, it's the same issue that we were talking about. mpc85xx does have
flush_dcache() and invalidate_icache() which could be used for this,
though they're currently missing the "_all" suffix.
-Scott
More information about the U-Boot
mailing list