xref: /rk3399_ARM-atf/lib/extensions/brbe/brbe.c (revision cff0d54160643e0e082f7541183b3acc4c71602b)
1 /*
2  * Copyright (c) 2022, Arm Limited. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #include <arch.h>
8 #include <arch_features.h>
9 #include <arch_helpers.h>
10 
11 void brbe_enable(void)
12 {
13 	uint64_t val;
14 
15 	/*
16 	 * MDCR_EL3.SBRBE = 0b01
17 	 *
18 	 * Allows BRBE usage in non-secure world and prohibited in
19 	 * secure world.
20 	 */
21 	val = read_mdcr_el3();
22 	val &= ~(MDCR_SBRBE_MASK << MDCR_SBRBE_SHIFT);
23 	val |= (0x1UL << MDCR_SBRBE_SHIFT);
24 	write_mdcr_el3(val);
25 }
26