Subject: Re: PXA250 Xscale and page tables
To: Colin Cook <colin@cook-tech.com>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-kern
Date: 02/01/2003 22:51:24
On Sat, Feb 01, 2003 at 10:13:55AM -0700, Colin Cook wrote:

 > Sorry, There *is* something grossly wrong with ALL arm32 based NetBSD code.
 > 
 > ptes[arm_btop(npv->pv_va)] &= ~L2_S_CACHE_MASK in pmap.c
 > 
 > It is removing the C bit from application CODE space. We have removed this
 > line and our app now runs 10X faster.

The ARM uses a virtually-indexed,virtually-tagged cached.  Making the page
un-cached is required if you have multiple mappings of the same physical
page within an address space (either 2 mappings in the same proc or a proc
mapping and a kernel mapping for the same page), thus causing an incompatible
cache alias, leading to Bad Things.

-- 
        -- Jason R. Thorpe <thorpej@wasabisystems.com>