mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-15 22:41:38 +00:00
In upcoming patches the PF driver will add support to change VFs configuration and will need to use PF2GUC_UPDATE_VF_CFG messages. Add necessary definitions to our GuC firmware ABI header. Definitions of the GuC VF Configuration KLVs used by this action are already present in abi/guc_klvs_abi.h Reviewed-by: Piotr Piórkowski <piotr.piorkowski@intel.com> Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240415173937.1287-5-michal.wajdeczko@intel.com
371 lines
22 KiB
C
371 lines
22 KiB
C
/* SPDX-License-Identifier: MIT */
|
|
/*
|
|
* Copyright © 2023 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _ABI_GUC_ACTIONS_SRIOV_ABI_H
|
|
#define _ABI_GUC_ACTIONS_SRIOV_ABI_H
|
|
|
|
#include "guc_communication_ctb_abi.h"
|
|
|
|
/**
|
|
* DOC: GUC2PF_RELAY_FROM_VF
|
|
*
|
|
* This message is used by the GuC firmware to forward a VF2PF `Relay Message`_
|
|
* received from the Virtual Function (VF) driver to this Physical Function (PF)
|
|
* driver.
|
|
*
|
|
* This message is always sent as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_EVENT_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`XE_GUC_ACTION_GUC2PF_RELAY_FROM_VF` = 0x5100 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **VFID** - source VF identifier |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | **RELAY_ID** - VF/PF message ID |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
* | 3 | 31:0 | **RELAY_DATA1** | |
|
|
* +---+-------+-----------------+ |
|
|
* |...| | | [Embedded `Relay Message`_] |
|
|
* +---+-------+-----------------+ |
|
|
* | n | 31:0 | **RELAY_DATAx** | |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
*/
|
|
#define XE_GUC_ACTION_GUC2PF_RELAY_FROM_VF 0x5100
|
|
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_MIN_LEN (GUC_HXG_EVENT_MSG_MIN_LEN + 2u)
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_MAX_LEN \
|
|
(GUC2PF_RELAY_FROM_VF_EVENT_MSG_MIN_LEN + GUC_RELAY_MSG_MAX_LEN)
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_0_MBZ GUC_HXG_EVENT_MSG_0_DATA0
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_1_VFID GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_2_RELAY_ID GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_3_RELAY_DATA1 GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_n_RELAY_DATAx GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2PF_RELAY_FROM_VF_EVENT_MSG_NUM_RELAY_DATA GUC_RELAY_MSG_MAX_LEN
|
|
|
|
/**
|
|
* DOC: PF2GUC_RELAY_TO_VF
|
|
*
|
|
* This H2G message is used by the Physical Function (PF) driver to send embedded
|
|
* VF2PF `Relay Message`_ to the VF.
|
|
*
|
|
* This action message must be sent over CTB as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = `GUC_HXG_TYPE_FAST_REQUEST`_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`XE_GUC_ACTION_PF2GUC_RELAY_TO_VF` = 0x5101 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **VFID** - target VF identifier |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | **RELAY_ID** - VF/PF message ID |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
* | 3 | 31:0 | **RELAY_DATA1** | |
|
|
* +---+-------+-----------------+ |
|
|
* |...| | | [Embedded `Relay Message`_] |
|
|
* +---+-------+-----------------+ |
|
|
* | n | 31:0 | **RELAY_DATAx** | |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
*/
|
|
#define XE_GUC_ACTION_PF2GUC_RELAY_TO_VF 0x5101
|
|
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_MIN_LEN (GUC_HXG_REQUEST_MSG_MIN_LEN + 2u)
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_MAX_LEN \
|
|
(PF2GUC_RELAY_TO_VF_REQUEST_MSG_MIN_LEN + GUC_RELAY_MSG_MAX_LEN)
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_1_VFID GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_2_RELAY_ID GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_3_RELAY_DATA1 GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_n_RELAY_DATAx GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_RELAY_TO_VF_REQUEST_MSG_NUM_RELAY_DATA GUC_RELAY_MSG_MAX_LEN
|
|
|
|
/**
|
|
* DOC: GUC2VF_RELAY_FROM_PF
|
|
*
|
|
* This message is used by the GuC firmware to deliver `Relay Message`_ from the
|
|
* Physical Function (PF) driver to this Virtual Function (VF) driver.
|
|
* See `GuC Relay Communication`_ for details.
|
|
*
|
|
* This message is always sent over CTB.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_EVENT_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`XE_GUC_ACTION_GUC2VF_RELAY_FROM_PF` = 0x5102 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **RELAY_ID** - VF/PF message ID |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
* | 2 | 31:0 | **RELAY_DATA1** | |
|
|
* +---+-------+-----------------+ |
|
|
* |...| | | [Embedded `Relay Message`_] |
|
|
* +---+-------+-----------------+ |
|
|
* | n | 31:0 | **RELAY_DATAx** | |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
*/
|
|
#define XE_GUC_ACTION_GUC2VF_RELAY_FROM_PF 0x5102
|
|
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_MIN_LEN (GUC_HXG_EVENT_MSG_MIN_LEN + 1u)
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_MAX_LEN \
|
|
(GUC2VF_RELAY_FROM_PF_EVENT_MSG_MIN_LEN + GUC_RELAY_MSG_MAX_LEN)
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_0_MBZ GUC_HXG_EVENT_MSG_0_DATA0
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_1_RELAY_ID GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_n_RELAY_DATAx GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2VF_RELAY_FROM_PF_EVENT_MSG_NUM_RELAY_DATA GUC_RELAY_MSG_MAX_LEN
|
|
|
|
/**
|
|
* DOC: VF2GUC_RELAY_TO_PF
|
|
*
|
|
* This message is used by the Virtual Function (VF) drivers to communicate with
|
|
* the Physical Function (PF) driver and send `Relay Message`_ to the PF driver.
|
|
* See `GuC Relay Communication`_ for details.
|
|
*
|
|
* This message must be sent over CTB.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ or GUC_HXG_TYPE_FAST_REQUEST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`XE_GUC_ACTION_VF2GUC_RELAY_TO_PF` = 0x5103 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **RELAY_ID** - VF/PF message ID |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
* | 2 | 31:0 | **RELAY_DATA1** | |
|
|
* +---+-------+-----------------+ |
|
|
* |...| | | [Embedded `Relay Message`_] |
|
|
* +---+-------+-----------------+ |
|
|
* | n | 31:0 | **RELAY_DATAx** | |
|
|
* +---+-------+-----------------+--------------------------------------------+
|
|
*/
|
|
#define XE_GUC_ACTION_VF2GUC_RELAY_TO_PF 0x5103
|
|
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_MIN_LEN (GUC_HXG_REQUEST_MSG_MIN_LEN + 1u)
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_MAX_LEN \
|
|
(VF2GUC_RELAY_TO_PF_REQUEST_MSG_MIN_LEN + GUC_RELAY_MSG_MAX_LEN)
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_1_RELAY_ID GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_n_RELAY_DATAx GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define VF2GUC_RELAY_TO_PF_REQUEST_MSG_NUM_RELAY_DATA GUC_RELAY_MSG_MAX_LEN
|
|
|
|
/**
|
|
* DOC: GUC2PF_VF_STATE_NOTIFY
|
|
*
|
|
* The GUC2PF_VF_STATE_NOTIFY message is used by the GuC to notify PF about change
|
|
* of the VF state.
|
|
*
|
|
* This G2H message is sent as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_EVENT_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | DATA0 = MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`GUC_ACTION_GUC2PF_VF_STATE_NOTIFY` = 0x5106 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | DATA1 = **VFID** - VF identifier |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | DATA2 = **EVENT** - notification event: |
|
|
* | | | |
|
|
* | | | - _`GUC_PF_NOTIFY_VF_ENABLE` = 1 (only if VFID = 0) |
|
|
* | | | - _`GUC_PF_NOTIFY_VF_FLR` = 1 |
|
|
* | | | - _`GUC_PF_NOTIFY_VF_FLR_DONE` = 2 |
|
|
* | | | - _`GUC_PF_NOTIFY_VF_PAUSE_DONE` = 3 |
|
|
* | | | - _`GUC_PF_NOTIFY_VF_FIXUP_DONE` = 4 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*/
|
|
#define GUC_ACTION_GUC2PF_VF_STATE_NOTIFY 0x5106u
|
|
|
|
#define GUC2PF_VF_STATE_NOTIFY_EVENT_MSG_LEN (GUC_HXG_EVENT_MSG_MIN_LEN + 2u)
|
|
#define GUC2PF_VF_STATE_NOTIFY_EVENT_MSG_0_MBZ GUC_HXG_EVENT_MSG_0_DATA0
|
|
#define GUC2PF_VF_STATE_NOTIFY_EVENT_MSG_1_VFID GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC2PF_VF_STATE_NOTIFY_EVENT_MSG_2_EVENT GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC_PF_NOTIFY_VF_ENABLE 1u
|
|
#define GUC_PF_NOTIFY_VF_FLR 1u
|
|
#define GUC_PF_NOTIFY_VF_FLR_DONE 2u
|
|
#define GUC_PF_NOTIFY_VF_PAUSE_DONE 3u
|
|
#define GUC_PF_NOTIFY_VF_FIXUP_DONE 4u
|
|
|
|
/**
|
|
* DOC: PF2GUC_UPDATE_VGT_POLICY
|
|
*
|
|
* This message is used by the PF to set `GuC VGT Policy KLVs`_.
|
|
*
|
|
* This message must be sent as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`GUC_ACTION_PF2GUC_UPDATE_VGT_POLICY` = 0x5502 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **CFG_ADDR_LO** - dword aligned GGTT offset that |
|
|
* | | | represents the start of `GuC VGT Policy KLVs`_ list. |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | **CFG_ADDR_HI** - upper 32 bits of above offset. |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 3 | 31:0 | **CFG_SIZE** - size (in dwords) of the config buffer |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:0 | **COUNT** - number of KLVs successfully applied |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*/
|
|
#define GUC_ACTION_PF2GUC_UPDATE_VGT_POLICY 0x5502u
|
|
|
|
#define PF2GUC_UPDATE_VGT_POLICY_REQUEST_MSG_LEN (GUC_HXG_REQUEST_MSG_MIN_LEN + 3u)
|
|
#define PF2GUC_UPDATE_VGT_POLICY_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0
|
|
#define PF2GUC_UPDATE_VGT_POLICY_REQUEST_MSG_1_CFG_ADDR_LO GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_UPDATE_VGT_POLICY_REQUEST_MSG_2_CFG_ADDR_HI GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_UPDATE_VGT_POLICY_REQUEST_MSG_3_CFG_SIZE GUC_HXG_REQUEST_MSG_n_DATAn
|
|
|
|
#define PF2GUC_UPDATE_VGT_POLICY_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN
|
|
#define PF2GUC_UPDATE_VGT_POLICY_RESPONSE_MSG_0_COUNT GUC_HXG_RESPONSE_MSG_0_DATA0
|
|
|
|
/**
|
|
* DOC: PF2GUC_UPDATE_VF_CFG
|
|
*
|
|
* The `PF2GUC_UPDATE_VF_CFG`_ message is used by PF to provision single VF in GuC.
|
|
*
|
|
* This message must be sent as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`GUC_ACTION_PF2GUC_UPDATE_VF_CFG` = 0x5503 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | **VFID** - identifier of the VF that the KLV |
|
|
* | | | configurations are being applied to |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | **CFG_ADDR_LO** - dword aligned GGTT offset that represents |
|
|
* | | | the start of a list of virtualization related KLV configs |
|
|
* | | | that are to be applied to the VF. |
|
|
* | | | If this parameter is zero, the list is not parsed. |
|
|
* | | | If full configs address parameter is zero and configs_size is|
|
|
* | | | zero associated VF config shall be reset to its default state|
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 3 | 31:0 | **CFG_ADDR_HI** - upper 32 bits of configs address. |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 4 | 31:0 | **CFG_SIZE** - size (in dwords) of the config buffer |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:0 | **COUNT** - number of KLVs successfully applied |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*/
|
|
#define GUC_ACTION_PF2GUC_UPDATE_VF_CFG 0x5503u
|
|
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_LEN (GUC_HXG_REQUEST_MSG_MIN_LEN + 4u)
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_0_MBZ GUC_HXG_REQUEST_MSG_0_DATA0
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_1_VFID GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_2_CFG_ADDR_LO GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_3_CFG_ADDR_HI GUC_HXG_REQUEST_MSG_n_DATAn
|
|
#define PF2GUC_UPDATE_VF_CFG_REQUEST_MSG_4_CFG_SIZE GUC_HXG_REQUEST_MSG_n_DATAn
|
|
|
|
#define PF2GUC_UPDATE_VF_CFG_RESPONSE_MSG_LEN GUC_HXG_RESPONSE_MSG_MIN_LEN
|
|
#define PF2GUC_UPDATE_VF_CFG_RESPONSE_MSG_0_COUNT GUC_HXG_RESPONSE_MSG_0_DATA0
|
|
|
|
/**
|
|
* DOC: PF2GUC_VF_CONTROL
|
|
*
|
|
* The PF2GUC_VF_CONTROL message is used by the PF to trigger VF state change
|
|
* maintained by the GuC.
|
|
*
|
|
* This H2G message must be sent as `CTB HXG Message`_.
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_HOST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_REQUEST_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:16 | DATA0 = MBZ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 15:0 | ACTION = _`GUC_ACTION_PF2GUC_VF_CONTROL_CMD` = 0x5506 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 1 | 31:0 | DATA1 = **VFID** - VF identifier |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | 2 | 31:0 | DATA2 = **COMMAND** - control command: |
|
|
* | | | |
|
|
* | | | - _`GUC_PF_TRIGGER_VF_PAUSE` = 1 |
|
|
* | | | - _`GUC_PF_TRIGGER_VF_RESUME` = 2 |
|
|
* | | | - _`GUC_PF_TRIGGER_VF_STOP` = 3 |
|
|
* | | | - _`GUC_PF_TRIGGER_VF_FLR_START` = 4 |
|
|
* | | | - _`GUC_PF_TRIGGER_VF_FLR_FINISH` = 5 |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*
|
|
* +---+-------+--------------------------------------------------------------+
|
|
* | | Bits | Description |
|
|
* +===+=======+==============================================================+
|
|
* | 0 | 31 | ORIGIN = GUC_HXG_ORIGIN_GUC_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 30:28 | TYPE = GUC_HXG_TYPE_RESPONSE_SUCCESS_ |
|
|
* | +-------+--------------------------------------------------------------+
|
|
* | | 27:0 | DATA0 = MBZ |
|
|
* +---+-------+--------------------------------------------------------------+
|
|
*/
|
|
#define GUC_ACTION_PF2GUC_VF_CONTROL 0x5506u
|
|
|
|
#define PF2GUC_VF_CONTROL_REQUEST_MSG_LEN (GUC_HXG_EVENT_MSG_MIN_LEN + 2u)
|
|
#define PF2GUC_VF_CONTROL_REQUEST_MSG_0_MBZ GUC_HXG_EVENT_MSG_0_DATA0
|
|
#define PF2GUC_VF_CONTROL_REQUEST_MSG_1_VFID GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define PF2GUC_VF_CONTROL_REQUEST_MSG_2_COMMAND GUC_HXG_EVENT_MSG_n_DATAn
|
|
#define GUC_PF_TRIGGER_VF_PAUSE 1u
|
|
#define GUC_PF_TRIGGER_VF_RESUME 2u
|
|
#define GUC_PF_TRIGGER_VF_STOP 3u
|
|
#define GUC_PF_TRIGGER_VF_FLR_START 4u
|
|
#define GUC_PF_TRIGGER_VF_FLR_FINISH 5u
|
|
|
|
#endif
|