From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Date: Wed, 20 Mar 2013 17:35:51 -0500 Subject: [U-Boot] [RFC] command/cache: Add flush_cache command In-Reply-To: <20130320231157.4f312493@lilith> (from albert.u.boot@aribaud.net on Wed Mar 20 17:11:57 2013) References: <20130320191519.GO25919@bill-the-cat> <1363808165.25034.14@snotra> <20130320231157.4f312493@lilith> Message-ID: <1363818951.25034.28@snotra> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 03/20/2013 05:11:57 PM, Albert ARIBAUD wrote: > Hi Scott, > > On Wed, 20 Mar 2013 14:36:05 -0500, Scott Wood > wrote: > > > On 03/20/2013 02:15:19 PM, Tom Rini wrote: > > > On Wed, Mar 20, 2013 at 11:43:15AM -0500, Scott Wood wrote: > > > > On 03/20/2013 09:58:36 AM, Wolfgang Denk wrote: > > > > >Dear Albert, > > > > > > > > > >In message <20130320145927.2031b913@lilith> you wrote: > > > > >> > > > > >> I do understand what it does, but I still don't get why it > > > should be > > > > >> done, since precisely payload control transfer happens > through > > > > >bootm and > > > > >> the like which already properly flush cache. > > > > > > > > It doesn't always happen through bootm. Standalone apps use the > > > > "go" command. > > > > > > So, to try and be a bit more verbose about this, for U-Boot > > > applications > > > which use 'go', we still need to ensure cache coherence, which is > why > > > bootm does a cache flush, we need some way to flush in this case. > > > > It's also an issue with using the "cpu release" command. > > > > > And in this case you aren't better served by say bootelf ? > > > > That wouldn't handle the "cpu release" case. In any case, "go" > exists > > and is currently the recommended way to launch a standalone > application > > in doc/README.standalone. > > > > > > It's a user command! How can it be dead code? I don't know of > a > > > > way to include a human user in a patchset... > > > > > > Can you hightlight what exactly causes the world today to go off > and > > > fail? Is the hello_world example app sufficient in this case or > do we > > > need something much larger? > > > > A user inside Freescale is running standalone performance test apps, > > using both "go" and "cpu release" (since the test needs to run > on > > all CPUs). They are seeing cache problems running on a T4240 if > they > > don't have this flush. This flush is architecturally required > between > > modifying/loading code and running it. > > Still, why make it a shell command? Since this user needs a flush with > "go" and "cpu release", then we should add a programmatic global cache > flush in the "go" and "cpu release" commands. Why add any new commands? They could all be subcommands of bootm! :-) Really, instead of adding one command, you want to modify *two* commands to do the same thing separately, which involves changing the syntax of both commands to accept memory range information? -Scott