lib: sbi_trap: Workaroud for cpu still using i-utlb when into m mode
This commit is contained in:
@@ -757,6 +757,8 @@ memcmp:
|
|||||||
.globl _trap_handler
|
.globl _trap_handler
|
||||||
.globl _trap_exit
|
.globl _trap_exit
|
||||||
_trap_handler:
|
_trap_handler:
|
||||||
|
sfence.vma
|
||||||
|
|
||||||
TRAP_SAVE_AND_SETUP_SP_T0
|
TRAP_SAVE_AND_SETUP_SP_T0
|
||||||
|
|
||||||
TRAP_SAVE_MEPC_MSTATUS 0
|
TRAP_SAVE_MEPC_MSTATUS 0
|
||||||
|
|||||||
@@ -268,10 +268,6 @@ struct sbi_trap_regs *sbi_trap_handler(struct sbi_trap_regs *regs)
|
|||||||
ulong mtval = csr_read(CSR_MTVAL), mtval2 = 0, mtinst = 0;
|
ulong mtval = csr_read(CSR_MTVAL), mtval2 = 0, mtinst = 0;
|
||||||
struct sbi_trap_info trap;
|
struct sbi_trap_info trap;
|
||||||
|
|
||||||
if (misa_extension('S')) {
|
|
||||||
__asm__ __volatile__("sfence.vma");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (misa_extension('H')) {
|
if (misa_extension('H')) {
|
||||||
mtval2 = csr_read(CSR_MTVAL2);
|
mtval2 = csr_read(CSR_MTVAL2);
|
||||||
mtinst = csr_read(CSR_MTINST);
|
mtinst = csr_read(CSR_MTINST);
|
||||||
|
|||||||
Reference in New Issue
Block a user