xref: /freebsd/sys/dev/qat/qat_api/include/icp_sal_versions.h (revision ded037e65e5239671b1292ec987a2e0894b217b5)
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