mirror of https://gitee.com/openkylin/linux.git
ARC: [plat-eznps] Fix TLB Errata
Due to a HW bug in NPS400 we get from time to time false TLB miss. Workaround this by validating each miss. Signed-off-by: Noam Camus <noamca@mellanox.com> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
parent
9e9395525b
commit
30b7af252e
|
@ -274,6 +274,13 @@ ex_saved_reg1:
|
|||
.macro COMMIT_ENTRY_TO_MMU
|
||||
#if (CONFIG_ARC_MMU_VER < 4)
|
||||
|
||||
#ifdef CONFIG_EZNPS_MTM_EXT
|
||||
/* verify if entry for this vaddr+ASID already exists */
|
||||
sr TLBProbe, [ARC_REG_TLBCOMMAND]
|
||||
lr r0, [ARC_REG_TLBINDEX]
|
||||
bbit0 r0, 31, 88f
|
||||
#endif
|
||||
|
||||
/* Get free TLB slot: Set = computed from vaddr, way = random */
|
||||
sr TLBGetIndex, [ARC_REG_TLBCOMMAND]
|
||||
|
||||
|
@ -287,6 +294,8 @@ ex_saved_reg1:
|
|||
#else
|
||||
sr TLBInsertEntry, [ARC_REG_TLBCOMMAND]
|
||||
#endif
|
||||
|
||||
88:
|
||||
.endm
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue