fw-api: CL 16645516 - update fw common interface files

Change-Id: I36b2683460902be10e42cfc91c937587c3325059
HTT: add H2T MSI_SETUP msg def
CRs-Fixed: 2262693
This commit is contained in:
Sandeep Puligilla
2021-12-11 06:01:24 -08:00
bovenliggende d90ea0a009
commit 75dffb24b3

110
fw/htt.h
Bestand weergeven

@@ -225,9 +225,10 @@
* HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF defs.
* 3.100 Add htt_tx_wbm_completion_v3 def.
* 3.101 Add HTT_UL_OFDMA_USER_INFO_V1_BITMAP defs.
* 3.102 Add HTT_H2T_MSG_TYPE_MSI_SETUP def.
*/
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 101
#define HTT_CURRENT_VERSION_MINOR 102
#define HTT_NUM_TX_FRAG_DESC 1024
@@ -784,6 +785,7 @@ enum htt_h2t_msg_type {
HTT_H2T_SAWF_DEF_QUEUES_MAP_REQ = 0x1c,
HTT_H2T_SAWF_DEF_QUEUES_UNMAP_REQ = 0x1d,
HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
HTT_H2T_MSG_TYPE_MSI_SETUP = 0x1f,
/* keep this last */
HTT_H2T_NUM_MSGS
@@ -4851,6 +4853,112 @@ PREPACK struct htt_wdi_ipa_op_request_t
((_var) |= ((_val) << HTT_WDI_IPA_OP_REQUEST_OP_CODE_S)); \
} while (0)
/*
* @brief host -> target HTT_MSI_SETUP message
*
* MSG_TYPE => HTT_H2T_MSG_TYPE_MSI_SETUP
*
* @details
* After target is booted up, host can send MSI setup message so that
* target sets up HW registers based on setup message.
*
* The message would appear as follows:
* |31 24|23 16|15|14 8|7 0|
* |---------------+-----------------+-----------------+-----------------|
* | reserved | msi_type | pdev_id | msg_type |
* |---------------------------------------------------------------------|
* | msi_addr_lo |
* |---------------------------------------------------------------------|
* | msi_addr_hi |
* |---------------------------------------------------------------------|
* | msi_data |
* |---------------------------------------------------------------------|
*
* The message is interpreted as follows:
* dword0 - b'0:7 - msg_type: This will be set to
* 0x1f (HTT_H2T_MSG_TYPE_MSI_SETUP)
* b'8:15 - pdev_id:
* 0 (for rings at SOC/UMAC level),
* 1/2/3 mac id (for rings at LMAC level)
* b'16:23 - msi_type: identify which msi registers need to be setup
* more details can be got from enum htt_msi_setup_type
* b'24:31 - reserved
* dword8 - b'0:31 - ring_msi_addr_lo: Lower 32bits of MSI cfg address
* dword9 - b'0:31 - ring_msi_addr_hi: Upper 32bits of MSI cfg address
* dword10 - b'0:31 - ring_msi_data: MSI data configured by host
*/
PREPACK struct htt_msi_setup_t {
A_UINT32 msg_type: 8,
pdev_id: 8,
msi_type: 8,
reserved: 8;
A_UINT32 msi_addr_lo;
A_UINT32 msi_addr_hi;
A_UINT32 msi_data;
} POSTPACK;
enum htt_msi_setup_type {
HTT_PPDU_END_MSI_SETUP_TYPE,
/* Insert new types here*/
};
#define HTT_MSI_SETUP_SZ (sizeof(struct htt_msi_setup_t))
#define HTT_MSI_SETUP_PDEV_ID_M 0x0000ff00
#define HTT_MSI_SETUP_PDEV_ID_S 8
#define HTT_MSI_SETUP_PDEV_ID_GET(_var) \
(((_var) & HTT_MSI_SETUP_PDEV_ID_M) >> \
HTT_MSI_SETUP_PDEV_ID_S)
#define HTT_MSI_SETUP_PDEV_ID_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_MSI_SETUP_PDEV_ID, _val); \
((_var) |= ((_val) << HTT_MSI_SETUP_PDEV_ID_S)); \
} while (0)
#define HTT_MSI_SETUP_MSI_TYPE_M 0x00ff0000
#define HTT_MSI_SETUP_MSI_TYPE_S 16
#define HTT_MSI_SETUP_MSI_TYPE_GET(_var) \
(((_var) & HTT_MSI_SETUP_MSI_TYPE_M) >> \
HTT_MSI_SETUP_MSI_TYPE_S)
#define HTT_MSI_SETUP_MSI_TYPE_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_MSI_SETUP_MSI_TYPE, _val); \
((_var) |= ((_val) << HTT_MSI_SETUP_MSI_TYPE_S)); \
} while (0)
#define HTT_MSI_SETUP_MSI_ADDR_LO_M 0xffffffff
#define HTT_MSI_SETUP_MSI_ADDR_LO_S 0
#define HTT_MSI_SETUP_MSI_ADDR_LO_GET(_var) \
(((_var) & HTT_MSI_SETUP_MSI_ADDR_LO_M) >> \
HTT_MSI_SETUP_MSI_ADDR_LO_S)
#define HTT_MSI_SETUP_MSI_ADDR_LO_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_MSI_SETUP_MSI_ADDR_LO, _val); \
((_var) |= ((_val) << HTT_MSI_SETUP_MSI_ADDR_LO_S)); \
} while (0)
#define HTT_MSI_SETUP_MSI_ADDR_HI_M 0xffffffff
#define HTT_MSI_SETUP_MSI_ADDR_HI_S 0
#define HTT_MSI_SETUP_MSI_ADDR_HI_GET(_var) \
(((_var) & HTT_MSI_SETUP_MSI_ADDR_HI_M) >> \
HTT_MSI_SETUP_MSI_ADDR_HI_S)
#define HTT_MSI_SETUP_MSI_ADDR_HI_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_MSI_SETUP_MSI_ADDR_HI, _val); \
((_var) |= ((_val) << HTT_MSI_SETUP_MSI_ADDR_HI_S)); \
} while (0)
#define HTT_MSI_SETUP_MSI_DATA_M 0xffffffff
#define HTT_MSI_SETUP_MSI_DATA_S 0
#define HTT_MSI_SETUP_MSI_DATA_GET(_var) \
(((_var) & HTT_MSI_SETUP_MSI_DATA_M) >> \
HTT_MSI_SETUP_MSI_DATA_S)
#define HTT_MSI_SETUP_MSI_DATA_SET(_var, _val) \
do { \
HTT_CHECK_SET_VAL(HTT_MSI_SETUP_MSI_DATA, _val); \
((_var) |= ((_val) << HTT_MSI_SETUP_MSI_DATA_S)); \
} while (0)
/*
* @brief host -> target HTT_SRING_SETUP message
*