forked from Mirrors/opensbi

Flushing the tlb entries can solve the thead tlb problem, but flushing it by address will miss something and lead to a exception in some rare cases, and this is more common for sg2042. To solve this problem, flush the tlb entries by asid in the custom trap handler to ensure it is refreshed. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> Reviewed-by: Guo Ren <guoren@kernel.org> Reviewed-by: Anup Patel <anup@brainfault.org>
14 lines
272 B
ArmAsm
14 lines
272 B
ArmAsm
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Authors:
|
|
* Inochi Amaoto <inochiama@outlook.com>
|
|
*
|
|
*/
|
|
.section .entry, "ax", %progbits
|
|
.align 3
|
|
.globl _thead_tlb_flush_fixup_trap_handler
|
|
_thead_tlb_flush_fixup_trap_handler:
|
|
sfence.vma zero, t0
|
|
j _trap_handler
|