All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [Resend RFC PATCH 0/2] Fix armv8 cache flushing
@ 2016-10-14 20:17 York Sun
  2016-10-14 20:17 ` [U-Boot] [Resend RFC PATCH 1/2] armv8: Fix dcache disable function York Sun
  2016-10-14 20:17 ` [U-Boot] [Resend RFC PATCH 2/2] armv8: Fix flush_dcache_all function York Sun
  0 siblings, 2 replies; 32+ messages in thread
From: York Sun @ 2016-10-14 20:17 UTC (permalink / raw)
  To: u-boot

I have been puzzled by the need to flush external L3 cache for Freescale
Layerscape series SoCs. Flushing L3 requires EL3. It is the case now, but
this may change in the future. Implementing a SMC call to perform this
task is possible but only if necessary. Recent investigation shows we can
flush by virtual address most of the time. The only exception is when
dcache_disable() is called. I think this can be addressed by flushing
the stack U-Boot is using and skip flushing L3 totally.

Once this is proved to work, we can drop flushing L3 all together.

During this investigation, I found the procedure of turning off d-cache
seems wrong. The data is lost if d-cache is off first. I am not sure
if this only happens to Freescale Layerscape SoCs. Wondering why no
one else reports any issue, expecially those SoCs without L3 cache.


York Sun (2):
  armv8: Fix dcache disable function
  armv8: Fix flush_dcache_all function

 arch/arm/cpu/armv8/cache_v8.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2016-11-07 16:23 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-14 20:17 [U-Boot] [Resend RFC PATCH 0/2] Fix armv8 cache flushing York Sun
2016-10-14 20:17 ` [U-Boot] [Resend RFC PATCH 1/2] armv8: Fix dcache disable function York Sun
2016-10-14 20:23   ` Stephen Warren
2016-10-17 21:22   ` Stephen Warren
2016-10-19 15:25   ` Stephen Warren
2016-10-19 17:18     ` Stephen Warren
2016-10-19 22:32       ` york sun
2016-10-19 23:01         ` Stephen Warren
2016-10-20  5:06           ` york sun
2016-10-20 18:34             ` Stephen Warren
2016-10-21 19:31               ` york sun
2016-10-24 10:59                 ` Mark Rutland
2016-10-26 19:47                   ` Stephen Warren
2016-10-26 19:54                     ` york sun
2016-10-26 20:12                       ` Stephen Warren
2016-10-26 20:29                         ` york sun
2016-10-26 21:00                           ` Stephen Warren
2016-10-26 21:04                             ` york sun
     [not found]                     ` <d51c8f86-19c7-48d8-9335-097e8f574b76@nxp.com>
2016-10-26 21:02                       ` york sun
     [not found]                       ` <060025e2-128b-8c11-1804-fab1aa686f85@nxp.com>
2016-10-28 17:38                         ` york sun
2016-10-28 17:56                           ` Stephen Warren
2016-10-28 18:17                             ` york sun
2016-10-28 18:32                               ` Stephen Warren
2016-10-28 21:35                                 ` york sun
2016-11-07 14:11                                   ` Mark Rutland
2016-11-07 16:23                                     ` york sun
2016-11-07 14:03                                 ` Mark Rutland
2016-10-24 10:44     ` Mark Rutland
2016-10-26 19:41       ` Stephen Warren
2016-10-14 20:17 ` [U-Boot] [Resend RFC PATCH 2/2] armv8: Fix flush_dcache_all function York Sun
2016-10-14 20:29   ` Stephen Warren
2016-10-14 20:38     ` york sun

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.