xref: /rk3399_ARM-atf/plat/arm/board/common/aarch64/board_arm_helpers.S (revision 9f0f203d7e180480e95f5a261125a96dee1d65e4)
1b4315306SDan Handley/*
2b4315306SDan Handley * Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
3b4315306SDan Handley *
482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause
5b4315306SDan Handley */
609d40e0eSAntonio Nino Diaz
7b4315306SDan Handley#include <asm_macros.S>
809d40e0eSAntonio Nino Diaz#include <common/bl_common.h>
9*234bc7f8SAntonio Nino Diaz#include <platform_def.h>
10b4315306SDan Handley
11b4315306SDan Handley	.globl  plat_report_exception
12b4315306SDan Handley
13b4315306SDan Handley
14b4315306SDan Handley	/* ---------------------------------------------
15b4315306SDan Handley	 * void plat_report_exception(unsigned int type)
16b4315306SDan Handley	 * Function to report an unhandled exception
17b4315306SDan Handley	 * with platform-specific means.
18b4315306SDan Handley	 * On FVP platform, it updates the LEDs
19b4315306SDan Handley	 * to indicate where we are
20b4315306SDan Handley	 * ---------------------------------------------
21b4315306SDan Handley	 */
22b4315306SDan Handleyfunc plat_report_exception
23b4315306SDan Handley	mrs	x1, CurrentEl
24b4315306SDan Handley	lsr	x1, x1, #MODE_EL_SHIFT
25b4315306SDan Handley	lsl	x1, x1, #V2M_SYS_LED_EL_SHIFT
26b4315306SDan Handley	lsl	x0, x0, #V2M_SYS_LED_EC_SHIFT
27b4315306SDan Handley	mov	x2, #(SECURE << V2M_SYS_LED_SS_SHIFT)
28b4315306SDan Handley	orr	x0, x0, x2
29b4315306SDan Handley	orr	x0, x0, x1
30b4315306SDan Handley	mov	x1, #V2M_SYSREGS_BASE
31b4315306SDan Handley	add	x1, x1, #V2M_SYS_LED
32b4315306SDan Handley	str	w0, [x1]
33b4315306SDan Handley	ret
34b4315306SDan Handleyendfunc plat_report_exception
35