Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 into devel
This commit is contained in:
@@ -26,6 +26,7 @@
|
||||
* - mm - mm_struct describing address space
|
||||
*/
|
||||
ENTRY(v7_flush_dcache_all)
|
||||
dmb @ ensure ordering with previous memory accesses
|
||||
mrc p15, 1, r0, c0, c0, 1 @ read clidr
|
||||
ands r3, r0, #0x7000000 @ extract loc from clidr
|
||||
mov r3, r3, lsr #23 @ left align loc bit field
|
||||
@@ -64,6 +65,7 @@ skip:
|
||||
finished:
|
||||
mov r10, #0 @ swith back to cache level 0
|
||||
mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
|
||||
dsb
|
||||
isb
|
||||
mov pc, lr
|
||||
ENDPROC(v7_flush_dcache_all)
|
||||
|
@@ -71,6 +71,8 @@ ENTRY(cpu_v6_reset)
|
||||
* IRQs are already disabled.
|
||||
*/
|
||||
ENTRY(cpu_v6_do_idle)
|
||||
mov r1, #0
|
||||
mcr p15, 0, r1, c7, c10, 4 @ DWB - WFI may enter a low-power mode
|
||||
mcr p15, 0, r1, c7, c0, 4 @ wait for interrupt
|
||||
mov pc, lr
|
||||
|
||||
|
@@ -20,9 +20,17 @@
|
||||
|
||||
#define TTB_C (1 << 0)
|
||||
#define TTB_S (1 << 1)
|
||||
#define TTB_RGN_NC (0 << 3)
|
||||
#define TTB_RGN_OC_WBWA (1 << 3)
|
||||
#define TTB_RGN_OC_WT (2 << 3)
|
||||
#define TTB_RGN_OC_WB (3 << 3)
|
||||
|
||||
#ifndef CONFIG_SMP
|
||||
#define TTB_FLAGS TTB_C|TTB_RGN_OC_WB @ mark PTWs cacheable, outer WB
|
||||
#else
|
||||
#define TTB_FLAGS TTB_C|TTB_S|TTB_RGN_OC_WBWA @ mark PTWs cacheable and shared, outer WBWA
|
||||
#endif
|
||||
|
||||
ENTRY(cpu_v7_proc_init)
|
||||
mov pc, lr
|
||||
ENDPROC(cpu_v7_proc_init)
|
||||
@@ -55,6 +63,7 @@ ENDPROC(cpu_v7_reset)
|
||||
* IRQs are already disabled.
|
||||
*/
|
||||
ENTRY(cpu_v7_do_idle)
|
||||
dsb @ WFI may enter a low-power mode
|
||||
wfi
|
||||
mov pc, lr
|
||||
ENDPROC(cpu_v7_do_idle)
|
||||
@@ -85,7 +94,7 @@ ENTRY(cpu_v7_switch_mm)
|
||||
#ifdef CONFIG_MMU
|
||||
mov r2, #0
|
||||
ldr r1, [r1, #MM_CONTEXT_ID] @ get mm->context.id
|
||||
orr r0, r0, #TTB_RGN_OC_WB @ mark PTWs outer cacheable, WB
|
||||
orr r0, r0, #TTB_FLAGS
|
||||
mcr p15, 0, r2, c13, c0, 1 @ set reserved context ID
|
||||
isb
|
||||
1: mcr p15, 0, r0, c2, c0, 0 @ set TTB 0
|
||||
@@ -162,6 +171,11 @@ cpu_v7_name:
|
||||
* - cache type register is implemented
|
||||
*/
|
||||
__v7_setup:
|
||||
#ifdef CONFIG_SMP
|
||||
mrc p15, 0, r0, c1, c0, 1 @ Enable SMP/nAMP mode
|
||||
orr r0, r0, #(0x1 << 6)
|
||||
mcr p15, 0, r0, c1, c0, 1
|
||||
#endif
|
||||
adr r12, __v7_setup_stack @ the local stack
|
||||
stmia r12, {r0-r5, r7, r9, r11, lr}
|
||||
bl v7_flush_dcache_all
|
||||
@@ -174,8 +188,7 @@ __v7_setup:
|
||||
#ifdef CONFIG_MMU
|
||||
mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs
|
||||
mcr p15, 0, r10, c2, c0, 2 @ TTB control register
|
||||
orr r4, r4, #TTB_RGN_OC_WB @ mark PTWs outer cacheable, WB
|
||||
mcr p15, 0, r4, c2, c0, 0 @ load TTB0
|
||||
orr r4, r4, #TTB_FLAGS
|
||||
mcr p15, 0, r4, c2, c0, 1 @ load TTB1
|
||||
mov r10, #0x1f @ domains 0, 1 = manager
|
||||
mcr p15, 0, r10, c3, c0, 0 @ load domain access register
|
||||
|
Fai riferimento in un nuovo problema
Block a user