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:
110
fw/htt.h
110
fw/htt.h
@@ -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
|
||||
*
|
||||
|
Verwijs in nieuw issue
Block a user