Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
e3ef0dc6
Commit
e3ef0dc6
authored
Sep 26, 2012
by
Russell King
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cache-louis' of
git://linux-arm.org/linux-2.6-lp
into devel-stable
parents
6f0f9b6b
6323fa22
Changes
27
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
140 additions
and
9 deletions
+140
-9
arch/arm/include/asm/cacheflush.h
arch/arm/include/asm/cacheflush.h
+15
-0
arch/arm/include/asm/glue-cache.h
arch/arm/include/asm/glue-cache.h
+1
-0
arch/arm/kernel/smp.c
arch/arm/kernel/smp.c
+4
-1
arch/arm/kernel/suspend.c
arch/arm/kernel/suspend.c
+16
-1
arch/arm/mm/cache-fa.S
arch/arm/mm/cache-fa.S
+3
-0
arch/arm/mm/cache-v3.S
arch/arm/mm/cache-v3.S
+3
-0
arch/arm/mm/cache-v4.S
arch/arm/mm/cache-v4.S
+3
-0
arch/arm/mm/cache-v4wb.S
arch/arm/mm/cache-v4wb.S
+3
-0
arch/arm/mm/cache-v4wt.S
arch/arm/mm/cache-v4wt.S
+3
-0
arch/arm/mm/cache-v6.S
arch/arm/mm/cache-v6.S
+3
-0
arch/arm/mm/cache-v7.S
arch/arm/mm/cache-v7.S
+42
-6
arch/arm/mm/proc-arm1020.S
arch/arm/mm/proc-arm1020.S
+3
-0
arch/arm/mm/proc-arm1020e.S
arch/arm/mm/proc-arm1020e.S
+3
-0
arch/arm/mm/proc-arm1022.S
arch/arm/mm/proc-arm1022.S
+3
-0
arch/arm/mm/proc-arm1026.S
arch/arm/mm/proc-arm1026.S
+3
-0
arch/arm/mm/proc-arm920.S
arch/arm/mm/proc-arm920.S
+3
-0
arch/arm/mm/proc-arm922.S
arch/arm/mm/proc-arm922.S
+3
-0
arch/arm/mm/proc-arm925.S
arch/arm/mm/proc-arm925.S
+3
-0
arch/arm/mm/proc-arm926.S
arch/arm/mm/proc-arm926.S
+3
-0
arch/arm/mm/proc-arm940.S
arch/arm/mm/proc-arm940.S
+3
-0
arch/arm/mm/proc-arm946.S
arch/arm/mm/proc-arm946.S
+3
-0
arch/arm/mm/proc-feroceon.S
arch/arm/mm/proc-feroceon.S
+3
-0
arch/arm/mm/proc-macros.S
arch/arm/mm/proc-macros.S
+1
-0
arch/arm/mm/proc-mohawk.S
arch/arm/mm/proc-mohawk.S
+3
-0
arch/arm/mm/proc-v7.S
arch/arm/mm/proc-v7.S
+1
-1
arch/arm/mm/proc-xsc3.S
arch/arm/mm/proc-xsc3.S
+3
-0
arch/arm/mm/proc-xscale.S
arch/arm/mm/proc-xscale.S
+3
-0
No files found.
arch/arm/include/asm/cacheflush.h
View file @
e3ef0dc6
...
@@ -49,6 +49,13 @@
...
@@ -49,6 +49,13 @@
*
*
* Unconditionally clean and invalidate the entire cache.
* Unconditionally clean and invalidate the entire cache.
*
*
* flush_kern_louis()
*
* Flush data cache levels up to the level of unification
* inner shareable and invalidate the I-cache.
* Only needed from v7 onwards, falls back to flush_cache_all()
* for all other processor versions.
*
* flush_user_all()
* flush_user_all()
*
*
* Clean and invalidate all user space cache entries
* Clean and invalidate all user space cache entries
...
@@ -97,6 +104,7 @@
...
@@ -97,6 +104,7 @@
struct
cpu_cache_fns
{
struct
cpu_cache_fns
{
void
(
*
flush_icache_all
)(
void
);
void
(
*
flush_icache_all
)(
void
);
void
(
*
flush_kern_all
)(
void
);
void
(
*
flush_kern_all
)(
void
);
void
(
*
flush_kern_louis
)(
void
);
void
(
*
flush_user_all
)(
void
);
void
(
*
flush_user_all
)(
void
);
void
(
*
flush_user_range
)(
unsigned
long
,
unsigned
long
,
unsigned
int
);
void
(
*
flush_user_range
)(
unsigned
long
,
unsigned
long
,
unsigned
int
);
...
@@ -119,6 +127,7 @@ extern struct cpu_cache_fns cpu_cache;
...
@@ -119,6 +127,7 @@ extern struct cpu_cache_fns cpu_cache;
#define __cpuc_flush_icache_all cpu_cache.flush_icache_all
#define __cpuc_flush_icache_all cpu_cache.flush_icache_all
#define __cpuc_flush_kern_all cpu_cache.flush_kern_all
#define __cpuc_flush_kern_all cpu_cache.flush_kern_all
#define __cpuc_flush_kern_louis cpu_cache.flush_kern_louis
#define __cpuc_flush_user_all cpu_cache.flush_user_all
#define __cpuc_flush_user_all cpu_cache.flush_user_all
#define __cpuc_flush_user_range cpu_cache.flush_user_range
#define __cpuc_flush_user_range cpu_cache.flush_user_range
#define __cpuc_coherent_kern_range cpu_cache.coherent_kern_range
#define __cpuc_coherent_kern_range cpu_cache.coherent_kern_range
...
@@ -139,6 +148,7 @@ extern struct cpu_cache_fns cpu_cache;
...
@@ -139,6 +148,7 @@ extern struct cpu_cache_fns cpu_cache;
extern
void
__cpuc_flush_icache_all
(
void
);
extern
void
__cpuc_flush_icache_all
(
void
);
extern
void
__cpuc_flush_kern_all
(
void
);
extern
void
__cpuc_flush_kern_all
(
void
);
extern
void
__cpuc_flush_kern_louis
(
void
);
extern
void
__cpuc_flush_user_all
(
void
);
extern
void
__cpuc_flush_user_all
(
void
);
extern
void
__cpuc_flush_user_range
(
unsigned
long
,
unsigned
long
,
unsigned
int
);
extern
void
__cpuc_flush_user_range
(
unsigned
long
,
unsigned
long
,
unsigned
int
);
extern
void
__cpuc_coherent_kern_range
(
unsigned
long
,
unsigned
long
);
extern
void
__cpuc_coherent_kern_range
(
unsigned
long
,
unsigned
long
);
...
@@ -204,6 +214,11 @@ static inline void __flush_icache_all(void)
...
@@ -204,6 +214,11 @@ static inline void __flush_icache_all(void)
__flush_icache_preferred
();
__flush_icache_preferred
();
}
}
/*
* Flush caches up to Level of Unification Inner Shareable
*/
#define flush_cache_louis() __cpuc_flush_kern_louis()
#define flush_cache_all() __cpuc_flush_kern_all()
#define flush_cache_all() __cpuc_flush_kern_all()
static
inline
void
vivt_flush_cache_mm
(
struct
mm_struct
*
mm
)
static
inline
void
vivt_flush_cache_mm
(
struct
mm_struct
*
mm
)
...
...
arch/arm/include/asm/glue-cache.h
View file @
e3ef0dc6
...
@@ -132,6 +132,7 @@
...
@@ -132,6 +132,7 @@
#ifndef MULTI_CACHE
#ifndef MULTI_CACHE
#define __cpuc_flush_icache_all __glue(_CACHE,_flush_icache_all)
#define __cpuc_flush_icache_all __glue(_CACHE,_flush_icache_all)
#define __cpuc_flush_kern_all __glue(_CACHE,_flush_kern_cache_all)
#define __cpuc_flush_kern_all __glue(_CACHE,_flush_kern_cache_all)
#define __cpuc_flush_kern_louis __glue(_CACHE,_flush_kern_cache_louis)
#define __cpuc_flush_user_all __glue(_CACHE,_flush_user_cache_all)
#define __cpuc_flush_user_all __glue(_CACHE,_flush_user_cache_all)
#define __cpuc_flush_user_range __glue(_CACHE,_flush_user_cache_range)
#define __cpuc_flush_user_range __glue(_CACHE,_flush_user_cache_range)
#define __cpuc_coherent_kern_range __glue(_CACHE,_coherent_kern_range)
#define __cpuc_coherent_kern_range __glue(_CACHE,_coherent_kern_range)
...
...
arch/arm/kernel/smp.c
View file @
e3ef0dc6
...
@@ -134,8 +134,11 @@ int __cpu_disable(void)
...
@@ -134,8 +134,11 @@ int __cpu_disable(void)
/*
/*
* Flush user cache and TLB mappings, and then remove this CPU
* Flush user cache and TLB mappings, and then remove this CPU
* from the vm mask set of all processes.
* from the vm mask set of all processes.
*
* Caches are flushed to the Level of Unification Inner Shareable
* to write-back dirty lines to unified caches shared by all CPUs.
*/
*/
flush_cache_
all
();
flush_cache_
louis
();
local_flush_tlb_all
();
local_flush_tlb_all
();
clear_tasks_mm_cpumask
(
cpu
);
clear_tasks_mm_cpumask
(
cpu
);
...
...
arch/arm/kernel/suspend.c
View file @
e3ef0dc6
...
@@ -17,6 +17,8 @@ extern void cpu_resume_mmu(void);
...
@@ -17,6 +17,8 @@ extern void cpu_resume_mmu(void);
*/
*/
void
__cpu_suspend_save
(
u32
*
ptr
,
u32
ptrsz
,
u32
sp
,
u32
*
save_ptr
)
void
__cpu_suspend_save
(
u32
*
ptr
,
u32
ptrsz
,
u32
sp
,
u32
*
save_ptr
)
{
{
u32
*
ctx
=
ptr
;
*
save_ptr
=
virt_to_phys
(
ptr
);
*
save_ptr
=
virt_to_phys
(
ptr
);
/* This must correspond to the LDM in cpu_resume() assembly */
/* This must correspond to the LDM in cpu_resume() assembly */
...
@@ -26,7 +28,20 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr)
...
@@ -26,7 +28,20 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr)
cpu_do_suspend
(
ptr
);
cpu_do_suspend
(
ptr
);
flush_cache_all
();
flush_cache_louis
();
/*
* flush_cache_louis does not guarantee that
* save_ptr and ptr are cleaned to main memory,
* just up to the Level of Unification Inner Shareable.
* Since the context pointer and context itself
* are to be retrieved with the MMU off that
* data must be cleaned from all cache levels
* to main memory using "area" cache primitives.
*/
__cpuc_flush_dcache_area
(
ctx
,
ptrsz
);
__cpuc_flush_dcache_area
(
save_ptr
,
sizeof
(
*
save_ptr
));
outer_clean_range
(
*
save_ptr
,
*
save_ptr
+
ptrsz
);
outer_clean_range
(
*
save_ptr
,
*
save_ptr
+
ptrsz
);
outer_clean_range
(
virt_to_phys
(
save_ptr
),
outer_clean_range
(
virt_to_phys
(
save_ptr
),
virt_to_phys
(
save_ptr
)
+
sizeof
(
*
save_ptr
));
virt_to_phys
(
save_ptr
)
+
sizeof
(
*
save_ptr
));
...
...
arch/arm/mm/cache-fa.S
View file @
e3ef0dc6
...
@@ -240,6 +240,9 @@ ENTRY(fa_dma_unmap_area)
...
@@ -240,6 +240,9 @@ ENTRY(fa_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
fa_dma_unmap_area
)
ENDPROC
(
fa_dma_unmap_area
)
.
globl
fa_flush_kern_cache_louis
.
equ
fa_flush_kern_cache_louis
,
fa_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v3.S
View file @
e3ef0dc6
...
@@ -128,6 +128,9 @@ ENTRY(v3_dma_map_area)
...
@@ -128,6 +128,9 @@ ENTRY(v3_dma_map_area)
ENDPROC
(
v3_dma_unmap_area
)
ENDPROC
(
v3_dma_unmap_area
)
ENDPROC
(
v3_dma_map_area
)
ENDPROC
(
v3_dma_map_area
)
.
globl
v3_flush_kern_cache_louis
.
equ
v3_flush_kern_cache_louis
,
v3_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v4.S
View file @
e3ef0dc6
...
@@ -140,6 +140,9 @@ ENTRY(v4_dma_map_area)
...
@@ -140,6 +140,9 @@ ENTRY(v4_dma_map_area)
ENDPROC
(
v4_dma_unmap_area
)
ENDPROC
(
v4_dma_unmap_area
)
ENDPROC
(
v4_dma_map_area
)
ENDPROC
(
v4_dma_map_area
)
.
globl
v4_flush_kern_cache_louis
.
equ
v4_flush_kern_cache_louis
,
v4_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v4wb.S
View file @
e3ef0dc6
...
@@ -251,6 +251,9 @@ ENTRY(v4wb_dma_unmap_area)
...
@@ -251,6 +251,9 @@ ENTRY(v4wb_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
v4wb_dma_unmap_area
)
ENDPROC
(
v4wb_dma_unmap_area
)
.
globl
v4wb_flush_kern_cache_louis
.
equ
v4wb_flush_kern_cache_louis
,
v4wb_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v4wt.S
View file @
e3ef0dc6
...
@@ -196,6 +196,9 @@ ENTRY(v4wt_dma_map_area)
...
@@ -196,6 +196,9 @@ ENTRY(v4wt_dma_map_area)
ENDPROC
(
v4wt_dma_unmap_area
)
ENDPROC
(
v4wt_dma_unmap_area
)
ENDPROC
(
v4wt_dma_map_area
)
ENDPROC
(
v4wt_dma_map_area
)
.
globl
v4wt_flush_kern_cache_louis
.
equ
v4wt_flush_kern_cache_louis
,
v4wt_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v6.S
View file @
e3ef0dc6
...
@@ -326,6 +326,9 @@ ENTRY(v6_dma_unmap_area)
...
@@ -326,6 +326,9 @@ ENTRY(v6_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
v6_dma_unmap_area
)
ENDPROC
(
v6_dma_unmap_area
)
.
globl
v6_flush_kern_cache_louis
.
equ
v6_flush_kern_cache_louis
,
v6_flush_kern_cache_all
__INITDATA
__INITDATA
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
...
...
arch/arm/mm/cache-v7.S
View file @
e3ef0dc6
...
@@ -33,6 +33,24 @@ ENTRY(v7_flush_icache_all)
...
@@ -33,6 +33,24 @@ ENTRY(v7_flush_icache_all)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
v7_flush_icache_all
)
ENDPROC
(
v7_flush_icache_all
)
/
*
*
v7_flush_dcache_louis
()
*
*
Flush
the
D
-
cache
up
to
the
Level
of
Unification
Inner
Shareable
*
*
Corrupted
registers
:
r0
-
r7
,
r9
-
r11
(
r6
only
in
Thumb
mode
)
*/
ENTRY
(
v7_flush_dcache_louis
)
dmb
@
ensure
ordering
with
previous
memory
accesses
mrc
p15
,
1
,
r0
,
c0
,
c0
,
1
@
read
clidr
,
r0
=
clidr
ands
r3
,
r0
,
#
0xe00000
@
extract
LoUIS
from
clidr
mov
r3
,
r3
,
lsr
#
20
@
r3
=
LoUIS
*
2
moveq
pc
,
lr
@
return
if
level
==
0
mov
r10
,
#
0
@
r10
(
starting
level
)
=
0
b
flush_levels
@
start
flushing
cache
levels
ENDPROC
(
v7_flush_dcache_louis
)
/*
/*
*
v7_flush_dcache_all
()
*
v7_flush_dcache_all
()
*
*
...
@@ -49,7 +67,7 @@ ENTRY(v7_flush_dcache_all)
...
@@ -49,7 +67,7 @@ ENTRY(v7_flush_dcache_all)
mov
r3
,
r3
,
lsr
#
23
@
left
align
loc
bit
field
mov
r3
,
r3
,
lsr
#
23
@
left
align
loc
bit
field
beq
finished
@
if
loc
is
0
,
then
no
need
to
clean
beq
finished
@
if
loc
is
0
,
then
no
need
to
clean
mov
r10
,
#
0
@
start
clean
at
cache
level
0
mov
r10
,
#
0
@
start
clean
at
cache
level
0
loop1
:
flush_levels
:
add
r2
,
r10
,
r10
,
lsr
#
1
@
work
out
3
x
current
cache
level
add
r2
,
r10
,
r10
,
lsr
#
1
@
work
out
3
x
current
cache
level
mov
r1
,
r0
,
lsr
r2
@
extract
cache
type
bits
from
clidr
mov
r1
,
r0
,
lsr
r2
@
extract
cache
type
bits
from
clidr
and
r1
,
r1
,
#
7
@
mask
of
the
bits
for
current
cache
only
and
r1
,
r1
,
#
7
@
mask
of
the
bits
for
current
cache
only
...
@@ -71,9 +89,9 @@ loop1:
...
@@ -71,9 +89,9 @@ loop1:
clz
r5
,
r4
@
find
bit
position
of
way
size
increment
clz
r5
,
r4
@
find
bit
position
of
way
size
increment
ldr
r7
,
=
0x7fff
ldr
r7
,
=
0x7fff
ands
r7
,
r7
,
r1
,
lsr
#
13
@
extract
max
number
of
the
index
size
ands
r7
,
r7
,
r1
,
lsr
#
13
@
extract
max
number
of
the
index
size
loop
2
:
loop
1
:
mov
r9
,
r4
@
create
working
copy
of
max
way
size
mov
r9
,
r4
@
create
working
copy
of
max
way
size
loop
3
:
loop
2
:
ARM
(
orr
r11
,
r10
,
r9
,
lsl
r5
)
@
factor
way
and
cache
number
into
r11
ARM
(
orr
r11
,
r10
,
r9
,
lsl
r5
)
@
factor
way
and
cache
number
into
r11
THUMB
(
lsl
r6
,
r9
,
r5
)
THUMB
(
lsl
r6
,
r9
,
r5
)
THUMB
(
orr
r11
,
r10
,
r6
)
@
factor
way
and
cache
number
into
r11
THUMB
(
orr
r11
,
r10
,
r6
)
@
factor
way
and
cache
number
into
r11
...
@@ -82,13 +100,13 @@ loop3:
...
@@ -82,13 +100,13 @@ loop3:
THUMB
(
orr
r11
,
r11
,
r6
)
@
factor
index
number
into
r11
THUMB
(
orr
r11
,
r11
,
r6
)
@
factor
index
number
into
r11
mcr
p15
,
0
,
r11
,
c7
,
c14
,
2
@
clean
&
invalidate
by
set
/
way
mcr
p15
,
0
,
r11
,
c7
,
c14
,
2
@
clean
&
invalidate
by
set
/
way
subs
r9
,
r9
,
#
1
@
decrement
the
way
subs
r9
,
r9
,
#
1
@
decrement
the
way
bge
loop3
subs
r7
,
r7
,
#
1
@
decrement
the
index
bge
loop2
bge
loop2
subs
r7
,
r7
,
#
1
@
decrement
the
index
bge
loop1
skip
:
skip
:
add
r10
,
r10
,
#
2
@
increment
cache
number
add
r10
,
r10
,
#
2
@
increment
cache
number
cmp
r3
,
r10
cmp
r3
,
r10
bgt
loop1
bgt
flush_levels
finished
:
finished
:
mov
r10
,
#
0
@
swith
back
to
cache
level
0
mov
r10
,
#
0
@
swith
back
to
cache
level
0
mcr
p15
,
2
,
r10
,
c0
,
c0
,
0
@
select
current
cache
level
in
cssr
mcr
p15
,
2
,
r10
,
c0
,
c0
,
0
@
select
current
cache
level
in
cssr
...
@@ -120,6 +138,24 @@ ENTRY(v7_flush_kern_cache_all)
...
@@ -120,6 +138,24 @@ ENTRY(v7_flush_kern_cache_all)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
v7_flush_kern_cache_all
)
ENDPROC
(
v7_flush_kern_cache_all
)
/
*
*
v7_flush_kern_cache_louis
(
void
)
*
*
Flush
the
data
cache
up
to
Level
of
Unification
Inner
Shareable
.
*
Invalidate
the
I
-
cache
to
the
point
of
unification
.
*/
ENTRY
(
v7_flush_kern_cache_louis
)
ARM
(
stmfd
sp
!,
{
r4
-
r5
,
r7
,
r9
-
r11
,
lr
}
)
THUMB
(
stmfd
sp
!,
{
r4
-
r7
,
r9
-
r11
,
lr
}
)
bl
v7_flush_dcache_louis
mov
r0
,
#
0
ALT_SMP
(
mcr
p15
,
0
,
r0
,
c7
,
c1
,
0
)
@
invalidate
I
-
cache
inner
shareable
ALT_UP
(
mcr
p15
,
0
,
r0
,
c7
,
c5
,
0
)
@
I
+
BTB
cache
invalidate
ARM
(
ldmfd
sp
!,
{
r4
-
r5
,
r7
,
r9
-
r11
,
lr
}
)
THUMB
(
ldmfd
sp
!,
{
r4
-
r7
,
r9
-
r11
,
lr
}
)
mov
pc
,
lr
ENDPROC
(
v7_flush_kern_cache_louis
)
/*
/*
*
v7_flush_cache_all
()
*
v7_flush_cache_all
()
*
*
...
...
arch/arm/mm/proc-arm1020.S
View file @
e3ef0dc6
...
@@ -368,6 +368,9 @@ ENTRY(arm1020_dma_unmap_area)
...
@@ -368,6 +368,9 @@ ENTRY(arm1020_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm1020_dma_unmap_area
)
ENDPROC
(
arm1020_dma_unmap_area
)
.
globl
arm1020_flush_kern_cache_louis
.
equ
arm1020_flush_kern_cache_louis
,
arm1020_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm1020
define_cache_functions
arm1020
...
...
arch/arm/mm/proc-arm1020e.S
View file @
e3ef0dc6
...
@@ -354,6 +354,9 @@ ENTRY(arm1020e_dma_unmap_area)
...
@@ -354,6 +354,9 @@ ENTRY(arm1020e_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm1020e_dma_unmap_area
)
ENDPROC
(
arm1020e_dma_unmap_area
)
.
globl
arm1020e_flush_kern_cache_louis
.
equ
arm1020e_flush_kern_cache_louis
,
arm1020e_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm1020e
define_cache_functions
arm1020e
...
...
arch/arm/mm/proc-arm1022.S
View file @
e3ef0dc6
...
@@ -343,6 +343,9 @@ ENTRY(arm1022_dma_unmap_area)
...
@@ -343,6 +343,9 @@ ENTRY(arm1022_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm1022_dma_unmap_area
)
ENDPROC
(
arm1022_dma_unmap_area
)
.
globl
arm1022_flush_kern_cache_louis
.
equ
arm1022_flush_kern_cache_louis
,
arm1022_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm1022
define_cache_functions
arm1022
...
...
arch/arm/mm/proc-arm1026.S
View file @
e3ef0dc6
...
@@ -337,6 +337,9 @@ ENTRY(arm1026_dma_unmap_area)
...
@@ -337,6 +337,9 @@ ENTRY(arm1026_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm1026_dma_unmap_area
)
ENDPROC
(
arm1026_dma_unmap_area
)
.
globl
arm1026_flush_kern_cache_louis
.
equ
arm1026_flush_kern_cache_louis
,
arm1026_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm1026
define_cache_functions
arm1026
...
...
arch/arm/mm/proc-arm920.S
View file @
e3ef0dc6
...
@@ -319,6 +319,9 @@ ENTRY(arm920_dma_unmap_area)
...
@@ -319,6 +319,9 @@ ENTRY(arm920_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm920_dma_unmap_area
)
ENDPROC
(
arm920_dma_unmap_area
)
.
globl
arm920_flush_kern_cache_louis
.
equ
arm920_flush_kern_cache_louis
,
arm920_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm920
define_cache_functions
arm920
#endif
#endif
...
...
arch/arm/mm/proc-arm922.S
View file @
e3ef0dc6
...
@@ -321,6 +321,9 @@ ENTRY(arm922_dma_unmap_area)
...
@@ -321,6 +321,9 @@ ENTRY(arm922_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm922_dma_unmap_area
)
ENDPROC
(
arm922_dma_unmap_area
)
.
globl
arm922_flush_kern_cache_louis
.
equ
arm922_flush_kern_cache_louis
,
arm922_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm922
define_cache_functions
arm922
#endif
#endif
...
...
arch/arm/mm/proc-arm925.S
View file @
e3ef0dc6
...
@@ -376,6 +376,9 @@ ENTRY(arm925_dma_unmap_area)
...
@@ -376,6 +376,9 @@ ENTRY(arm925_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm925_dma_unmap_area
)
ENDPROC
(
arm925_dma_unmap_area
)
.
globl
arm925_flush_kern_cache_louis
.
equ
arm925_flush_kern_cache_louis
,
arm925_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm925
define_cache_functions
arm925
...
...
arch/arm/mm/proc-arm926.S
View file @
e3ef0dc6
...
@@ -339,6 +339,9 @@ ENTRY(arm926_dma_unmap_area)
...
@@ -339,6 +339,9 @@ ENTRY(arm926_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm926_dma_unmap_area
)
ENDPROC
(
arm926_dma_unmap_area
)
.
globl
arm926_flush_kern_cache_louis
.
equ
arm926_flush_kern_cache_louis
,
arm926_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm926
define_cache_functions
arm926
...
...
arch/arm/mm/proc-arm940.S
View file @
e3ef0dc6
...
@@ -267,6 +267,9 @@ ENTRY(arm940_dma_unmap_area)
...
@@ -267,6 +267,9 @@ ENTRY(arm940_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm940_dma_unmap_area
)
ENDPROC
(
arm940_dma_unmap_area
)
.
globl
arm940_flush_kern_cache_louis
.
equ
arm940_flush_kern_cache_louis
,
arm940_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm940
define_cache_functions
arm940
...
...
arch/arm/mm/proc-arm946.S
View file @
e3ef0dc6
...
@@ -310,6 +310,9 @@ ENTRY(arm946_dma_unmap_area)
...
@@ -310,6 +310,9 @@ ENTRY(arm946_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
arm946_dma_unmap_area
)
ENDPROC
(
arm946_dma_unmap_area
)
.
globl
arm946_flush_kern_cache_louis
.
equ
arm946_flush_kern_cache_louis
,
arm946_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
arm946
define_cache_functions
arm946
...
...
arch/arm/mm/proc-feroceon.S
View file @
e3ef0dc6
...
@@ -415,6 +415,9 @@ ENTRY(feroceon_dma_unmap_area)
...
@@ -415,6 +415,9 @@ ENTRY(feroceon_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
feroceon_dma_unmap_area
)
ENDPROC
(
feroceon_dma_unmap_area
)
.
globl
feroceon_flush_kern_cache_louis
.
equ
feroceon_flush_kern_cache_louis
,
feroceon_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
feroceon
define_cache_functions
feroceon
...
...
arch/arm/mm/proc-macros.S
View file @
e3ef0dc6
...
@@ -299,6 +299,7 @@ ENTRY(\name\()_processor_functions)
...
@@ -299,6 +299,7 @@ ENTRY(\name\()_processor_functions)
ENTRY
(\
name
\()
_cache_fns
)
ENTRY
(\
name
\()
_cache_fns
)
.
long
\
name
\
()
_flush_icache_all
.
long
\
name
\
()
_flush_icache_all
.
long
\
name
\
()
_flush_kern_cache_all
.
long
\
name
\
()
_flush_kern_cache_all
.
long
\
name
\
()
_flush_kern_cache_louis
.
long
\
name
\
()
_flush_user_cache_all
.
long
\
name
\
()
_flush_user_cache_all
.
long
\
name
\
()
_flush_user_cache_range
.
long
\
name
\
()
_flush_user_cache_range
.
long
\
name
\
()
_coherent_kern_range
.
long
\
name
\
()
_coherent_kern_range
...
...
arch/arm/mm/proc-mohawk.S
View file @
e3ef0dc6
...
@@ -303,6 +303,9 @@ ENTRY(mohawk_dma_unmap_area)
...
@@ -303,6 +303,9 @@ ENTRY(mohawk_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
mohawk_dma_unmap_area
)
ENDPROC
(
mohawk_dma_unmap_area
)
.
globl
mohawk_flush_kern_cache_louis
.
equ
mohawk_flush_kern_cache_louis
,
mohawk_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
mohawk
define_cache_functions
mohawk
...
...
arch/arm/mm/proc-v7.S
View file @
e3ef0dc6
...
@@ -172,7 +172,7 @@ __v7_ca15mp_setup:
...
@@ -172,7 +172,7 @@ __v7_ca15mp_setup:
__v7_setup
:
__v7_setup
:
adr
r12
,
__v7_setup_stack
@
the
local
stack
adr
r12
,
__v7_setup_stack
@
the
local
stack
stmia
r12
,
{
r0
-
r5
,
r7
,
r9
,
r11
,
lr
}
stmia
r12
,
{
r0
-
r5
,
r7
,
r9
,
r11
,
lr
}
bl
v7_flush_dcache_all
bl
v7_flush_dcache_louis
ldmia
r12
,
{
r0
-
r5
,
r7
,
r9
,
r11
,
lr
}
ldmia
r12
,
{
r0
-
r5
,
r7
,
r9
,
r11
,
lr
}
mrc
p15
,
0
,
r0
,
c0
,
c0
,
0
@
read
main
ID
register
mrc
p15
,
0
,
r0
,
c0
,
c0
,
0
@
read
main
ID
register
...
...
arch/arm/mm/proc-xsc3.S
View file @
e3ef0dc6
...
@@ -337,6 +337,9 @@ ENTRY(xsc3_dma_unmap_area)
...
@@ -337,6 +337,9 @@ ENTRY(xsc3_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
xsc3_dma_unmap_area
)
ENDPROC
(
xsc3_dma_unmap_area
)
.
globl
xsc3_flush_kern_cache_louis
.
equ
xsc3_flush_kern_cache_louis
,
xsc3_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
xsc3
define_cache_functions
xsc3
...
...
arch/arm/mm/proc-xscale.S
View file @
e3ef0dc6
...
@@ -410,6 +410,9 @@ ENTRY(xscale_dma_unmap_area)
...
@@ -410,6 +410,9 @@ ENTRY(xscale_dma_unmap_area)
mov
pc
,
lr
mov
pc
,
lr
ENDPROC
(
xscale_dma_unmap_area
)
ENDPROC
(
xscale_dma_unmap_area
)
.
globl
xscale_flush_kern_cache_louis
.
equ
xscale_flush_kern_cache_louis
,
xscale_flush_kern_cache_all
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
@
define
struct
cpu_cache_fns
(
see
<
asm
/
cacheflush
.
h
>
and
proc
-
macros
.
S
)
define_cache_functions
xscale
define_cache_functions
xscale
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment