1 /* 2 * Copyright (c) 2021, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <stdbool.h> 8 9 #include <arch.h> 10 #include <arch_helpers.h> 11 #include <lib/extensions/sys_reg_trace.h> 12 13 void sys_reg_trace_enable(cpu_context_t *ctx) 14 { 15 uint64_t val; 16 17 /* Retrieve CPTR_EL3 value from the given context 'ctx', 18 * and update CPTR_EL3.TTA bit to 0. 19 * This function is called while switching context to NS to 20 * allow system trace register access to NS-EL2 and NS-EL1 21 * when NS-EL2 is implemented but not used. 22 */ 23 val = read_ctx_reg(get_el3state_ctx(ctx), CTX_CPTR_EL3); 24 val &= ~TTA_BIT; 25 write_ctx_reg(get_el3state_ctx(ctx), CTX_CPTR_EL3, val); 26 } 27