xref: /rk3399_ARM-atf/lib/extensions/debug/debugv8p9.c (revision 83271d5a5aae06c23c59a32c30a0fe83fb82e79f)
1*83271d5aSArvind Ram Prakash /*
2*83271d5aSArvind Ram Prakash  * Copyright (c) 2024, Arm Limited. All rights reserved.
3*83271d5aSArvind Ram Prakash  *
4*83271d5aSArvind Ram Prakash  * SPDX-License-Identifier: BSD-3-Clause
5*83271d5aSArvind Ram Prakash  */
6*83271d5aSArvind Ram Prakash 
7*83271d5aSArvind Ram Prakash #include <arch.h>
8*83271d5aSArvind Ram Prakash #include <arch_features.h>
9*83271d5aSArvind Ram Prakash #include <arch_helpers.h>
10*83271d5aSArvind Ram Prakash #include <lib/extensions/debug_v8p9.h>
11*83271d5aSArvind Ram Prakash 
12*83271d5aSArvind Ram Prakash void debugv8p9_extended_bp_wp_enable(cpu_context_t *ctx)
13*83271d5aSArvind Ram Prakash {
14*83271d5aSArvind Ram Prakash 	el3_state_t *state = get_el3state_ctx(ctx);
15*83271d5aSArvind Ram Prakash 	u_register_t mdcr_el3_val = read_ctx_reg(state, CTX_MDCR_EL3);
16*83271d5aSArvind Ram Prakash 
17*83271d5aSArvind Ram Prakash 	/* When FEAT_Debugv8p9 is implemented:
18*83271d5aSArvind Ram Prakash 	 *
19*83271d5aSArvind Ram Prakash 	 * MDCR_EL3.EBWE: Set to 0b1
20*83271d5aSArvind Ram Prakash 	 * Enables use of additional breakpoints or watchpoints,
21*83271d5aSArvind Ram Prakash 	 * and disables trap to EL3 on accesses to debug register.
22*83271d5aSArvind Ram Prakash 	 */
23*83271d5aSArvind Ram Prakash 
24*83271d5aSArvind Ram Prakash 	mdcr_el3_val |= MDCR_EBWE_BIT;
25*83271d5aSArvind Ram Prakash 	write_ctx_reg(state, CTX_MDCR_EL3, mdcr_el3_val);
26*83271d5aSArvind Ram Prakash }
27