From c5b2420ca7d1efe65d9674b9a81af94b1d244218 Mon Sep 17 00:00:00 2001 From: Lennert Buytenhek Date: Sat, 2 Dec 2006 00:03:47 +0100 Subject: [PATCH] --- yaml --- r: 43391 b: refs/heads/master c: 0e5fdca7622eb950f42f97a1970670e00a739175 h: refs/heads/master i: 43389: 06ef602399c73b6657b2ba97704e2a67d95ea5a2 43387: bfa4c02f98a9f368a3c99e9d0c557d1bca498dcb 43383: f116e418f6646fa277cdf634e1c7603ecbe1e985 43375: 58ad10bfa844e16bee6ac071089bde6669d03749 43359: baa67412bdd93c5721cb35905478e3dc916e27de 43327: 7c15dbb7423483d03aeb91b08984de2c02514cc5 43263: 1dbcf7488b7b5a18170d2d55543fe63b24a0ab2f v: v3 --- [refs] | 2 +- trunk/arch/arm/mm/mmu.c | 2 +- trunk/arch/arm/mm/proc-xsc3.S | 4 +++- trunk/include/asm-arm/pgtable.h | 3 +-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 174b42b56c31..c4c962850c34 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e520a36de2f7985df5ef2e84a9f6d2608ecc6f25 +refs/heads/master: 0e5fdca7622eb950f42f97a1970670e00a739175 diff --git a/trunk/arch/arm/mm/mmu.c b/trunk/arch/arm/mm/mmu.c index f866bf6b97d4..445bc3b951e6 100644 --- a/trunk/arch/arm/mm/mmu.c +++ b/trunk/arch/arm/mm/mmu.c @@ -265,7 +265,7 @@ static void __init build_mem_type_table(void) if (arch_is_coherent()) { if (cpu_is_xsc3()) { mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; - mem_types[MT_MEMORY].prot_pte |= L_PTE_COHERENT; + mem_types[MT_MEMORY].prot_pte |= L_PTE_SHARED; } } diff --git a/trunk/arch/arm/mm/proc-xsc3.S b/trunk/arch/arm/mm/proc-xsc3.S index c4d778a8619d..85c3523d0a95 100644 --- a/trunk/arch/arm/mm/proc-xsc3.S +++ b/trunk/arch/arm/mm/proc-xsc3.S @@ -371,8 +371,10 @@ ENTRY(cpu_xsc3_switch_mm) ENTRY(cpu_xsc3_set_pte) str r1, [r0], #-2048 @ linux version - bic r2, r1, #0xdf0 @ Keep C, B, coherency bits + bic r2, r1, #0xff0 @ Keep C, B bits orr r2, r2, #PTE_TYPE_EXT @ extended page + tst r1, #L_PTE_SHARED @ Shared? + orrne r2, r2, #0x200 eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY diff --git a/trunk/include/asm-arm/pgtable.h b/trunk/include/asm-arm/pgtable.h index ed8cb5963e99..88cd5c784ef0 100644 --- a/trunk/include/asm-arm/pgtable.h +++ b/trunk/include/asm-arm/pgtable.h @@ -169,8 +169,7 @@ extern void __pgd_error(const char *file, int line, unsigned long val); #define L_PTE_WRITE (1 << 5) #define L_PTE_EXEC (1 << 6) #define L_PTE_DIRTY (1 << 7) -#define L_PTE_COHERENT (1 << 9) /* I/O coherent (xsc3) */ -#define L_PTE_SHARED (1 << 10) /* shared between CPUs (v6) */ +#define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */ #define L_PTE_ASID (1 << 11) /* non-global (use ASID, v6) */ #ifndef __ASSEMBLY__