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>
Showing
- arch/riscv/Kconfig.erratas 11 additions, 0 deletionsarch/riscv/Kconfig.erratas
- arch/riscv/errata/sifive/Makefile 1 addition, 0 deletionsarch/riscv/errata/sifive/Makefile
- arch/riscv/errata/sifive/errata.c 20 additions, 0 deletionsarch/riscv/errata/sifive/errata.c
- arch/riscv/errata/sifive/errata_cip_453.S 38 additions, 0 deletionsarch/riscv/errata/sifive/errata_cip_453.S
- arch/riscv/include/asm/errata_list.h 20 additions, 1 deletionarch/riscv/include/asm/errata_list.h
- arch/riscv/kernel/entry.S 4 additions, 2 deletionsarch/riscv/kernel/entry.S
Loading
Please register or sign in to comment