common/sfc_efx/base: separate target EvQ and IRQ config
[dpdk.git] / drivers / common / sfc_efx / base / efx_mcdi.h
index 9dd0a23..70a97ea 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- * Copyright(c) 2019-2020 Xilinx, Inc.
+ * Copyright(c) 2019-2021 Xilinx, Inc.
  * Copyright(c) 2009-2019 Solarflare Communications Inc.
  */
 
@@ -118,6 +118,36 @@ efx_mcdi_raise_exception(
        __in_opt        efx_mcdi_req_t *emrp,
        __in            int rc);
 
+/*
+ * Flags that name portions of extended version information
+ *
+ * The values match their MCDI counterparts.
+ */
+#define        EFX_MCDI_VERSION_BOARD_INFO     (1U << 4)
+
+typedef struct efx_mcdi_version_s {
+       /* Basic version information */
+       uint16_t                emv_version[4];
+       uint32_t                emv_firmware;
+
+       /*
+        * Extended version information
+        *
+        * Valid portions of obtained information are indicated by flags.
+        */
+       uint32_t                emv_flags;
+
+       /* Information valid if emv_flags has EFX_MCDI_VERSION_BOARD_INFO set */
+       efx_nic_board_info_t    emv_board_info;
+} efx_mcdi_version_t;
+
+LIBEFX_INTERNAL
+extern __checkReturn   efx_rc_t
+efx_mcdi_get_version(
+       __in            efx_nic_t *enp,
+       __in            uint32_t flags_req,
+       __out           efx_mcdi_version_t *verp);
+
 typedef enum efx_mcdi_boot_e {
        EFX_MCDI_BOOT_PRIMARY,
        EFX_MCDI_BOOT_SECONDARY,