| .. | .. |
|---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * linux/arch/arm/mm/proc-v7.S |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright (C) 2001 Deep Blue Solutions Ltd. |
|---|
| 5 | | - * |
|---|
| 6 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 7 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 8 | | - * published by the Free Software Foundation. |
|---|
| 9 | 6 | * |
|---|
| 10 | 7 | * This is the "shell" of the ARMv7 processor support. |
|---|
| 11 | 8 | */ |
|---|
| 12 | 9 | #include <linux/arm-smccc.h> |
|---|
| 13 | 10 | #include <linux/init.h> |
|---|
| 14 | 11 | #include <linux/linkage.h> |
|---|
| 12 | +#include <linux/pgtable.h> |
|---|
| 15 | 13 | #include <asm/assembler.h> |
|---|
| 16 | 14 | #include <asm/asm-offsets.h> |
|---|
| 17 | 15 | #include <asm/hwcap.h> |
|---|
| 18 | 16 | #include <asm/pgtable-hwdef.h> |
|---|
| 19 | | -#include <asm/pgtable.h> |
|---|
| 20 | 17 | #include <asm/memory.h> |
|---|
| 21 | 18 | |
|---|
| 22 | 19 | #include "proc-macros.S" |
|---|
| .. | .. |
|---|
| 392 | 389 | orr r10, r10, #1 << 24 @ set bit #24 |
|---|
| 393 | 390 | mcr p15, 0, r10, c15, c0, 1 @ write diagnostic register |
|---|
| 394 | 391 | #endif |
|---|
| 392 | +#ifdef CONFIG_ARM_ERRATA_857271 |
|---|
| 393 | + mrc p15, 0, r10, c15, c0, 1 @ read diagnostic register |
|---|
| 394 | + orr r10, r10, #3 << 10 @ set bits #10 and #11 |
|---|
| 395 | + mcr p15, 0, r10, c15, c0, 1 @ write diagnostic register |
|---|
| 396 | +#endif |
|---|
| 395 | 397 | b __errata_finish |
|---|
| 396 | 398 | |
|---|
| 397 | 399 | __ca17_errata: |
|---|
| .. | .. |
|---|
| 406 | 408 | mrcle p15, 0, r10, c15, c0, 1 @ read diagnostic register |
|---|
| 407 | 409 | orrle r10, r10, #1 << 12 @ set bit #12 |
|---|
| 408 | 410 | mcrle p15, 0, r10, c15, c0, 1 @ write diagnostic register |
|---|
| 411 | +#endif |
|---|
| 412 | +#ifdef CONFIG_ARM_ERRATA_857272 |
|---|
| 413 | + mrc p15, 0, r10, c15, c0, 1 @ read diagnostic register |
|---|
| 414 | + orr r10, r10, #3 << 10 @ set bits #10 and #11 |
|---|
| 415 | + mcr p15, 0, r10, c15, c0, 1 @ write diagnostic register |
|---|
| 409 | 416 | #endif |
|---|
| 410 | 417 | b __errata_finish |
|---|
| 411 | 418 | |
|---|
| .. | .. |
|---|
| 637 | 644 | string cpu_elf_name, "v7" |
|---|
| 638 | 645 | .align |
|---|
| 639 | 646 | |
|---|
| 640 | | - .section ".proc.info.init", #alloc |
|---|
| 647 | + .section ".proc.info.init", "a" |
|---|
| 641 | 648 | |
|---|
| 642 | 649 | /* |
|---|
| 643 | 650 | * Standard v7 proc info content |
|---|