summaryrefslogtreecommitdiff
path: root/arch/arm/mm/proc-v6.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm/proc-v6.S')
-rw-r--r--arch/arm/mm/proc-v6.S24
1 files changed, 23 insertions, 1 deletions
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 7959567970c7..69381989644d 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -29,11 +29,15 @@
#define TTB_RGN_WT (2 << 3)
#define TTB_RGN_WB (3 << 3)
+#ifdef CONFIG_ARCH_TEGRA_1x_SOC
+#define TTB_FLAGS TTB_RGN_NC
+#else
#ifndef CONFIG_SMP
#define TTB_FLAGS TTB_RGN_WBWA
#else
#define TTB_FLAGS TTB_RGN_WBWA|TTB_S
#endif
+#endif
ENTRY(cpu_v6_proc_init)
mov pc, lr
@@ -77,12 +81,16 @@ ENTRY(cpu_v6_do_idle)
mov pc, lr
ENTRY(cpu_v6_dcache_clean_area)
+#ifdef CONFIG_ARCH_TEGRA_1x_SOC
+ bl cpu_ap15_dcache_clean_area
+#else
#ifndef TLB_CAN_READ_FROM_L1_CACHE
1: mcr p15, 0, r0, c7, c10, 1 @ clean D entry
add r0, r0, #D_CACHE_LINE_SIZE
subs r1, r1, #D_CACHE_LINE_SIZE
bhi 1b
#endif
+#endif
mov pc, lr
/*
@@ -119,12 +127,13 @@ ENTRY(cpu_v6_switch_mm)
*/
armv6_mt_table cpu_v6
+#if !(defined(CONFIG_ARCH_TEGRA_1x_SOC) && defined(CONFIG_CACHE_TEGRA_CMC))
ENTRY(cpu_v6_set_pte_ext)
#ifdef CONFIG_MMU
armv6_set_pte_ext cpu_v6
#endif
mov pc, lr
-
+#endif
@@ -201,7 +210,11 @@ __v6_setup:
*/
.type v6_crval, #object
v6_crval:
+#ifdef CONFIG_ARCH_TEGRA_1x_SOC
+ crval clear=0x01ffffff, mmuset=0x00c0787f, ucset=0x00c0187c
+#else
crval clear=0x01e0fb7f, mmuset=0x00c0387d, ucset=0x00c0187c
+#endif
.type v6_processor_functions, #object
ENTRY(v6_processor_functions)
@@ -234,6 +247,14 @@ cpu_elf_name:
*/
.type __v6_proc_info, #object
__v6_proc_info:
+#ifdef ARCH_TEGRA_1x_SOC
+ .long 0x410fb020
+ .long 0xfffffff0
+ .long PMD_TYPE_SECT | \
+ PMD_SECT_WBWA | \
+ PMD_SECT_AP_WRITE | \
+ PMD_SECT_AP_READ
+#else
.long 0x0007b000
.long 0x0007f000
.long PMD_TYPE_SECT | \
@@ -241,6 +262,7 @@ __v6_proc_info:
PMD_SECT_CACHEABLE | \
PMD_SECT_AP_WRITE | \
PMD_SECT_AP_READ
+#endif
.long PMD_TYPE_SECT | \
PMD_SECT_XN | \
PMD_SECT_AP_WRITE | \