[U-Boot] Conflicting definitions of flush_dcache

Hi,
I noticed the following dilemma when I tried to enable both CONFIG_ETHOC and CONFIG_CMD_CACHE:
The ethoc ethernet driver expects: void flush_dcache(unsigned long start, unsigned long size) while cmd_cache.c expect it to be: void flush_dcache(void)
Grepping around the sources, I found that apart from drivers/net/ethoc.c also drivers/net/altera_tse.c uses flush_dcache with the two ulong parameters. No architecture apart from nios2 seems to provide flush_dcache like this and flush_dcache is not declared in common.h, so my gut feeling is that nios2 and the 2 ethernet drivers should be changed to use for example flush_dcache_range(?) Perhaps cmd_cache.c should also be fixed to use flush_dcache_all()? flush_icache() ofcourse suffer from the same problem.
Stefan

On Monday 31 October 2011 03:56:25 Stefan Kristiansson wrote:
so my gut feeling is that nios2 and the 2 ethernet drivers should be changed to use for example flush_dcache_range(?)
correct
Perhaps cmd_cache.c should also be fixed to use flush_dcache_all()? flush_icache() ofcourse suffer from the same problem.
that sounds reasonable. the prototypes also need to get added to include/common.h ... -mike

On 11/01/2011 02:32 AM, Mike Frysinger wrote:
On Monday 31 October 2011 03:56:25 Stefan Kristiansson wrote:
so my gut feeling is that nios2 and the 2 ethernet drivers should be changed to use for example flush_dcache_range(?)
correct
Thanks. I will fix the nios2 and the two net drivers to use flush_dcache_range(?).
- Thomas
Perhaps cmd_cache.c should also be fixed to use flush_dcache_all()? flush_icache() ofcourse suffer from the same problem.
that sounds reasonable. the prototypes also need to get added to include/common.h ... -mike
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

flush_dcache()/flush_icache() aren't defined in common.h, flush_dcache_all()/invalidate_icache_all() however are.
Let the icache and dcache commands use those instead.
Signed-off-by: Stefan Kristiansson stefan.kristiansson@saunalahti.fi --- common/cmd_cache.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/common/cmd_cache.c b/common/cmd_cache.c index 9778d3b..360136c 100644 --- a/common/cmd_cache.c +++ b/common/cmd_cache.c @@ -30,10 +30,10 @@
static int parse_argv(const char *);
-void __weak flush_icache(void) +void __weak invalidate_icache_all(void) { - /* please define arch specific flush_icache */ - puts("No arch specific flush_icache available!\n"); + /* please define arch specific invalidate_icache_all */ + puts("No arch specific invalidate_icache_all available!\n"); }
int do_icache ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) @@ -45,7 +45,7 @@ int do_icache ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) break; case 1: icache_enable (); break; - case 2: flush_icache(); + case 2: invalidate_icache_all(); break; } /* FALL TROUGH */ @@ -59,10 +59,10 @@ int do_icache ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return 0; }
-void __weak flush_dcache(void) +void __weak flush_dcache_all(void) { - puts("No arch specific flush_dcache available!\n"); - /* please define arch specific flush_dcache */ + puts("No arch specific flush_dcache_all available!\n"); + /* please define arch specific flush_dcache_all */ }
int do_dcache ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) @@ -74,7 +74,7 @@ int do_dcache ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) break; case 1: dcache_enable (); break; - case 2: flush_dcache(); + case 2: flush_dcache_all(); break; } /* FALL TROUGH */

i think the ppc guys might need to rename some of their funcs, and it seems like boards/drivers that use these are ppc-only, so there probably won't be any tree breakage ...
Acked-by: Mike Frysinger vapier@gentoo.org -mike

Dear Stefan Kristiansson,
In message 1320121272-17613-1-git-send-email-stefan.kristiansson@saunalahti.fi you wrote:
flush_dcache()/flush_icache() aren't defined in common.h, flush_dcache_all()/invalidate_icache_all() however are.
Let the icache and dcache commands use those instead.
Signed-off-by: Stefan Kristiansson stefan.kristiansson@saunalahti.fi
common/cmd_cache.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (4)
-
Mike Frysinger
-
Stefan Kristiansson
-
Thomas Chou
-
Wolfgang Denk