File: brbe.c

package info (click to toggle)
arm-trusted-firmware 2.8.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bookworm-proposed-updates
  • size: 34,708 kB
  • sloc: ansic: 373,544; asm: 29,383; makefile: 1,912; python: 621; javascript: 136; sh: 33
file content (27 lines) | stat: -rw-r--r-- 516 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
 * Copyright (c) 2022, Arm Limited. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <arch.h>
#include <arch_features.h>
#include <arch_helpers.h>

void brbe_enable(void)
{
	uint64_t val;

	if (is_feat_brbe_present()) {
		/*
		 * MDCR_EL3.SBRBE = 0b01
		 *
		 * Allows BRBE usage in non-secure world and prohibited in
		 * secure world.
		 */
		val = read_mdcr_el3();
		val &= ~(MDCR_SBRBE_MASK << MDCR_SBRBE_SHIFT);
		val |= (0x1UL << MDCR_SBRBE_SHIFT);
		write_mdcr_el3(val);
	}
}