On Sat, Mar 19, 2016 at 11:36:14AM +0100, Peter Oruba wrote:
> Hello,
> 
> I was testing the most recent ARMv7 snapshot on my Cubieboard2 and got the 
> crash documented in the attached file. Please let me know if I can be of any 
> help.
> 
> Thanks,
> Peter
> 

Hi,

unfortunately that issue is known but not yet resolved.

There's a temporary workaround for it.  I think it would be better to
only flush the TLB for a specified VA, not the entire TLB.  I have not
yet cooked a diff for that though.

Patrick

diff --git sys/arch/arm/include/pmap.h sys/arch/arm/include/pmap.h
index f8a4c9e..50338a9 100644
--- sys/arch/arm/include/pmap.h
+++ sys/arch/arm/include/pmap.h
@@ -328,6 +328,8 @@ do {                                                        
                \
                };                                                      \
                cpu_drain_writebuf();                                   \
        }                                                               \
+       asm("mcr p15, 0, r0, c8, c7, 0 /* Invalidate entire unified TLB */");   
\
+       cpu_drain_writebuf();                                           \
 } while (/*CONSTCOND*/0)
 
 #define        PTE_SYNC_RANGE(pte, cnt)                                        
\
@@ -344,6 +346,8 @@ do {                                                        
                \
                };                                                      \
                cpu_drain_writebuf();                                   \
        }                                                               \
+       asm("mcr p15, 0, r0, c8, c7, 0 /* Invalidate entire unified TLB */");   
\
+       cpu_drain_writebuf();                                           \
 } while (/*CONSTCOND*/0)
 
 #define        l1pte_valid(pde)        (((pde) & L1_TYPE_MASK) != L1_TYPE_INV)

Reply via email to