* [U-Boot] [PATCH] arc/cache: really do flush_dcache_all() even if IOC exists
@ 2016-04-18 10:28 Alexey Brodkin
2016-04-21 17:12 ` Alexey Brodkin
0 siblings, 1 reply; 2+ messages in thread
From: Alexey Brodkin @ 2016-04-18 10:28 UTC (permalink / raw)
To: u-boot
flush_dcache_all() is used in the very end of U-Boot self relocation
to write back all copied and then patched code and data to their
new location in the very end of available memory space.
Since that has nothing to do with IO (i.e. no external DMA happens
here) IOC won't help here and we need to write back data cache contents
manually.
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
arch/arc/lib/cache.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/arc/lib/cache.c b/arch/arc/lib/cache.c
index 56988dd..d1fb661 100644
--- a/arch/arc/lib/cache.c
+++ b/arch/arc/lib/cache.c
@@ -430,13 +430,10 @@ void invalidate_dcache_all(void)
void flush_dcache_all(void)
{
-#ifdef CONFIG_ISA_ARCV2
- if (!ioc_exists)
-#endif
- __dc_entire_op(OP_FLUSH);
+ __dc_entire_op(OP_FLUSH);
#ifdef CONFIG_ISA_ARCV2
- if (slc_exists && !ioc_exists)
+ if (slc_exists)
__slc_entire_op(OP_FLUSH);
#endif
}
--
2.5.5
^ permalink raw reply related [flat|nested] 2+ messages in thread* [U-Boot] [PATCH] arc/cache: really do flush_dcache_all() even if IOC exists
2016-04-18 10:28 [U-Boot] [PATCH] arc/cache: really do flush_dcache_all() even if IOC exists Alexey Brodkin
@ 2016-04-21 17:12 ` Alexey Brodkin
0 siblings, 0 replies; 2+ messages in thread
From: Alexey Brodkin @ 2016-04-21 17:12 UTC (permalink / raw)
To: u-boot
Hi,
On Mon, 2016-04-18 at 13:28 +0300, Alexey Brodkin wrote:
> flush_dcache_all() is used in the very end of U-Boot self relocation
> to write back all copied and then patched code and data to their
> new location in the very end of available memory space.
>
> Since that has nothing to do with IO (i.e. no external DMA happens
> here) IOC won't help here and we need to write back data cache contents
> manually.
>
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
> ?arch/arc/lib/cache.c | 7 ++-----
> ?1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arc/lib/cache.c b/arch/arc/lib/cache.c
> index 56988dd..d1fb661 100644
> --- a/arch/arc/lib/cache.c
> +++ b/arch/arc/lib/cache.c
> @@ -430,13 +430,10 @@ void invalidate_dcache_all(void)
> ?
> ?void flush_dcache_all(void)
> ?{
> -#ifdef CONFIG_ISA_ARCV2
> - if (!ioc_exists)
> -#endif
> - __dc_entire_op(OP_FLUSH);
> + __dc_entire_op(OP_FLUSH);
> ?
> ?#ifdef CONFIG_ISA_ARCV2
> - if (slc_exists && !ioc_exists)
> + if (slc_exists)
> ? __slc_entire_op(OP_FLUSH);
> ?#endif
> ?}
Applied, thanks!
-Alexey
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-04-21 17:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-18 10:28 [U-Boot] [PATCH] arc/cache: really do flush_dcache_all() even if IOC exists Alexey Brodkin
2016-04-21 17:12 ` Alexey Brodkin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox