ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect
authorJon Medhurst <tixy@linaro.org>
Fri, 7 Jun 2013 09:35:35 +0000 (10:35 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jun 2013 17:38:23 +0000 (10:38 -0700)
commit688b92cf4ec673d6fffebf27ccfd1a867cf530c9
tree62705d517db8436908749377b1989ac663e7ad08
parent485f25fcc014f2744754f22de395f745f2c7e492
ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect

commit 691557941af4c12bd307ad81a4d9fa9c7743ac28 upstream.

On Cortex-A9 before version r1p0, the LoUIS bit field of the CLIDR
register returns zero when it should return one. This leads to cache
maintenance operations which rely on this value to not function as
intended, causing data corruption.

The workaround for this errata is to detect affected CPUs and correct
the LoUIS value read.

Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/Kconfig
arch/arm/mm/cache-v7.S