1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2023, Arm Limited. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef ERRATA_ABI_SVC_H 8*91f16700Schasinglulu #define ERRATA_ABI_SVC_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <lib/smccc.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu #define ARM_EM_VERSION U(0x840000F0) 13*91f16700Schasinglulu #define ARM_EM_FEATURES U(0x840000F1) 14*91f16700Schasinglulu #define ARM_EM_CPU_ERRATUM_FEATURES U(0x840000F2) 15*91f16700Schasinglulu 16*91f16700Schasinglulu /* EM version numbers */ 17*91f16700Schasinglulu #define EM_VERSION_MAJOR (0x1) 18*91f16700Schasinglulu #define EM_VERSION_MINOR (0x0) 19*91f16700Schasinglulu 20*91f16700Schasinglulu /* EM CPU_ERRATUM_FEATURES return codes */ 21*91f16700Schasinglulu #define EM_HIGHER_EL_MITIGATION (3) 22*91f16700Schasinglulu #define EM_NOT_AFFECTED (2) 23*91f16700Schasinglulu #define EM_AFFECTED (1) 24*91f16700Schasinglulu #define EM_SUCCESS (0) 25*91f16700Schasinglulu #define EM_NOT_SUPPORTED (-1) 26*91f16700Schasinglulu #define EM_INVALID_PARAMETERS (-2) 27*91f16700Schasinglulu #define EM_UNKNOWN_ERRATUM (-3) 28*91f16700Schasinglulu 29*91f16700Schasinglulu #if ERRATA_ABI_SUPPORT 30*91f16700Schasinglulu bool is_errata_fid(uint32_t smc_fid); 31*91f16700Schasinglulu #else 32*91f16700Schasinglulu static inline bool is_errata_fid(uint32_t smc_fid) 33*91f16700Schasinglulu { 34*91f16700Schasinglulu return false; 35*91f16700Schasinglulu } 36*91f16700Schasinglulu #endif /* ERRATA_ABI_SUPPORT */ 37*91f16700Schasinglulu uintptr_t errata_abi_smc_handler( 38*91f16700Schasinglulu uint32_t smc_fid, 39*91f16700Schasinglulu u_register_t x1, 40*91f16700Schasinglulu u_register_t x2, 41*91f16700Schasinglulu u_register_t x3, 42*91f16700Schasinglulu u_register_t x4, 43*91f16700Schasinglulu void *cookie, 44*91f16700Schasinglulu void *handle, 45*91f16700Schasinglulu u_register_t flags 46*91f16700Schasinglulu ); 47*91f16700Schasinglulu #endif /* ERRATA_ABI_SVC_H */ 48*91f16700Schasinglulu 49