diff options
Diffstat (limited to 'arch/arm/mm/proc-macros.S')
-rw-r--r-- | arch/arm/mm/proc-macros.S | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S index 9e2c89eb2115..b13150052a76 100644 --- a/arch/arm/mm/proc-macros.S +++ b/arch/arm/mm/proc-macros.S | |||
@@ -59,3 +59,15 @@ | |||
59 | .word \ucset | 59 | .word \ucset |
60 | #endif | 60 | #endif |
61 | .endm | 61 | .endm |
62 | |||
63 | /* | ||
64 | * cache_line_size - get the cache line size from the CSIDR register | ||
65 | * (available on ARMv7+). It assumes that the CSSR register was configured | ||
66 | * to access the L1 data cache CSIDR. | ||
67 | */ | ||
68 | .macro dcache_line_size, reg, tmp | ||
69 | mrc p15, 1, \tmp, c0, c0, 0 @ read CSIDR | ||
70 | and \tmp, \tmp, #7 @ cache line size encoding | ||
71 | mov \reg, #16 @ size offset | ||
72 | mov \reg, \reg, lsl \tmp @ actual cache line size | ||
73 | .endm | ||