summaryrefslogtreecommitdiff
path: root/arch/riscv/Kconfig.erratas
diff options
context:
space:
mode:
authorVincent Chen <vincent.chen@sifive.com>2021-03-22 17:26:05 +0300
committerPalmer Dabbelt <palmerdabbelt@google.com>2021-04-26 18:24:57 +0300
commit800149a77c2cb8746a94457939b1ba1e37d2c14e (patch)
treea31cd1e131fc9259b2d7a12b62fe5958587b420b /arch/riscv/Kconfig.erratas
parent1a0e5dbd3723e1194cc549def69fe7b557d4c72b (diff)
downloadlinux-800149a77c2cb8746a94457939b1ba1e37d2c14e.tar.xz
riscv: sifive: Apply errata "cip-453" patch
Add sign extension to the $badaddr before addressing the instruction page fault and instruction access fault to workaround the issue "cip-453". To avoid affecting the existing code sequence, this patch will creates two trampolines to add sign extension to the $badaddr. By the "alternative" mechanism, these two trampolines will replace the original exception handler of instruction page fault and instruction access fault in the excp_vect_table. In this case, only the specific SiFive CPU core jumps to the do_page_fault and do_trap_insn_fault through these two trampolines. Other CPUs are not affected. Signed-off-by: Vincent Chen <vincent.chen@sifive.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
Diffstat (limited to 'arch/riscv/Kconfig.erratas')
-rw-r--r--arch/riscv/Kconfig.erratas11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/riscv/Kconfig.erratas b/arch/riscv/Kconfig.erratas
index 302e7467f302..b4146dca50fc 100644
--- a/arch/riscv/Kconfig.erratas
+++ b/arch/riscv/Kconfig.erratas
@@ -19,4 +19,15 @@ config ERRATA_SIFIVE
Otherwise, please say "N" here to avoid unnecessary overhead.
+config ERRATA_SIFIVE_CIP_453
+ bool "Apply SiFive errata CIP-453"
+ depends on ERRATA_SIFIVE
+ default y
+ help
+ This will apply the SiFive CIP-453 errata to add sign extension
+ to the $badaddr when exception type is instruction page fault
+ and instruction access fault.
+
+ If you don't know what to do here, say "Y".
+
endmenu