diff mbox

[U-Boot] powerpc: Enable flush and invalidate dcache by range for MPC85xx

Message ID 20170106042945.803-1-tony.obrien@alliedtelesis.co.nz
State Accepted
Commit 76866600f544f00928ee9b5b2799a091ea9b80a7
Delegated to: York Sun
Headers show

Commit Message

Tony O'Brien Jan. 6, 2017, 4:29 a.m. UTC
Commit ac337168a unified functions to flush and invalidate dcache by
range. These two functions were no-ops for SoCs other than 4xx and
MPC86xx. Adding these functions seemed to be correct but introduced
issues in some drivers when the dcache was flushed. While the root
cause was under investigation, these functions were disabled in
Commit cb1629f91a for affected SoCs, including the MPC85xx, to make
the various drivers work.

On the T208x USB stopped working after v2016.07 was pulled.  After
re-enabling the dcache functions for the MPC85xx it started working
again.  The USB and DPPA Ethernet drivers have been seen as
operational after this change but other drivers cannot be tested.

Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Tony O'Brien <tony.obrien@alliedtelesis.co.nz>
Cc: Marek Vasut <marex@denx.de>
Cc: York Sun <york.sun@nxp.com>
---
The USB and Ethernet functionality has been tested on both the
T2080RDB and our own design but we don't have the hardware to test
any of the other drivers.  We will wait and see if it causes us any
issues with other drivers.
 arch/powerpc/lib/ppccache.S | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

York Sun Jan. 24, 2017, 9:36 p.m. UTC | #1
On 01/05/2017 08:30 PM, Tony O'Brien wrote:
> Commit ac337168a unified functions to flush and invalidate dcache by
> range. These two functions were no-ops for SoCs other than 4xx and
> MPC86xx. Adding these functions seemed to be correct but introduced
> issues in some drivers when the dcache was flushed. While the root
> cause was under investigation, these functions were disabled in
> Commit cb1629f91a for affected SoCs, including the MPC85xx, to make
> the various drivers work.
>
> On the T208x USB stopped working after v2016.07 was pulled.  After
> re-enabling the dcache functions for the MPC85xx it started working
> again.  The USB and DPPA Ethernet drivers have been seen as
> operational after this change but other drivers cannot be tested.
>
> Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> Signed-off-by: Tony O'Brien <tony.obrien@alliedtelesis.co.nz>
> Cc: Marek Vasut <marex@denx.de>
> Cc: York Sun <york.sun@nxp.com>
> ---
> The USB and Ethernet functionality has been tested on both the
> T2080RDB and our own design but we don't have the hardware to test
> any of the other drivers.  We will wait and see if it causes us any
> issues with other drivers.
>  arch/powerpc/lib/ppccache.S | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>

Applied to u-boot-mpc85xx master, awaiting upstream. Thanks.

York
diff mbox

Patch

diff --git a/arch/powerpc/lib/ppccache.S b/arch/powerpc/lib/ppccache.S
index 66cf02dbd0..ad28c7c369 100644
--- a/arch/powerpc/lib/ppccache.S
+++ b/arch/powerpc/lib/ppccache.S
@@ -65,7 +65,7 @@  ppcSync:
  * flush_dcache_range(unsigned long start, unsigned long stop)
  */
 _GLOBAL(flush_dcache_range)
-#if defined(CONFIG_4xx) || defined(CONFIG_MPC86xx)
+#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
 	li	r5,L1_CACHE_BYTES-1
 	andc	r3,r3,r5
 	subf	r4,r3,r4
@@ -89,7 +89,7 @@  _GLOBAL(flush_dcache_range)
  * invalidate_dcache_range(unsigned long start, unsigned long stop)
  */
 _GLOBAL(invalidate_dcache_range)
-#if defined(CONFIG_4xx) || defined(CONFIG_MPC86xx)
+#if defined(CONFIG_4xx) || defined(CONFIG_MPC85xx) || defined(CONFIG_MPC86xx)
 	li	r5,L1_CACHE_BYTES-1
 	andc	r3,r3,r5
 	subf	r4,r3,r4