Hello,

Here is a patch to fix following problem in booting time,

WARNING: clock lost 16832 days 
WARNING: CHECK AND RESET THE DATE! 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 
pmap_fault_fixup: va 00008000 ftype 5 u pte 7ff3802e 

To avoid wrong L1 pde cached in TLB,
we should flush TLB after L1 pde destroyed (*pl1pd = L1_TYPE_INV)

Jeunder


Index: sys/arch/arm/arm/pmap7.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap7.c,v
retrieving revision 1.27
diff -u -p -u -r1.27 pmap7.c
--- sys/arch/arm/arm/pmap7.c    19 Jul 2016 02:26:15 -0000      1.27
+++ sys/arch/arm/arm/pmap7.c    11 Oct 2016 18:15:37 -0000
@@ -876,6 +876,8 @@ pmap_free_l2_bucket(pmap_t pm, struct l2
        if (l1pd == (L1_C_DOM(pm->pm_domain) | L1_TYPE_C)) {
                *pl1pd = L1_TYPE_INV;
                PTE_SYNC(pl1pd);
+               if (curproc && curproc->p_vmspace->vm_map.pmap == pm)
+                       cpu_tlb_flushID_SE(l1idx << L1_S_SHIFT);
        }
 
        /*




--
View this message in context: 
http://openbsd-archive.7691.n7.nabble.com/Patch-to-fix-armv7-pmap-fault-fixup-va-00008000-ftype-tp306322.html
Sent from the openbsd port - arm mailing list archive at Nabble.com.

Reply via email to