[PATCH] ARM: tegra: select required CPU and L2 errata options

Doug Anderson dianders at chromium.org
Thu Jan 5 13:40:48 EST 2012


I can't comment on the L2 stuff (haven't looked there), but just going
by Cortex-A9 revisions (T25 has roughly r1p1 and T30 has r2p7), I've
got this table:

Errata             T25 (A9 ~r1p1)   T30 (A9 r2p7)    Applies to
ARM_ERRATA_364296                                    pre A8
ARM_ERRATA_411920                                    pre A8
ARM_ERRATA_430973                                    A8
ARM_ERRATA_458693                                    A8
ARM_ERRATA_460075                                    A8
ARM_ERRATA_720789  yes                               A9 (prior to r2p0)
ARM_ERRATA_742230  yes                               A9 (r1p0..r2p2)
ARM_ERRATA_742231                                    A9 (r2p0..r2p2)
ARM_ERRATA_743622                                    A9 (r2p0..r2p2)
ARM_ERRATA_751472  yes              yes              A9 (prior to r3p0)
ARM_ERRATA_754322                   yes              A9 (r2p*, r3p*)
ARM_ERRATA_754327  yes                               A9 (prior to r2p0)
ARM_ERRATA_764369  yes              yes              A9 MPCore (all revs)

...so that means we should also be adding in 720789 (T2x), 751472
(T2x, T30), 754322 (T30), 754327 (T2x), 764369 (T2x, T30).


Certainly appreciate anyone checking my work and definitely appreciate
input from nVidia.

-Doug

---

On Thu, Jan 5, 2012 at 8:30 AM, Marc Dietrich <marvin24 at gmx.de> wrote:
>
> Hi,
>
> Am Mittwoch, 4. Januar 2012, 15:29:12 schrieb Olof Johansson:
> > Only one of the L2 erratas are needed on T30, but T20/25
> > needs a few more.
>
> can we have a word from someone from NVIDIA about which Tegra versions/revisions need
> which erratum applied?
>
> Currently the kernel has selections for the following errata (on ARM):
>
>        T2x             T30
>                                        ERRATA_430973                   Stale prediction on replaced interworking branch
>                                        ERRATA_458693                   Processor deadlock when a false hazard is created
>                                        ERRATA_460075                   Data written to the L2 cache can be overwritten
>                                                                                        with stale data
>        x                               ERRATA_742230                   DMB operation may be faulty
>                                        ERRATA_742231                   Incorrect hazard handling in the SCU may lead to
>                                                                                        data corruption
>                                        PL310_ERRATA_588369     Clean & Invalidate maintenance operations do not
>                                                                                        invalidate clean lines
>                                        ERRATA_720789                   TLBIASIDIS and TLBIMVAIS operations can broadcast
>                                                                                        a faulty ASID
>                                        PL310_ERRATA_727915     Background Clean & Invalidate by Way operation
>                                                                                        can cause data corruption
>                                        ERRATA_743622                   Faulty hazard checking in the Store Buffer may
>                                                                                        lead to data corruption
>                                        ERRATA_751472                   Interrupted ICIALLUIS may prevent completion of
>                                                                                        broadcasted operation
>        x                               PL310_ERRATA_753970     cache sync operation may be faulty
>                                        ERRATA_754322                   possible faulty MMU translations following an ASID
>                                                                                        switch
>                                        ERRATA_754327                   no automatic Store Buffer drain
>                                        ERRATA_764369                   Data cache line maintenance operation by MVA may
>                                                                                        not succeed
>        x               x               PL310_ERRATA_769419     no automatic Store Buffer drain
>
> With Olofs patch, the following errata are enabled by tegra_defconfig:
>
> 742230(T2x), 753970(T2x), 769419(T2x + T30)
>
> I have the feeling that at least 764369 also needs to be enabled. From the
> description: ... affecting Cortex-A9 MPCore with two or more processors (all
> current revisions). I wonder if this includes multi *cores*.
>
> The TRM is not very detailed about this topic. Having this info will likely remove
> some headache for non OEM custumers.
>
> Marc
>
>
> >
> > Signed-off-by: Olof Johansson <olof at lixom.net>
> > ---
> >  arch/arm/mach-tegra/Kconfig |    4 ++++
> >  1 files changed, 4 insertions(+), 0 deletions(-)
> >
> > diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
> > index 373652d..a2c76ee 100644
> > --- a/arch/arm/mach-tegra/Kconfig
> > +++ b/arch/arm/mach-tegra/Kconfig
> > @@ -10,6 +10,9 @@ config ARCH_TEGRA_2x_SOC
> >       select USB_ARCH_HAS_EHCI if USB_SUPPORT
> >       select USB_ULPI if USB_SUPPORT
> >       select USB_ULPI_VIEWPORT if USB_SUPPORT
> > +     select ARM_ERRATA_742230
> > +     select PL310_ERRATA_753970 if CACHE_PL310
> > +     select PL310_ERRATA_769419 if CACHE_L2X0
> >       help
> >         Support for NVIDIA Tegra AP20 and T20 processors, based on the
> >         ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
> > @@ -23,6 +26,7 @@ config ARCH_TEGRA_3x_SOC
> >       select USB_ULPI if USB_SUPPORT
> >       select USB_ULPI_VIEWPORT if USB_SUPPORT
> >       select USE_OF
> > +     select PL310_ERRATA_769419 if CACHE_L2X0
> >       help
> >         Support for NVIDIA Tegra T30 processor family, based on the
> >         ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the linux-arm-kernel mailing list