Lines Matching +full:non +full:- +full:armv7

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * linux/arch/arm/mm/proc-v7.S
7 * This is the "shell" of the ARMv7 processor support.
9 #include <linux/arm-smccc.h>
15 #include <asm/asm-offsets.h>
17 #include <asm/pgtable-hwdef.h>
20 #include "proc-macros.S"
23 #include "proc-v7-3level.S"
25 #include "proc-v7-2level.S"
28 .arch armv7-a
49 * - loc - location to jump to for soft reset
50 * - hyp - indicate if restart occurs in HYP mode
79 dsb @ WFI may enter a low-power mode
100 stmfd sp!, {r0 - r3}
104 ldmfd sp!, {r0 - r3}
109 stmfd sp!, {r0 - r3}
113 ldmfd sp!, {r0 - r3}
129 string cpu_v7_name, "ARMv7 Processor"
132 /* Suspend/resume support: derived from arch/arm/mach-s5pv210/sleep.S */
137 stmfd sp!, {r4 - r11, lr}
140 stmia r0!, {r4 - r5}
152 mrc p15, 0, r10, c1, c0, 2 @ Co-processor access control
153 stmia r0, {r5 - r11}
154 ldmfd sp!, {r4 - r11, pc}
161 ldmia r0!, {r4 - r5}
164 ldmia r0, {r5 - r11}
186 mcr p15, 0, r10, c1, c0, 2 @ Co-processor access control
198 stmfd sp!, {r4 - r5}
201 stmia r0!, {r4 - r5}
202 ldmfd sp!, {r4 - r5}
207 ldmia r0!, {r4 - r5}
226 dsb @ WFI may enter a low-power mode
237 stmfd sp!, {r6 - r10}
238 mrc p15, 1, r6, c15, c1, 0 @ save CP15 - extra features
239 mrc p15, 1, r7, c15, c2, 0 @ save CP15 - Aux Func Modes Ctrl 0
240 mrc p15, 1, r8, c15, c1, 2 @ save CP15 - Aux Debug Modes Ctrl 2
241 mrc p15, 1, r9, c15, c1, 1 @ save CP15 - Aux Debug Modes Ctrl 1
242 mrc p15, 0, r10, c9, c14, 0 @ save CP15 - PMC
243 stmia r0!, {r6 - r10}
244 ldmfd sp!, {r6 - r10}
249 ldmia r0!, {r6 - r10}
250 mcr p15, 1, r6, c15, c1, 0 @ restore CP15 - extra features
251 mcr p15, 1, r7, c15, c2, 0 @ restore CP15 - Aux Func Modes Ctrl 0
252 mcr p15, 1, r8, c15, c1, 2 @ restore CP15 - Aux Debug Modes Ctrl 2
253 mcr p15, 1, r9, c15, c1, 1 @ restore CP15 - Aux Debug Modes Ctrl 1
254 mcr p15, 0, r10, c9, c14, 0 @ restore CP15 - PMC
271 bl v7_invalidate_l1 @ corrupts {r0-r3, ip, lr}
283 * r1, r2, r4, r5, r9, r13 must be preserved - r13 is not a stack
289 * This should be able to cover all ARMv7 cores.
292 * - cache type register is implemented
323 * r3: contains MIDR rX number in bits 23-20
324 * r6: contains MIDR rXpY as 8-bit XY number
446 #define PJ4B_OUTSDNG_NC (1 << 29) /* Disable outstanding non cacheable rqst */
447 #define PJ4B_L1_REP_RR (1 << 30) /* L1 replacement - Strict round robin */
457 #define PJ4B_WFI_WFE (1 << 22) /* WFI/WFE - serve the DVM and back to idle */
497 orr r6, r6, r3, lsr #20-4 @ combine variant and revision
500 /* Cortex-A8 Errata */
501 ldr r10, =0x00000c08 @ Cortex-A8 primary part number
505 /* Cortex-A9 Errata */
506 ldr r10, =0x00000c09 @ Cortex-A9 primary part number
510 /* Cortex-A12 Errata */
511 ldr r10, =0x00000c0d @ Cortex-A12 primary part number
515 /* Cortex-A17 Errata */
516 ldr r10, =0x00000c0e @ Cortex-A17 primary part number
520 /* Cortex-A15 Errata */
521 ldr r10, =0x00000c0f @ Cortex-A15 primary part number
551 ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables
567 @ define struct processor (see <asm/proc-fns.h> and proc-macros.S)
591 @ Cortex-A8 - always needs bpiall switch_mm implementation
606 @ Cortex-A9 - needs more registers preserved across suspend/resume
622 @ Cortex-A15 - needs iciallu switch_mm for hardening
644 string cpu_arch_name, "armv7"
681 .size __v7_ca5mp_proc_info, . - __v7_ca5mp_proc_info
691 .size __v7_ca9mp_proc_info, . - __v7_ca9mp_proc_info
701 .size __v7_ca8_proc_info, . - __v7_ca8_proc_info
714 .size __v7_pj4b_proc_info, . - __v7_pj4b_proc_info
725 .size __v7_cr7mp_proc_info, . - __v7_cr7mp_proc_info
735 .size __v7_cr8mp_proc_info, . - __v7_cr8mp_proc_info
745 .size __v7_ca7mp_proc_info, . - __v7_ca7mp_proc_info
755 .size __v7_ca12mp_proc_info, . - __v7_ca12mp_proc_info
765 .size __v7_ca15mp_proc_info, . - __v7_ca15mp_proc_info
768 * Broadcom Corporation Brahma-B15 processor.
775 .size __v7_b15mp_proc_info, . - __v7_b15mp_proc_info
785 .size __v7_ca17mp_proc_info, . - __v7_ca17mp_proc_info
793 .size __v7_ca73_proc_info, . - __v7_ca73_proc_info
801 .size __v7_ca75_proc_info, . - __v7_ca75_proc_info
817 .size __krait_proc_info, . - __krait_proc_info
820 * Match any ARMv7 processor core.
827 .size __v7_proc_info, . - __v7_proc_info