blob: 1982619b7c92120055a1d3d13fa86e2eda5fcaeb [file] [log] [blame]
johpow0181865962022-01-28 17:06:20 -06001/*
2 * Copyright (c) 2022, Arm Limited. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#include <arch.h>
Jayanth Dodderi Chidanand69316752022-05-09 12:33:03 +01008#include <arch_features.h>
johpow0181865962022-01-28 17:06:20 -06009#include <arch_helpers.h>
10
johpow0181865962022-01-28 17:06:20 -060011void brbe_enable(void)
12{
13 uint64_t val;
14
Jayanth Dodderi Chidanand69316752022-05-09 12:33:03 +010015 if (is_feat_brbe_present()) {
johpow0181865962022-01-28 17:06:20 -060016 /*
17 * MDCR_EL3.SBRBE = 0b01
18 *
19 * Allows BRBE usage in non-secure world and prohibited in
20 * secure world.
21 */
22 val = read_mdcr_el3();
23 val &= ~(MDCR_SBRBE_MASK << MDCR_SBRBE_SHIFT);
24 val |= (0x1UL << MDCR_SBRBE_SHIFT);
25 write_mdcr_el3(val);
26 }
27}