Message ID | 20170106042945.803-1-tony.obrien@alliedtelesis.co.nz |
---|---|
State | Accepted |
Commit | 76866600f544f00928ee9b5b2799a091ea9b80a7 |
Delegated to: | York Sun |
Headers | show |
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 --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