/* SPDX-License-Identifier: GPL-2.0-or-later */ | |
/* | |
* Copyright 2011 Freescale Semiconductor, Inc. | |
* Copyright 2011 Linaro Ltd. | |
*/ | |
#include <linux/linkage.h> | |
#include <linux/init.h> | |
#include <asm/assembler.h> | |
diag_reg_offset: | |
.word g_diag_reg - . | |
.macro set_diag_reg | |
adr r0, diag_reg_offset | |
ldr r1, [r0] | |
add r1, r1, r0 @ r1 = physical &g_diag_reg | |
ldr r0, [r1] | |
mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register | |
.endm | |
ENTRY(v7_secondary_startup) | |
ARM_BE8(setend be) @ go BE8 if entered LE | |
set_diag_reg | |
b secondary_startup | |
ENDPROC(v7_secondary_startup) |