[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