mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-21 00:42:16 +00:00
ARM: 7197/1: errata: Remove SMP dependency for erratum 751472
Activation conditions for a workaround should not be encoded in the workaround's direct dependencies if this makes otherwise reasonable configuration choices impossible. This patches uses the SMP/UP patching facilities instead to compile out the workaround if the configuration means that it is definitely not needed. This means that configs for buggy silicon can simply select ARM_ERRATA_751472, without preventing a UP kernel from being built or duplicatiing knowledge about when to activate the workaround. This seems the correct way to do things, because the erratum is a property of the silicon, irrespective of what the kernel config happens to be. Signed-off-by: Dave Martin <dave.martin@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
e66dc7452a
commit
ba90c516ba
@ -1282,7 +1282,7 @@ config ARM_ERRATA_743622
|
|||||||
|
|
||||||
config ARM_ERRATA_751472
|
config ARM_ERRATA_751472
|
||||||
bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
|
bool "ARM errata: Interrupted ICIALLUIS may prevent completion of broadcasted operation"
|
||||||
depends on CPU_V7 && SMP
|
depends on CPU_V7
|
||||||
help
|
help
|
||||||
This option enables the workaround for the 751472 Cortex-A9 (prior
|
This option enables the workaround for the 751472 Cortex-A9 (prior
|
||||||
to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
|
to r3p0) erratum. An interrupted ICIALLUIS operation may prevent the
|
||||||
|
@ -363,11 +363,13 @@ __v7_setup:
|
|||||||
orreq r10, r10, #1 << 6 @ set bit #6
|
orreq r10, r10, #1 << 6 @ set bit #6
|
||||||
mcreq p15, 0, r10, c15, c0, 1 @ write diagnostic register
|
mcreq p15, 0, r10, c15, c0, 1 @ write diagnostic register
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_ARM_ERRATA_751472
|
#if defined(CONFIG_ARM_ERRATA_751472) && defined(CONFIG_SMP)
|
||||||
cmp r6, #0x30 @ present prior to r3p0
|
ALT_SMP(cmp r6, #0x30) @ present prior to r3p0
|
||||||
|
ALT_UP_B(1f)
|
||||||
mrclt p15, 0, r10, c15, c0, 1 @ read diagnostic register
|
mrclt p15, 0, r10, c15, c0, 1 @ read diagnostic register
|
||||||
orrlt r10, r10, #1 << 11 @ set bit #11
|
orrlt r10, r10, #1 << 11 @ set bit #11
|
||||||
mcrlt p15, 0, r10, c15, c0, 1 @ write diagnostic register
|
mcrlt p15, 0, r10, c15, c0, 1 @ write diagnostic register
|
||||||
|
1:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
3: mov r10, #0
|
3: mov r10, #0
|
||||||
|
Loading…
Reference in New Issue
Block a user