diff options
author | Alistair Popple <alistair@popple.id.au> | 2014-08-06 03:03:09 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-08-13 01:13:42 -0400 |
commit | 97b3be1e9404f4c1645f3286428abd4d2052041e (patch) | |
tree | 31e79eebdf8c4ec0cb539c7bcd6d75ee7f889034 /arch | |
parent | 763fe0addb8fe15ccea67c0aebddc06f4bb25439 (diff) |
powerpc/ppc476: Disable BTAC
This patch disables the branch target address CAM which under specific
circumstances may cause the processor to skip execution of 1-4
instructions. This fixes IBM Erratum #47.
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/kernel/head_44x.S | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S index c334f53453f7..b5061abbd2e0 100644 --- a/arch/powerpc/kernel/head_44x.S +++ b/arch/powerpc/kernel/head_44x.S | |||
@@ -1210,10 +1210,12 @@ clear_utlb_entry: | |||
1210 | 1210 | ||
1211 | /* We configure icbi to invalidate 128 bytes at a time since the | 1211 | /* We configure icbi to invalidate 128 bytes at a time since the |
1212 | * current 32-bit kernel code isn't too happy with icache != dcache | 1212 | * current 32-bit kernel code isn't too happy with icache != dcache |
1213 | * block size | 1213 | * block size. We also disable the BTAC as this can cause errors |
1214 | * in some circumstances (see IBM Erratum 47). | ||
1214 | */ | 1215 | */ |
1215 | mfspr r3,SPRN_CCR0 | 1216 | mfspr r3,SPRN_CCR0 |
1216 | oris r3,r3,0x0020 | 1217 | oris r3,r3,0x0020 |
1218 | ori r3,r3,0x0040 | ||
1217 | mtspr SPRN_CCR0,r3 | 1219 | mtspr SPRN_CCR0,r3 |
1218 | isync | 1220 | isync |
1219 | 1221 | ||