diff options
Diffstat (limited to 'arch/powerpc/platforms/Kconfig.cputype')
-rw-r--r-- | arch/powerpc/platforms/Kconfig.cputype | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype index 54f3936..57e32a3 100644 --- a/arch/powerpc/platforms/Kconfig.cputype +++ b/arch/powerpc/platforms/Kconfig.cputype @@ -158,12 +158,89 @@ config E500 config PPC_E500MC bool "e500mc Support" select PPC_FPU + select COMMON_CLK depends on E500 help This must be enabled for running on e500mc (and derivatives such as e5500/e6500), and must be disabled for running on e500v1 or e500v2. +config FSL_ERRATUM_A_004801 + bool "Work around erratum A-004801" + depends on PPC_E500MC + default y + help + This works around erratum A-004801 by having invalidations + use the same lock as TLB writes. + + Say Y if if you need to be able to run on rev1 silicon. + +config FSL_ERRATUM_A_005337 + bool "Work around erratum A-005337 (no hw tablewalk)" + depends on PPC_E500MC + default y + help + This works around erratum A-005337 by not using hardware tablewalk, + even if the hardware advertises it as present. + + Say Y if if you need to be able to run on rev1 silicon, otherwise + say N for better performance. + +config FSL_ERRATUM_A_006184 + bool "Work around erratum A-006184" + help + Define this to work around erratum A-006184 ("Simultaneous + Instruction L1 MMU miss (due to eviction) and interrupt + servicing can cause a core hang"). This erratum affects + e500v1, e500v2, e500mc, and e5500. The workaround will + cause a watchdog interrupt to occur periodically. It will + not avoid the hang described by the erratum, but it will + recover from it when the next watchdog interrupt expires. + + The normal watchdog functionality cannot be used when this + workaround is enabled. + + If you are running Linux as the guest of a hypervisor, you + should enable this (or a similar workaround) in the host + instead. + + Note that it is believed that it is unlikely that the hang + will be encountered in normal Linux operation. Running KVM + or using hugetlbfs could increase the chance of seeing the + hang. + +config FSL_ERRATUM_A_006184_PERIOD + int "Watchdog period for A-006184 workaround" + range 32 52 + default 43 + help + This is the watchdog period to be used for the A-006184 + workaround. The watchdog will fire whenever the bit selected + transitions from 0 to 1 in the time base. The bits are + numbered with 0 starting at the most-signficant end -- + larger numbers give a more frequent period. + + The period must be set longer than the non-idle decrementer + period, to ensure that the watchdog interrupt only actually + happens when stuck -- but the longer the period, the worse the + latency will be if a hang does occur. Long decrementer + timeouts when idle due to CONFIG_NO_HZ should not be a problem, + since when idle we will always have just executed from the main + kernel mapping, so it should not be absent from the L1 I-MMU. + +config PPC_DISABLE_THREADS + bool "Avoid the use of hardware threads" + help + Define this if running e6500 rev1 to avoid bugs + relating to hardware threads. + +config FSL_ERRATUM_A_006198 + bool "Work around e6500 rev1 erratum A-006198" + depends on PPC_E500MC && !PPC_DISABLE_THREADS + help + Define this if running e6500 rev1, to avoid a source + of hangs due to CPU erratum A-006198. + config PPC_FPU bool default y if PPC64 |