178ee8d1cSJulian Grajkowski /* SPDX-License-Identifier: BSD-3-Clause */ 2*ded037e6SHareshx Sankar Raj /* Copyright(c) 2007-2025 Intel Corporation */ 378ee8d1cSJulian Grajkowski /** 478ee8d1cSJulian Grajkowski *************************************************************************** 578ee8d1cSJulian Grajkowski * @file icp_sal_versions.h 678ee8d1cSJulian Grajkowski * 778ee8d1cSJulian Grajkowski * @defgroup SalVersions 878ee8d1cSJulian Grajkowski * 978ee8d1cSJulian Grajkowski * @ingroup SalVersions 1078ee8d1cSJulian Grajkowski * 1178ee8d1cSJulian Grajkowski * API and structures definition for obtaining software and hardware versions 1278ee8d1cSJulian Grajkowski * 1378ee8d1cSJulian Grajkowski ***************************************************************************/ 1478ee8d1cSJulian Grajkowski 1578ee8d1cSJulian Grajkowski #ifndef _ICP_SAL_VERSIONS_H_ 1678ee8d1cSJulian Grajkowski #define _ICP_SAL_VERSIONS_H_ 1778ee8d1cSJulian Grajkowski 1878ee8d1cSJulian Grajkowski #define ICP_SAL_VERSIONS_FW_VERSION_SIZE 16 1978ee8d1cSJulian Grajkowski /**< Max length of firmware version string */ 2078ee8d1cSJulian Grajkowski #define ICP_SAL_VERSIONS_SW_VERSION_SIZE 16 2178ee8d1cSJulian Grajkowski /**< Max length of software version string */ 2278ee8d1cSJulian Grajkowski #define ICP_SAL_VERSIONS_MMP_VERSION_SIZE 16 2378ee8d1cSJulian Grajkowski /**< Max length of MMP binary version string */ 2478ee8d1cSJulian Grajkowski #define ICP_SAL_VERSIONS_HW_VERSION_SIZE 4 2578ee8d1cSJulian Grajkowski /**< Max length of hardware version string */ 2678ee8d1cSJulian Grajkowski 2778ee8d1cSJulian Grajkowski /* Part name and number of the accelerator device */ 2878ee8d1cSJulian Grajkowski #define SAL_INFO2_DRIVER_SW_VERSION_MAJ_NUMBER 3 29*ded037e6SHareshx Sankar Raj #define SAL_INFO2_DRIVER_SW_VERSION_MIN_NUMBER 15 3078ee8d1cSJulian Grajkowski #define SAL_INFO2_DRIVER_SW_VERSION_PATCH_NUMBER 0 3178ee8d1cSJulian Grajkowski 3278ee8d1cSJulian Grajkowski /** 3378ee8d1cSJulian Grajkowski ******************************************************************************* 3478ee8d1cSJulian Grajkowski * @ingroup SalVersions 3578ee8d1cSJulian Grajkowski * Structure holding versions information 3678ee8d1cSJulian Grajkowski * 3778ee8d1cSJulian Grajkowski * @description 3878ee8d1cSJulian Grajkowski * This structure stores information about versions of software 3978ee8d1cSJulian Grajkowski * and hardware being run on a particular device. 4078ee8d1cSJulian Grajkowski *****************************************************************************/ 4178ee8d1cSJulian Grajkowski typedef struct icp_sal_dev_version_info_s { 4278ee8d1cSJulian Grajkowski Cpa32U devId; 4378ee8d1cSJulian Grajkowski /**< Number of acceleration device for which this structure holds 4478ee8d1cSJulian Grajkowski * version 4578ee8d1cSJulian Grajkowski * information */ 4678ee8d1cSJulian Grajkowski Cpa8U firmwareVersion[ICP_SAL_VERSIONS_FW_VERSION_SIZE]; 4778ee8d1cSJulian Grajkowski /**< String identifying the version of the firmware associated with 4878ee8d1cSJulian Grajkowski * the device. */ 4978ee8d1cSJulian Grajkowski Cpa8U mmpVersion[ICP_SAL_VERSIONS_MMP_VERSION_SIZE]; 5078ee8d1cSJulian Grajkowski /**< String identifying the version of the MMP binary associated with 5178ee8d1cSJulian Grajkowski * the device. */ 5278ee8d1cSJulian Grajkowski Cpa8U softwareVersion[ICP_SAL_VERSIONS_SW_VERSION_SIZE]; 5378ee8d1cSJulian Grajkowski /**< String identifying the version of the software associated with 5478ee8d1cSJulian Grajkowski * the device. */ 5578ee8d1cSJulian Grajkowski Cpa8U hardwareVersion[ICP_SAL_VERSIONS_HW_VERSION_SIZE]; 5678ee8d1cSJulian Grajkowski /**< String identifying the version of the hardware (stepping and 5778ee8d1cSJulian Grajkowski * revision ID) associated with the device. */ 5878ee8d1cSJulian Grajkowski } icp_sal_dev_version_info_t; 5978ee8d1cSJulian Grajkowski 6078ee8d1cSJulian Grajkowski /** 6178ee8d1cSJulian Grajkowski ******************************************************************************* 6278ee8d1cSJulian Grajkowski * @ingroup SalVersions 6378ee8d1cSJulian Grajkowski * Obtains the version information for a given device 6478ee8d1cSJulian Grajkowski * @description 6578ee8d1cSJulian Grajkowski * This function obtains hardware and software version information 6678ee8d1cSJulian Grajkowski * associated with a given device. 6778ee8d1cSJulian Grajkowski * 6878ee8d1cSJulian Grajkowski * @param[in] accelId ID of the acceleration device for which version 6978ee8d1cSJulian Grajkowski * information is to be obtained. 7078ee8d1cSJulian Grajkowski * @param[out] pVerInfo Pointer to a structure that will hold version 7178ee8d1cSJulian Grajkowski * information 7278ee8d1cSJulian Grajkowski * 7378ee8d1cSJulian Grajkowski * @context 7478ee8d1cSJulian Grajkowski * This function might sleep. It cannot be executed in a context that 7578ee8d1cSJulian Grajkowski * does not permit sleeping. 7678ee8d1cSJulian Grajkowski * @assumptions 7778ee8d1cSJulian Grajkowski * The system has been started 7878ee8d1cSJulian Grajkowski * @sideEffects 7978ee8d1cSJulian Grajkowski * None 8078ee8d1cSJulian Grajkowski * @blocking 8178ee8d1cSJulian Grajkowski * No 8278ee8d1cSJulian Grajkowski * @reentrant 8378ee8d1cSJulian Grajkowski * No 8478ee8d1cSJulian Grajkowski * @threadSafe 8578ee8d1cSJulian Grajkowski * Yes 8678ee8d1cSJulian Grajkowski * 8778ee8d1cSJulian Grajkowski * @return CPA_STATUS_SUCCESS Operation finished successfully 8878ee8d1cSJulian Grajkowski * @return CPA_STATUS_INVALID_PARAM Invalid parameter passed to the function 8978ee8d1cSJulian Grajkowski * @return CPA_STATUS_RESOURCE System resources problem 9078ee8d1cSJulian Grajkowski * @return CPA_STATUS_FAIL Operation failed 9178ee8d1cSJulian Grajkowski * 9278ee8d1cSJulian Grajkowski *****************************************************************************/ 9378ee8d1cSJulian Grajkowski CpaStatus icp_sal_getDevVersionInfo(Cpa32U accelId, 9478ee8d1cSJulian Grajkowski icp_sal_dev_version_info_t *pVerInfo); 9578ee8d1cSJulian Grajkowski 9678ee8d1cSJulian Grajkowski #endif 97