blob: 9801245bc3d61d2f388ad3603b48fbc91de5cddd [file] [log] [blame]
Arvind Ram Prakashdf0b4262024-08-05 16:11:42 -05001/*
2 * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/* Runtime C routines for errata workarounds and common routines */
8
9#include <arch.h>
10#include <arch_helpers.h>
11#include <cortex_a520.h>
12#include <cortex_x4.h>
13#include <lib/cpus/cpu_ops.h>
14#include <lib/cpus/errata.h>
15
16#if ERRATA_A520_2938996 || ERRATA_X4_2726228
17unsigned int check_if_affected_core(void)
18{
19 uint32_t midr_val = read_midr();
20 long rev_var = cpu_get_rev_var();
21
22 if (EXTRACT_PARTNUM(midr_val) == EXTRACT_PARTNUM(CORTEX_A520_MIDR)) {
23 return check_erratum_cortex_a520_2938996(rev_var);
24 } else if (EXTRACT_PARTNUM(midr_val) == EXTRACT_PARTNUM(CORTEX_X4_MIDR)) {
25 return check_erratum_cortex_x4_2726228(rev_var);
26 }
27
28 return ERRATA_NOT_APPLIES;
29}
30#endif