1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0-or-later */ 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Copyright 2011 Freescale Semiconductor, Inc. 4*4882a593Smuzhiyun * Copyright 2011 Linaro Ltd. 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun#include <linux/linkage.h> 8*4882a593Smuzhiyun#include <linux/init.h> 9*4882a593Smuzhiyun#include <asm/assembler.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyundiag_reg_offset: 12*4882a593Smuzhiyun .word g_diag_reg - . 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun .macro set_diag_reg 15*4882a593Smuzhiyun adr r0, diag_reg_offset 16*4882a593Smuzhiyun ldr r1, [r0] 17*4882a593Smuzhiyun add r1, r1, r0 @ r1 = physical &g_diag_reg 18*4882a593Smuzhiyun ldr r0, [r1] 19*4882a593Smuzhiyun mcr p15, 0, r0, c15, c0, 1 @ write diagnostic register 20*4882a593Smuzhiyun .endm 21*4882a593Smuzhiyun 22*4882a593SmuzhiyunENTRY(v7_secondary_startup) 23*4882a593SmuzhiyunARM_BE8(setend be) @ go BE8 if entered LE 24*4882a593Smuzhiyun set_diag_reg 25*4882a593Smuzhiyun b secondary_startup 26*4882a593SmuzhiyunENDPROC(v7_secondary_startup) 27