xref: /rk3399_ARM-atf/include/plat/marvell/armada/common/aarch64/cci_macros.S (revision 9935047b2086faa3bf3ccf0b95a76510eb5a160b)
1*a2847172SGrzegorz Jaszczyk/*
2*a2847172SGrzegorz Jaszczyk * Copyright (C) 2018 Marvell International Ltd.
3*a2847172SGrzegorz Jaszczyk *
4*a2847172SGrzegorz Jaszczyk * SPDX-License-Identifier:     BSD-3-Clause
5*a2847172SGrzegorz Jaszczyk * https://spdx.org/licenses
6*a2847172SGrzegorz Jaszczyk */
7*a2847172SGrzegorz Jaszczyk
8*a2847172SGrzegorz Jaszczyk#ifndef CCI_MACROS_S
9*a2847172SGrzegorz Jaszczyk#define CCI_MACROS_S
10*a2847172SGrzegorz Jaszczyk
11*a2847172SGrzegorz Jaszczyk#include <drivers/arm/cci.h>
12*a2847172SGrzegorz Jaszczyk#include <platform_def.h>
13*a2847172SGrzegorz Jaszczyk
14*a2847172SGrzegorz Jaszczyk.section .rodata.cci_reg_name, "aS"
15*a2847172SGrzegorz Jaszczykcci_iface_regs:
16*a2847172SGrzegorz Jaszczyk	.asciz "cci_snoop_ctrl_cluster0", "cci_snoop_ctrl_cluster1" , ""
17*a2847172SGrzegorz Jaszczyk
18*a2847172SGrzegorz Jaszczyk	/* ------------------------------------------------
19*a2847172SGrzegorz Jaszczyk	 * The below required platform porting macro prints
20*a2847172SGrzegorz Jaszczyk	 * out relevant interconnect registers whenever an
21*a2847172SGrzegorz Jaszczyk	 * unhandled exception is taken in BL31.
22*a2847172SGrzegorz Jaszczyk	 * Clobbers: x0 - x9, sp
23*a2847172SGrzegorz Jaszczyk	 * ------------------------------------------------
24*a2847172SGrzegorz Jaszczyk	 */
25*a2847172SGrzegorz Jaszczyk	.macro print_cci_regs
26*a2847172SGrzegorz Jaszczyk	adr	x6, cci_iface_regs
27*a2847172SGrzegorz Jaszczyk	/* Store in x7 the base address of the first interface */
28*a2847172SGrzegorz Jaszczyk	mov_imm	x7, (PLAT_MARVELL_CCI_BASE + SLAVE_IFACE_OFFSET(	\
29*a2847172SGrzegorz Jaszczyk			PLAT_MARVELL_CCI_CLUSTER0_SL_IFACE_IX))
30*a2847172SGrzegorz Jaszczyk	ldr	w8, [x7, #SNOOP_CTRL_REG]
31*a2847172SGrzegorz Jaszczyk	/* Store in x7 the base address of the second interface */
32*a2847172SGrzegorz Jaszczyk	mov_imm	x7, (PLAT_MARVELL_CCI_BASE + SLAVE_IFACE_OFFSET(	\
33*a2847172SGrzegorz Jaszczyk			PLAT_MARVELL_CCI_CLUSTER1_SL_IFACE_IX))
34*a2847172SGrzegorz Jaszczyk	ldr	w9, [x7, #SNOOP_CTRL_REG]
35*a2847172SGrzegorz Jaszczyk	/* Store to the crash buf and print to console */
36*a2847172SGrzegorz Jaszczyk	bl	str_in_crash_buf_print
37*a2847172SGrzegorz Jaszczyk	.endm
38*a2847172SGrzegorz Jaszczyk
39*a2847172SGrzegorz Jaszczyk#endif /* CCI_MACROS_S */
40