RE: [4/4] powerpc/mpc8548: Add workaround for erratum NMG_SRIO135
From: Zhao Chenhui-B35336 <hidden>
Date: 2013-10-17 13:36:51
=0A= OK. I will do.=0A= =0A= -Chenhui=0A= =0A= ________________________________________=0A= From: Wood Scott-B07421=0A= Sent: Thursday, October 17, 2013 7:20=0A= To: Zhao Chenhui-B35336=0A= Cc: linuxppc-dev@lists.ozlabs.org=0A= Subject: Re: [4/4] powerpc/mpc8548: Add workaround for erratum NMG_SRIO135= =0A= =0A= On Tue, Mar 06, 2012 at 05:10:56PM +0800, chenhui zhao wrote:=0A=
From: chenhui zhao <redacted>=0A= =0A= Issue:=0A= Applications using lwarx/stwcx instructions in the core to=0A= compete for a software lock or semaphore with a device on=0A= RapidIO using read atomic set, clr, inc, or dec in a similar=0A= manner may falsely result in both masters seeing the lock=0A= as "available". This could result in data corruption as=0A= both masters try to modify the same piece of data protected=0A= by the lock.=0A= =0A= Workaround:=0A= Set bits 13 and 29 of CCSR offset 0x01010 (EEBPCR register=0A= of the ECM) during initialization and leave them set=0A= indefinitely. This may slightly degrade overall system=0A= performance.=0A= =0A= Refer to SRIO39 in MPC8548 errata document.=0A= =0A= Signed-off-by: Gong Chen <redacted>=0A= Signed-off-by: Zhao Chenhui <redacted>=0A= Signed-off-by: Li Yang <redacted>=0A= =0A= ---=0A= arch/powerpc/sysdev/fsl_rio.c | 44 ++++++++++++++++++++++++++++++++++++=
+++++=0A=
1 files changed, 44 insertions(+), 0 deletions(-)=0A=
[snip]=0A=
quoted hunk ↗ jump to hunk
@@ -358,6 +391,17 @@ int fsl_rio_setup(struct platform_device *dev)=0A= dev->dev.of_node->full_name);=0A= return -EFAULT;=0A= }=0A= +=0A= + /* Fix erratum NMG_SRIO135 */=0A= + if (fsl_svr_is(SVR_8548) || fsl_svr_is(SVR_8548_E)) {=0A= + rc =3D fixup_erratum_srio135(&dev->dev);=0A= + if (rc) {=0A= + dev_err(&dev->dev,=0A= + "Failed to fix the erratum NMG_SRIO135.");=
=0A=
+ return rc;=0A= + }=0A= + }=0A=
=0A= This needs to be respun based on the current tree.=0A= =0A= -Scott=0A=