public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [RFC] command/cache: Add flush_cache command
Date: Tue, 19 Mar 2013 23:01:41 +0100	[thread overview]
Message-ID: <20130319230141.72357073@lilith> (raw)
In-Reply-To: <1363724992-9803-1-git-send-email-yorksun@freescale.com>

Hi York,

On Tue, 19 Mar 2013 13:29:52 -0700, York Sun <yorksun@freescale.com>
wrote:

> When we need the copied code/data in the main memory, we can flush the
> cache now. It uses the existing function flush_cache. Syntax is
> 
> flush_cache <addr> <size>
> 
> The addr and size are given in hexadecimal. Like memory command, there is
> no sanity check for the parameters.
> 
> Signed-off-by: York Sun <yorksun@freescale.com>
> ---
>  common/cmd_cache.c |   30 ++++++++++++++++++++++++++++++
>  1 file changed, 30 insertions(+)
> 
> diff --git a/common/cmd_cache.c b/common/cmd_cache.c
> index 5512f92..93b7337 100644
> --- a/common/cmd_cache.c
> +++ b/common/cmd_cache.c
> @@ -94,6 +94,29 @@ int do_dcache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
>  	return 0;
>  }
>  
> +void __weak flush_cache(ulong addr, ulong size)
> +{
> +	puts("No arch specific flush_cache available!\n");
> +	/* please define arch specific flush_cache */
> +}
> +
> +int do_flush_cache(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
> +{
> +	ulong addr, size;
> +
> +	switch (argc) {
> +	case 3:
> +		addr = simple_strtoul(argv[1], NULL, 16);
> +		size = simple_strtoul(argv[2], NULL, 16);
> +		flush_cache(addr, size);
> +		break;
> +	default:
> +		return cmd_usage(cmdtp);
> +	}
> +	return 0;
> +
> +}
> +
>  static int parse_argv(const char *s)
>  {
>  	if (strcmp(s, "flush") == 0)
> @@ -120,3 +143,10 @@ U_BOOT_CMD(
>  	"[on, off, flush]\n"
>  	"    - enable, disable, or flush data (writethrough) cache"
>  );
> +
> +U_BOOT_CMD(
> +	flush_cache,   3,   0,     do_flush_cache,
> +	"flush cache for a range",
> +	"<addr> <size>\n"
> +	"    - flush cache for specificed range"
> +);

What's the point of this command exactly? I can see the point of range
flushes (and invalidates) in the code for drivers that use DMA, but as a
shell command, I fail to see the interest of it.

Amicalement,
-- 
Albert.

  reply	other threads:[~2013-03-19 22:01 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-19 20:29 [U-Boot] [RFC] command/cache: Add flush_cache command York Sun
2013-03-19 22:01 ` Albert ARIBAUD [this message]
2013-03-19 22:07   ` York Sun
2013-03-19 23:32     ` Scott Wood
2013-03-20 13:59       ` Albert ARIBAUD
2013-03-20 14:58         ` Wolfgang Denk
2013-03-20 16:43           ` Scott Wood
2013-03-20 17:38             ` Albert ARIBAUD
2013-03-20 18:16               ` Scott Wood
2013-03-20 19:15             ` Tom Rini
2013-03-20 19:36               ` Scott Wood
2013-03-20 19:59                 ` Tom Rini
2013-03-20 21:31                   ` Scott Wood
2013-03-21  5:42                     ` Wolfgang Denk
2013-03-21  5:39                   ` Wolfgang Denk
2013-03-21 12:29                     ` Tom Rini
2013-03-21 13:37                       ` Wolfgang Denk
2013-03-21 18:22                         ` Scott Wood
2013-03-21 19:25                           ` Wolfgang Denk
2013-03-21 20:34                             ` Scott Wood
2013-03-22  6:30                               ` Albert ARIBAUD
2013-03-22 12:17                                 ` Tom Rini
2013-03-22 14:03                                   ` Wolfgang Denk
2013-03-22 14:29                                     ` Tom Rini
2013-03-22 15:57                                       ` Albert ARIBAUD
2013-03-22 16:48                                       ` Scott Wood
2013-03-22 17:19                                         ` Tom Rini
2013-03-22 20:39                                       ` Wolfgang Denk
2013-03-20 22:11                 ` Albert ARIBAUD
2013-03-20 22:35                   ` Scott Wood
2013-03-20 23:33                     ` Michael Cashwell
2013-03-20 23:48                       ` Scott Wood
2013-03-21  0:27                         ` Michael Cashwell
2013-03-21  0:31                           ` Scott Wood
2013-03-21  5:02                             ` Sricharan R
2013-03-21 18:51                               ` Scott Wood
2013-03-21 17:58                     ` Albert ARIBAUD
2013-03-21 18:07                       ` Scott Wood
2013-03-21 19:21                         ` Wolfgang Denk
2013-03-20 19:40               ` York Sun
2013-03-20 14:51 ` Wolfgang Denk
2013-03-20 16:44   ` Scott Wood
2013-04-03 14:02 ` Jim Chargin
2013-04-18 17:09   ` Scott Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130319230141.72357073@lilith \
    --to=albert.u.boot@aribaud.net \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox