| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-or-later */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * linux/arch/arm/mm/proc-arm926.S: MMU functions for ARM926EJ-S |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 1999-2001 ARM Limited |
|---|
| 5 | 6 | * Copyright (C) 2000 Deep Blue Solutions Ltd. |
|---|
| 6 | 7 | * hacked for non-paged-MM by Hyok S. Choi, 2003. |
|---|
| 7 | | - * |
|---|
| 8 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 9 | | - * it under the terms of the GNU General Public License as published by |
|---|
| 10 | | - * the Free Software Foundation; either version 2 of the License, or |
|---|
| 11 | | - * (at your option) any later version. |
|---|
| 12 | | - * |
|---|
| 13 | | - * This program is distributed in the hope that it will be useful, |
|---|
| 14 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|---|
| 15 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|---|
| 16 | | - * GNU General Public License for more details. |
|---|
| 17 | | - * |
|---|
| 18 | | - * You should have received a copy of the GNU General Public License |
|---|
| 19 | | - * along with this program; if not, write to the Free Software |
|---|
| 20 | | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|---|
| 21 | | - * |
|---|
| 22 | 8 | * |
|---|
| 23 | 9 | * These are the low level assembler for performing cache and TLB |
|---|
| 24 | 10 | * functions on the arm926. |
|---|
| .. | .. |
|---|
| 27 | 13 | */ |
|---|
| 28 | 14 | #include <linux/linkage.h> |
|---|
| 29 | 15 | #include <linux/init.h> |
|---|
| 16 | +#include <linux/pgtable.h> |
|---|
| 30 | 17 | #include <asm/assembler.h> |
|---|
| 31 | 18 | #include <asm/hwcap.h> |
|---|
| 32 | 19 | #include <asm/pgtable-hwdef.h> |
|---|
| 33 | | -#include <asm/pgtable.h> |
|---|
| 34 | 20 | #include <asm/page.h> |
|---|
| 35 | 21 | #include <asm/ptrace.h> |
|---|
| 36 | 22 | #include "proc-macros.S" |
|---|
| .. | .. |
|---|
| 145 | 131 | #ifdef CONFIG_CPU_DCACHE_WRITETHROUGH |
|---|
| 146 | 132 | mcr p15, 0, ip, c7, c6, 0 @ invalidate D cache |
|---|
| 147 | 133 | #else |
|---|
| 148 | | -1: mrc p15, 0, r15, c7, c14, 3 @ test,clean,invalidate |
|---|
| 134 | +1: mrc p15, 0, APSR_nzcv, c7, c14, 3 @ test,clean,invalidate |
|---|
| 149 | 135 | bne 1b |
|---|
| 150 | 136 | #endif |
|---|
| 151 | 137 | tst r2, #VM_EXEC |
|---|
| .. | .. |
|---|
| 372 | 358 | mcr p15, 0, ip, c7, c6, 0 @ invalidate D cache |
|---|
| 373 | 359 | #else |
|---|
| 374 | 360 | @ && 'Clean & Invalidate whole DCache' |
|---|
| 375 | | -1: mrc p15, 0, r15, c7, c14, 3 @ test,clean,invalidate |
|---|
| 361 | +1: mrc p15, 0, APSR_nzcv, c7, c14, 3 @ test,clean,invalidate |
|---|
| 376 | 362 | bne 1b |
|---|
| 377 | 363 | #endif |
|---|
| 378 | 364 | mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache |
|---|
| .. | .. |
|---|
| 474 | 460 | |
|---|
| 475 | 461 | .align |
|---|
| 476 | 462 | |
|---|
| 477 | | - .section ".proc.info.init", #alloc |
|---|
| 463 | + .section ".proc.info.init", "a" |
|---|
| 478 | 464 | |
|---|
| 479 | 465 | .type __arm926_proc_info,#object |
|---|
| 480 | 466 | __arm926_proc_info: |
|---|