aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/Kconfig
diff options
context:
space:
mode:
authorCatalin Marinas <catalin.marinas@arm.com>2009-04-30 12:06:09 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-04-30 15:12:50 -0400
commit7ce236fcd6fd45b0441a2d49acb2ceb2de2e8a47 (patch)
tree1f092413fbe0c91350e7861638dec7bb475c8435 /arch/arm/Kconfig
parent9cba3ccc8fe77b67aff2db8f5827d7cb752ce11f (diff)
[ARM] 5487/1: ARM errata: Stale prediction on replaced interworking branch
This patch adds the workaround for the 430973 Cortex-A8 (r1p0..r1p2) erratum. The BTAC/BTB is now flushed at every context switch. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/Kconfig')
-rw-r--r--arch/arm/Kconfig16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e28a76bd179..84e4816362b 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -749,6 +749,22 @@ config ARM_ERRATA_411920
749 It does not affect the MPCore. This option enables the ARM Ltd. 749 It does not affect the MPCore. This option enables the ARM Ltd.
750 recommended workaround. 750 recommended workaround.
751 751
752config ARM_ERRATA_430973
753 bool "ARM errata: Stale prediction on replaced interworking branch"
754 depends on CPU_V7
755 help
756 This option enables the workaround for the 430973 Cortex-A8
757 (r1p0..r1p2) erratum. If a code sequence containing an ARM/Thumb
758 interworking branch is replaced with another code sequence at the
759 same virtual address, whether due to self-modifying code or virtual
760 to physical address re-mapping, Cortex-A8 does not recover from the
761 stale interworking branch prediction. This results in Cortex-A8
762 executing the new code sequence in the incorrect ARM or Thumb state.
763 The workaround enables the BTB/BTAC operations by setting ACTLR.IBE
764 and also flushes the branch target cache at every context switch.
765 Note that setting specific bits in the ACTLR register may not be
766 available in non-secure mode.
767
752endmenu 768endmenu
753 769
754source "arch/arm/common/Kconfig" 770source "arch/arm/common/Kconfig"