xref: /rk3399_ARM-atf/plat/arm/board/fvp/include/plat_macros.S (revision c3cf06f1a3a9b9ee8ac7a0ae505f95c45f7dca84)
13fc4124cSDan Handley/*
2eeb9ff99SJeenu Viswambharan * Copyright (c) 2014-2017, ARM Limited and Contributors. All rights reserved.
33fc4124cSDan Handley *
482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause
53fc4124cSDan Handley */
6*c3cf06f1SAntonio Nino Diaz#ifndef PLAT_MACROS_S
7*c3cf06f1SAntonio Nino Diaz#define PLAT_MACROS_S
83fc4124cSDan Handley
93fc4124cSDan Handley#include <arm_macros.S>
103fc4124cSDan Handley#include <v2m_def.h>
113fc4124cSDan Handley#include "../fvp_def.h"
123fc4124cSDan Handley
133fc4124cSDan Handley	/* ---------------------------------------------
143fc4124cSDan Handley	 * The below required platform porting macro
15eeb9ff99SJeenu Viswambharan	 * prints out relevant GIC registers whenever an
16eeb9ff99SJeenu Viswambharan	 * unhandled exception is taken in BL31.
173fc4124cSDan Handley	 * Clobbers: x0 - x10, x16, x17, sp
183fc4124cSDan Handley	 * ---------------------------------------------
193fc4124cSDan Handley	 */
209ff67fa6SGerald Lejeune	.macro plat_crash_print_regs
213fc4124cSDan Handley	/*
223fc4124cSDan Handley	 * Detect if we're using the base memory map or
233fc4124cSDan Handley	 * the legacy VE memory map
243fc4124cSDan Handley	 */
253fc4124cSDan Handley	mov_imm	x0, (V2M_SYSREGS_BASE + V2M_SYS_ID)
263fc4124cSDan Handley	ldr	w16, [x0]
273fc4124cSDan Handley	/* Extract BLD (12th - 15th bits) from the SYS_ID */
283fc4124cSDan Handley	ubfx	x16, x16, #V2M_SYS_ID_BLD_SHIFT, #4
293fc4124cSDan Handley	/* Check if VE mmap */
303fc4124cSDan Handley	cmp	w16, #BLD_GIC_VE_MMAP
313fc4124cSDan Handley	b.eq	use_ve_mmap
32f14d1886SSoby Mathew	/* Assume Base Cortex mmap */
333fc4124cSDan Handley	mov_imm	x17, BASE_GICC_BASE
343fc4124cSDan Handley	mov_imm	x16, BASE_GICD_BASE
35f14d1886SSoby Mathew	b	print_gic_regs
363fc4124cSDan Handleyuse_ve_mmap:
373fc4124cSDan Handley	mov_imm	x17, VE_GICC_BASE
383fc4124cSDan Handley	mov_imm	x16, VE_GICD_BASE
39f14d1886SSoby Mathewprint_gic_regs:
403fc4124cSDan Handley	arm_print_gic_regs
413fc4124cSDan Handley	.endm
423fc4124cSDan Handley
43*c3cf06f1SAntonio Nino Diaz#endif /* PLAT_MACROS_S */
44