diff options
Diffstat (limited to 'arch/arm/mm/mmu.c')
-rw-r--r-- | arch/arm/mm/mmu.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index f866bf6b97d4..f028aef9a861 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -265,7 +265,7 @@ static void __init build_mem_type_table(void) | |||
265 | if (arch_is_coherent()) { | 265 | if (arch_is_coherent()) { |
266 | if (cpu_is_xsc3()) { | 266 | if (cpu_is_xsc3()) { |
267 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; | 267 | mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; |
268 | mem_types[MT_MEMORY].prot_pte |= L_PTE_COHERENT; | 268 | mem_types[MT_MEMORY].prot_pte |= L_PTE_SHARED; |
269 | } | 269 | } |
270 | } | 270 | } |
271 | 271 | ||
@@ -294,12 +294,6 @@ static void __init build_mem_type_table(void) | |||
294 | mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE; | 294 | mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE; |
295 | mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED; | 295 | mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED; |
296 | 296 | ||
297 | /* | ||
298 | * User pages need to be mapped with the ASID | ||
299 | * (iow, non-global) | ||
300 | */ | ||
301 | user_pgprot |= L_PTE_ASID; | ||
302 | |||
303 | #ifdef CONFIG_SMP | 297 | #ifdef CONFIG_SMP |
304 | /* | 298 | /* |
305 | * Mark memory with the "shared" attribute for SMP systems | 299 | * Mark memory with the "shared" attribute for SMP systems |
@@ -408,7 +402,7 @@ alloc_init_page(unsigned long virt, unsigned long phys, unsigned int prot_l1, pg | |||
408 | } | 402 | } |
409 | ptep = pte_offset_kernel(pmdp, virt); | 403 | ptep = pte_offset_kernel(pmdp, virt); |
410 | 404 | ||
411 | set_pte(ptep, pfn_pte(phys >> PAGE_SHIFT, prot)); | 405 | set_pte_ext(ptep, pfn_pte(phys >> PAGE_SHIFT, prot), 0); |
412 | } | 406 | } |
413 | 407 | ||
414 | /* | 408 | /* |
@@ -619,6 +613,13 @@ void __init reserve_node_zero(pg_data_t *pgdat) | |||
619 | if (machine_is_p720t()) | 613 | if (machine_is_p720t()) |
620 | res_size = 0x00014000; | 614 | res_size = 0x00014000; |
621 | 615 | ||
616 | /* H1940 and RX3715 need to reserve this for suspend */ | ||
617 | |||
618 | if (machine_is_h1940() || machine_is_rx3715()) { | ||
619 | reserve_bootmem_node(pgdat, 0x30003000, 0x1000); | ||
620 | reserve_bootmem_node(pgdat, 0x30081000, 0x1000); | ||
621 | } | ||
622 | |||
622 | #ifdef CONFIG_SA1111 | 623 | #ifdef CONFIG_SA1111 |
623 | /* | 624 | /* |
624 | * Because of the SA1111 DMA bug, we want to preserve our | 625 | * Because of the SA1111 DMA bug, we want to preserve our |