785 lines
20 KiB
C
785 lines
20 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* Copyright (C) 202X Original Author (retain original author information)
|
|
* Copyright (C) 202X Amlogic, Inc. All rights reserved.
|
|
*
|
|
* Description:
|
|
*/
|
|
#ifndef DRI_TEST_CMD
|
|
#define DRI_TEST_CMD
|
|
|
|
#include "fi_sdio.h"
|
|
|
|
#define TSSI_5G_CAL_NUM 4
|
|
|
|
typedef struct W2_EFUSE_PARAM
|
|
{
|
|
unsigned char customer_efuse_en;
|
|
unsigned char FT_efuse_en;
|
|
unsigned char xosc_ctune_vld;
|
|
|
|
unsigned char absolute_power_wf0_2g_vld;
|
|
unsigned char absolute_power_wf0_5g_vld;
|
|
unsigned char absolute_power_wf1_2g_vld;
|
|
unsigned char absolute_power_wf1_5g_vld;
|
|
|
|
unsigned char offset_power_wf0_2g_vld;
|
|
unsigned char offset_power_wf0_5g_vld;
|
|
unsigned char offset_power_wf1_2g_vld;
|
|
unsigned char offset_power_wf1_5g_vld;
|
|
|
|
unsigned char pwr_delta_wf0_customer_vld;
|
|
unsigned char pwr_delta_wf1_customer_vld;
|
|
|
|
unsigned char xosc_ctune;
|
|
|
|
unsigned char absolute_power_wf0_2g_l;
|
|
unsigned char absolute_power_wf0_2g_m;
|
|
unsigned char absolute_power_wf0_2g_h;
|
|
unsigned char absolute_power_wf0_5200;
|
|
unsigned char absolute_power_wf0_5300;
|
|
unsigned char absolute_power_wf0_5530;
|
|
unsigned char absolute_power_wf0_5660;
|
|
unsigned char absolute_power_wf0_5780;
|
|
|
|
unsigned char absolute_power_wf1_2g_l;
|
|
unsigned char absolute_power_wf1_2g_m;
|
|
unsigned char absolute_power_wf1_2g_h;
|
|
unsigned char absolute_power_wf1_5200;
|
|
unsigned char absolute_power_wf1_5300;
|
|
unsigned char absolute_power_wf1_5530;
|
|
unsigned char absolute_power_wf1_5660;
|
|
unsigned char absolute_power_wf1_5780;
|
|
|
|
unsigned char offset_power_wf0_2g_l;
|
|
unsigned char offset_power_wf0_2g_m;
|
|
unsigned char offset_power_wf0_2g_h;
|
|
unsigned char offset_power_wf0_5200;
|
|
unsigned char offset_power_wf0_5300;
|
|
unsigned char offset_power_wf0_5530;
|
|
unsigned char offset_power_wf0_5660;
|
|
unsigned char offset_power_wf0_5780;
|
|
|
|
unsigned char offset_power_wf1_2g_l;
|
|
unsigned char offset_power_wf1_2g_m;
|
|
unsigned char offset_power_wf1_2g_h;
|
|
unsigned char offset_power_wf1_5200;
|
|
unsigned char offset_power_wf1_5300;
|
|
unsigned char offset_power_wf1_5530;
|
|
unsigned char offset_power_wf1_5660;
|
|
unsigned char offset_power_wf1_5780;
|
|
|
|
unsigned char second_offset_power_wf0_2g_l;
|
|
unsigned char second_offset_power_wf0_2g_m;
|
|
unsigned char second_offset_power_wf0_2g_h;
|
|
unsigned char second_offset_power_wf0_5200;
|
|
unsigned char second_offset_power_wf0_5300;
|
|
unsigned char second_offset_power_wf0_5530;
|
|
unsigned char second_offset_power_wf0_5660;
|
|
unsigned char second_offset_power_wf0_5780;
|
|
|
|
unsigned char second_offset_power_wf1_2g_l;
|
|
unsigned char second_offset_power_wf1_2g_m;
|
|
unsigned char second_offset_power_wf1_2g_h;
|
|
unsigned char second_offset_power_wf1_5200;
|
|
unsigned char second_offset_power_wf1_5300;
|
|
unsigned char second_offset_power_wf1_5530;
|
|
unsigned char second_offset_power_wf1_5660;
|
|
unsigned char second_offset_power_wf1_5780;
|
|
|
|
unsigned char txt_shift_value_wf0_2g_l;
|
|
unsigned char txt_shift_value_wf0_2g_m;
|
|
unsigned char txt_shift_value_wf0_2g_h;
|
|
unsigned char txt_shift_value_wf0_5200;
|
|
unsigned char txt_shift_value_wf0_5300;
|
|
unsigned char txt_shift_value_wf0_5530;
|
|
unsigned char txt_shift_value_wf0_5660;
|
|
unsigned char txt_shift_value_wf0_5780;
|
|
|
|
unsigned char txt_shift_value_wf1_2g_l;
|
|
unsigned char txt_shift_value_wf1_2g_m;
|
|
unsigned char txt_shift_value_wf1_2g_h;
|
|
unsigned char txt_shift_value_wf1_5200;
|
|
unsigned char txt_shift_value_wf1_5300;
|
|
unsigned char txt_shift_value_wf1_5530;
|
|
unsigned char txt_shift_value_wf1_5660;
|
|
unsigned char txt_shift_value_wf1_5780;
|
|
|
|
unsigned char pmu_efuse_en;
|
|
|
|
unsigned char rg_pmu_bucka_efuse_trim_i_osc_vld;
|
|
unsigned char rg_pmu_bucka_rsv3_vld;
|
|
unsigned char rg_pmu_buckd_efuse_trim_i_osc_vld;
|
|
unsigned char rg_pmu_buckd_efuse_trim_offset_vref_vld;
|
|
unsigned char rg_aoldo_vosel_vld;
|
|
unsigned char rg_strup_rsva_vld;
|
|
unsigned char rg_ao_hifldo_vosel_vld;
|
|
unsigned char rg_aldo_vo_adj_vld;
|
|
unsigned char rg_bg_tc_adj_vld;
|
|
unsigned char rg_pmu_32k_adj_vld;
|
|
unsigned char rg_pmu_bucka_efuse_trim_iref_vlreg_vld;
|
|
unsigned char rg_pmu_bucka_efuse_trim_iref_vhreg_vld;
|
|
unsigned char rg_pmu_buckd_ton_min_trim_vld;
|
|
unsigned char rg_pmu_buckd_cs_gain_ramp_vld;
|
|
unsigned char rg_pmu_buckd_vsel_vh_vld;
|
|
unsigned char rg_pmu_buckd_capslp_ramp_vld;
|
|
|
|
unsigned char rg_pmu_bucka_efuse_trim_i_osc;
|
|
unsigned char rg_pmu_bucka_rsv3;
|
|
unsigned char rg_pmu_buckd_efuse_trim_i_osc;
|
|
unsigned char rg_pmu_buckd_efuse_trim_offset_vref;
|
|
unsigned char rg_aoldo_vosel;
|
|
unsigned char rg_strup_rsva;
|
|
unsigned char rg_ao_hifldo_vosel;
|
|
unsigned char rg_aldo_vo_adj;
|
|
unsigned char rg_bg_tc_adj;
|
|
unsigned char rg_pmu_bucka_efuse_trim_slp_csp;
|
|
unsigned char rg_pmu_bucka_efuse_trim_iref_vlreg;
|
|
unsigned char rg_pmu_bucka_efuse_trim_iref_vhreg;
|
|
unsigned char rg_pmu_buckd_ton_min_trim;
|
|
unsigned char rg_pmu_buckd_cs_gain_ramp;
|
|
unsigned char rg_pmu_buckd_vsel_vh;
|
|
unsigned char rg_pmu_buckd_capslp_ramp;
|
|
unsigned char rg_pmu_32k_adj;
|
|
}W2_EFUSE_PARAM;
|
|
|
|
typedef struct Cali_Param
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char version;
|
|
unsigned short cali_config;
|
|
unsigned char freq_offset;
|
|
unsigned char htemp_freq_offset;
|
|
unsigned char tssi_2g_offset;
|
|
unsigned char tssi_5g_offset[TSSI_5G_CAL_NUM];
|
|
unsigned char wf2g_spur_rmen;
|
|
unsigned short spur_freq;
|
|
unsigned char rf_num;
|
|
unsigned char cw2mod[6];
|
|
unsigned char wf2g_11b_tpwr[4]; //the number based on rates
|
|
unsigned char wf2g_11g_tpwr[8];
|
|
unsigned char wf2g_ht20_tpwr[8];
|
|
unsigned char wf2g_ht40_tpwr[8];
|
|
unsigned char wf2g_vht20_tpwr[9];
|
|
unsigned char wf2g_vht40_tpwr[10];
|
|
unsigned char wf2g_he20_tpwr[12];
|
|
unsigned char wf2g_he40_tpwr[12];
|
|
unsigned char wf5g_11a_tpwr_lm[8];
|
|
unsigned char wf5g_ht20_tpwr_lm[8];
|
|
unsigned char wf5g_ht40_tpwr_lm[8];
|
|
unsigned char wf5g_vht20_tpwr_lm[9];
|
|
unsigned char wf5g_vht40_tpwr_lm[10];
|
|
unsigned char wf5g_vht80_tpwr_lm[10];
|
|
unsigned char wf5g_he20_tpwr_lm[12];
|
|
unsigned char wf5g_he40_tpwr_lm[12];
|
|
unsigned char wf5g_he80_tpwr_lm[12];
|
|
unsigned char wf5g_11a_tpwr_h[8];
|
|
unsigned char wf5g_ht20_tpwr_h[8];
|
|
unsigned char wf5g_ht40_tpwr_h[8];
|
|
unsigned char wf5g_vht20_tpwr_h[9];
|
|
unsigned char wf5g_vht40_tpwr_h[10];
|
|
unsigned char wf5g_vht80_tpwr_h[10];
|
|
unsigned char wf5g_he20_tpwr_h[12];
|
|
unsigned char wf5g_he40_tpwr_h[12];
|
|
unsigned char wf5g_he80_tpwr_h[12];
|
|
unsigned char wf5g_lch_he_lowrssi_tpwr[6];
|
|
unsigned char wf5g_mch_he_lowrssi_tpwr[6];
|
|
unsigned char wf5g_hch_he20_lowrssi_tpwr[6];
|
|
unsigned char wf5g_hch_he40_lowrssi_tpwr[6];
|
|
unsigned char wf5g_hch_he80_lowrssi_tpwr[6];
|
|
unsigned char wf5g_vht_lowrssi_tpwr[6];
|
|
W2_EFUSE_PARAM w2_efuse_param;
|
|
} Cali_Param;
|
|
|
|
|
|
//================cmd=========================================
|
|
|
|
#define CMD_GET (0x80)
|
|
#define BCNInterval_Cmd 0x1
|
|
#define Bcn_Frm_Addr_Cmd (CMD_GET|0x2)
|
|
#define Power_Save_Cmd 0x4
|
|
#define Send_NullData_Cmd 0x5
|
|
#define Keep_Alive_Cmd 0x6
|
|
#define Beacon_Miss_Cmd 0x7
|
|
#define CAM_Mode_Cmd 0x8
|
|
#define ARP_Agent_Cmd 0x9
|
|
#define Add_Pattern_Cmd 0xa
|
|
#define WoW_Enable_Cmd 0xb
|
|
#define AC_BE_Param_Cmd 0xc
|
|
#define AC_BK_Param_Cmd 0xd
|
|
#define AC_VI_Param_Cmd 0xe
|
|
#define AC_VO_Param_Cmd 0xf
|
|
#define CWmin_Cwmax_Cmd 0x10
|
|
#define LongRetryLimit_Cmd 0x11
|
|
#define ShortRetryLimit_Cmd 0x12
|
|
#define NDP_Anncmnt_Cmd 0x13
|
|
#define BmfmInfo_Cmd 0x15
|
|
#define UniCast_Key_Set_Cmd 0x16
|
|
#define Multicast_Key_Set_Cmd 0x17
|
|
#define Reset_Key_Cmd 0x18
|
|
#define Rekey_Data_Set_Cmd 0x19
|
|
#define MaxTxLifetime_Cmd 0x20
|
|
#define dhcp_start_cmd 0x21
|
|
#define vsdb_set_cmd 0x22
|
|
#define Beacon_Enable_Cmd 0x24
|
|
#define ADDBA_OK_CMD 0x2a
|
|
#define RegStaID_CMD 0x30
|
|
#define UnRegStaID_CMD 0x31
|
|
#define UnRegAllStaID_CMD 0x32
|
|
#define Del_BA_CMD 0x34
|
|
/*set_page_len_cmd*/
|
|
#define SET_PAGE_LEN_CMD 0x33
|
|
#define EXTERN_CHANNEL_STATUS_CMD (CMD_GET|0x35)
|
|
#define RD_SUPPORT_CMD 0x3a
|
|
#define MAC_SCAN_CMD 0x42
|
|
#define PHY_DEBUG (CMD_GET|0x44)
|
|
#define P2P_OPPPS_CWEND_IRQ_ENABLE_CMD 0x45
|
|
#define P2P_NoA_ENABLE_CMD 0x46
|
|
#define GET_TSF_CMD (CMD_GET|0x47)
|
|
#define GET_PN_CMD (CMD_GET|0x48)
|
|
#define GET_SDIO_PTR_CMD (CMD_GET|0x49)
|
|
#define Mac_Rtc_Cmd 0x4a
|
|
|
|
#define COEXIST_CMD 0x4B
|
|
|
|
#define CHANNEL_SWITCH_CMD 0x25
|
|
#define DPD_MEMORY_CMD 0x26
|
|
#define FWLOG_MODE_CMD 0x27
|
|
#define CALI_PARAM_CMD 0x28
|
|
#define PHY_INTERFACE_CMD 0x29
|
|
|
|
/*coexist cmd1 comand*/
|
|
#define COEXIST_EN_CMD BIT(0)
|
|
#define COEXIST_MAX_MISS_BCN_CNT BIT(1)
|
|
#define COEXIST_REQ_TIMEOUT BIT(2)
|
|
#define COEXIST_NOT_GRANT_WEIGHT BIT(3)
|
|
#define COEXIST_FW_RETRY_WEIGHT BIT(4)
|
|
#define COEXIST_MAX_NOT_GRANT_CNT BIT(5)
|
|
#define COEXIST_SCAN_PRIORITY_RANGE BIT(6)
|
|
#define COEXIST_BE_BK_NOQOS_PRI_RANGE BIT(7)
|
|
#define COEXIST_INFOR_BT_WIFI_WORK_FREQ BIT(8)
|
|
|
|
//Reset_Key_Cmd
|
|
#define ALL_KEY_RST 0xffff
|
|
#define MULTI_KEY_RST 0xeeee
|
|
|
|
//Reset_Key_Cmd
|
|
#define ALL_UNIKEY_RST 0xeeee
|
|
#define ALL_MULTIKEY_RST 0xdddd
|
|
|
|
#pragma pack(1)
|
|
|
|
//Set Page_Len Cmd
|
|
typedef struct PagelenCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[3];
|
|
unsigned int page_len;
|
|
} PagelenCmd;
|
|
|
|
|
|
//
|
|
///BCNInterval_Cmd
|
|
//
|
|
typedef struct BCNIntervalCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int interval;
|
|
} BCNIntervalCmd;
|
|
//
|
|
///Bcn_Frm_Addr_Cmd
|
|
//
|
|
typedef struct BcnFrmAddrCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int address;
|
|
} BcnFrmAddrCmd;
|
|
//
|
|
///Beacon_Enable_Cmd
|
|
//
|
|
typedef struct BeaconEnableCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char enable;
|
|
} BeaconEnableCmd;
|
|
|
|
typedef struct PowerSaveCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char psmode;
|
|
} PowerSaveCmd;
|
|
typedef struct CAMModeCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char cammode;
|
|
} CAMModeCmd;
|
|
|
|
typedef struct DHCPStartCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int ip;
|
|
} DHCPStartCmd;
|
|
|
|
//Del_BA_CMD
|
|
typedef struct
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char STA_ID;
|
|
unsigned char TID;
|
|
} Station;
|
|
|
|
//EXTERN_CHANNEL_STATUS_CMD
|
|
typedef struct Extern_Channel_Status
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[3];
|
|
unsigned int Status;
|
|
} Extern_Channel_Status;
|
|
|
|
typedef struct CommonCmdUC
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char param[8];
|
|
} CommonCmdUC;
|
|
|
|
typedef struct CommonCmdUS
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned short param[4];
|
|
} CommonCmdUS;
|
|
|
|
typedef struct CommonCmdUL
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned long param[2];
|
|
} CommonCmdUL;
|
|
|
|
typedef struct CommonCmdULL
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int rsrv2;
|
|
unsigned long long param0;
|
|
} CommonCmdULL;
|
|
|
|
typedef struct NoACmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int duration;
|
|
unsigned int interval;
|
|
unsigned int starttime;
|
|
unsigned char count;
|
|
unsigned char flag;
|
|
} NoACmd;
|
|
|
|
typedef struct Bcn_Frm_Addr
|
|
{
|
|
unsigned int cmd;
|
|
unsigned int address;
|
|
} Bcn_Frm_Addr;
|
|
|
|
typedef struct RegStaIdParam
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
unsigned short StaId; //statin id
|
|
unsigned char StaMac[6]; //station mac address
|
|
unsigned char encrypt;
|
|
} RegStaIdParam;
|
|
|
|
typedef struct UnRegStaID
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid; //statin id
|
|
unsigned int StaId; //statin id
|
|
} UnRegStaID;
|
|
|
|
///UnRegAllStaID_CMD
|
|
typedef struct UnRegAllStaID
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[3];
|
|
unsigned char vid; //statin id
|
|
} UnRegAllStaID;
|
|
|
|
|
|
//AC_BE_Param_Cmd
|
|
typedef struct SetEDCACmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned int data;
|
|
} SetEDCACmd;
|
|
|
|
///PHY_DEBUG
|
|
typedef struct phydebugcmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char len;
|
|
unsigned short serve;
|
|
unsigned int offset;
|
|
unsigned char buf[48];
|
|
} phydebugcmd;
|
|
|
|
#define WIFINET_ADDR_LEN 6
|
|
/*send (qos)null data command */
|
|
typedef struct NullDataCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
/*tid id useless when qos is 0 */
|
|
unsigned char qos:1,
|
|
/*1 is go to power save state, 0 is awake or keep alive*/
|
|
tid:4,
|
|
pwr_save:1,
|
|
eosp:1,
|
|
/* pwr save packet flag */
|
|
pwr_flag:1;
|
|
unsigned char dest_addr[WIFINET_ADDR_LEN];
|
|
unsigned char bw;
|
|
unsigned char rate;
|
|
unsigned short sn;
|
|
unsigned short staid;
|
|
/*Indicates the length of the PSDU in octets*/
|
|
unsigned short tv_l_length;
|
|
} NullDataCmd;
|
|
|
|
typedef struct KeepAliveCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char enable;
|
|
/* in second, need transform to ms in firmware */
|
|
unsigned int period;
|
|
struct NullDataCmd null_data_param;
|
|
} KeepAliveCmd;
|
|
|
|
#define IPV6_LEN 16
|
|
#define IPV4_LEN 4
|
|
#define IPV6_ADDR_BUF_LEN (IPV6_LEN * 3 + 1)
|
|
|
|
#define WOW_PATTERN_SIZE 52
|
|
#define WOW_MAX_PATTERNS 4
|
|
#define WOW_PATTERN_MASK_SIZE 8
|
|
/* timeout for supend wifi, in jiffies */
|
|
#define WOW_TIMEOUT (200)
|
|
|
|
/* arp agent command */
|
|
typedef struct ArpAgentCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char enable;
|
|
unsigned char vid;
|
|
unsigned char reserve;
|
|
unsigned int ip_addr;
|
|
unsigned char ip6_addr[IPV6_ADDR_BUF_LEN];
|
|
} ArpAgentCmd;
|
|
|
|
/* beacon miss monitor */
|
|
typedef struct BeaconMissCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
/*1 enable , 0 disable */
|
|
unsigned char enable;
|
|
unsigned char reserved;
|
|
unsigned int period;
|
|
}BeaconMissCmd;
|
|
|
|
typedef struct vsdb_cmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
/*1 enable , 0 disable */
|
|
unsigned char enable;
|
|
unsigned char reserved[5];
|
|
} vsdb_cmd;
|
|
|
|
/* suspend command */
|
|
typedef struct SuspendCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char enable;
|
|
unsigned char vid;
|
|
unsigned char wow;
|
|
unsigned char deepsleep;
|
|
unsigned char reserved[3];
|
|
unsigned int filters;
|
|
unsigned char PN[16];
|
|
} SuspendCmd;
|
|
|
|
/* add patterns command for suspend*/
|
|
typedef struct AddPatternCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
/*offset from cfg layer, indicates where pattern
|
|
*start to match with packets
|
|
*/
|
|
unsigned char pattern_offset;
|
|
unsigned char pattern_len;
|
|
unsigned char pattern_id;
|
|
unsigned char mask[WOW_PATTERN_MASK_SIZE];
|
|
unsigned char pattern[WOW_PATTERN_SIZE];
|
|
} AddPatternCmd;
|
|
|
|
typedef struct NDPAnncmntCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
|
|
unsigned char rate;
|
|
unsigned char bw;
|
|
|
|
unsigned char dest_addr[WIFINET_ADDR_LEN];
|
|
unsigned char reserved[2];
|
|
|
|
unsigned short sn;
|
|
unsigned short stainfo_num;
|
|
|
|
unsigned short stainfo[WIFI_MAX_STA];
|
|
} NDPAnncmntCmd;
|
|
|
|
///TxBA_TYPE
|
|
#define BA_DELAY 0
|
|
#define BA_IMMEDIATE 1
|
|
|
|
///AuthRole
|
|
#define BA_INITIATOR 0
|
|
#define BA_RESPONSER 1
|
|
|
|
typedef struct Add_BA_Struct
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char TID;
|
|
unsigned char BA_TYPE;
|
|
unsigned char AuthRole;
|
|
unsigned char BA_Size;
|
|
unsigned short STA_ID;
|
|
unsigned short SeqNumStart;
|
|
} Add_BA_Struct;
|
|
|
|
typedef struct Delete_TxBA_Struct
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[2];
|
|
unsigned char vid;
|
|
unsigned char STA_ID;
|
|
unsigned char TID;
|
|
unsigned char AuthRole;
|
|
unsigned char reserve1;
|
|
} Delete_TxBA_Struct;
|
|
|
|
typedef struct MacRtcCmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[3];
|
|
unsigned int enable;
|
|
} MacRtcCmd;
|
|
|
|
typedef struct Bmfm_Info_Cmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
unsigned char reserved;
|
|
|
|
unsigned char feedback_type;
|
|
unsigned char group_id[8];
|
|
unsigned char user_position[16];
|
|
}Bmfm_Info_Cmd;
|
|
|
|
struct Coexist_Cmd
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char reserve[3];
|
|
unsigned int coexist_id_bitmap;
|
|
unsigned int req_timeout_value;
|
|
unsigned int scan_priority_range;
|
|
unsigned int be_bk_no_qos_priority_range;
|
|
unsigned char coexist_enable;
|
|
unsigned char max_miss_bcn_cnt;
|
|
unsigned char not_grant_weight;
|
|
unsigned char fw_retry_weight;
|
|
unsigned char max_not_grant_cnt;
|
|
unsigned char enable_infor_bt_wifi_work_freq;
|
|
unsigned char reserve1[38];
|
|
};
|
|
|
|
/* channel switch flag */
|
|
enum {
|
|
CHANNEL_RESTORE_FLAG = BIT(0),
|
|
CHANNEL_CONNECT_FLAG = BIT(1),
|
|
CHANNEL_NO_EVENT_FLAG = BIT(2),
|
|
};
|
|
|
|
typedef struct Channel_Switch
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
unsigned char flag;
|
|
unsigned char bw;
|
|
unsigned int channel;
|
|
/* center freq value */
|
|
unsigned int pri_chan;
|
|
}Channel_Switch;
|
|
|
|
typedef struct DPD_Memory_Download
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
unsigned char reserved[2];
|
|
} DPD_Memory_Download;
|
|
|
|
typedef struct Fwlog_Mode_Control
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char mode; //0x00:fw 0x01:host
|
|
unsigned char reserved[2];
|
|
} Fwlog_Mode_Control;
|
|
|
|
typedef struct Strlog_Mode_Control
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char mode;
|
|
unsigned char reserved[2];
|
|
} Strlog_Mode_Control;
|
|
|
|
// event
|
|
typedef struct channel_switch_event
|
|
{
|
|
struct fw_event_basic_info basic_info;
|
|
unsigned int channel;
|
|
unsigned int bw;
|
|
unsigned int done;
|
|
} channel_switch_event;
|
|
|
|
typedef struct tx_error_event
|
|
{
|
|
struct fw_event_basic_info basic_info;
|
|
unsigned int error_type;
|
|
unsigned int frame_type;
|
|
} tx_error_event;
|
|
|
|
typedef struct Phy_Interface_Param
|
|
{
|
|
unsigned char Cmd;
|
|
unsigned char vid;
|
|
unsigned char interface_enable;
|
|
unsigned char reserve;
|
|
} Phy_Interface_Param;
|
|
|
|
#pragma pack()
|
|
|
|
typedef union FI_CMDFIFO_PARAM
|
|
{
|
|
struct RegStaIdParam StaIdParam;
|
|
struct MultiCastKeyCmd MultiKeyCmd ;
|
|
struct UniCastKeyCmd UniKeyCmd;
|
|
struct RekeyDataCmd RekeyCmd;
|
|
struct Extern_Channel_Status exchanstatus;
|
|
struct UnRegStaID UnRegStaID;
|
|
struct SetEDCACmd SetEDCACmd;
|
|
struct PowerSaveCmd PowerSaveCmd;
|
|
struct CAMModeCmd CAMModeCmd;
|
|
#ifdef DHCP_OFFLOAD
|
|
struct DHCPStartCmd DHCPStartCmd;
|
|
#endif
|
|
#ifdef VSDB
|
|
struct vsdb_cmd vsdb_enable_cmd;
|
|
#endif
|
|
struct BCNIntervalCmd BCNIntervalCmd;
|
|
struct BcnFrmAddrCmd BcnFrmAddrCmd;
|
|
struct BeaconEnableCmd BeaconEnableCmd;
|
|
struct UnRegAllStaID UnRegAllStaID;
|
|
struct phydebugcmd Phydbgcmd;
|
|
struct CommonCmdUC CommonCmdUC;
|
|
struct CommonCmdUS CommonCmdUS;
|
|
struct CommonCmdUL CommonCmdUL;
|
|
struct CommonCmdULL CommonCmdULL;
|
|
struct NoACmd NoACmd;
|
|
struct MacRtcCmd MacRtcCmd;
|
|
struct NullDataCmd null_data_cmd;
|
|
struct NDPAnncmntCmd ndp_anncmnt_data;
|
|
struct KeepAliveCmd keep_alive_cmd;
|
|
struct BeaconMissCmd beacon_miss_cmd;
|
|
struct ArpAgentCmd arp_agent_cmd;
|
|
struct SuspendCmd suspend_cmd;
|
|
struct AddPatternCmd add_pattern_cmd;
|
|
struct Bmfm_Info_Cmd bmfm_info_cmd;
|
|
struct Coexist_Cmd coexist_cmd;
|
|
|
|
struct Channel_Switch channel_switch_cmd;
|
|
struct DPD_Memory_Download dpd_download_cmd;
|
|
struct Fwlog_Mode_Control fwlog_mode_cmd;
|
|
struct Cali_Param cali_param_cmd;
|
|
struct Phy_Interface_Param phy_interface_cmd;
|
|
struct PagelenCmd page_len_cmd;
|
|
} FI_CMDFIFO_PARAM;
|
|
|
|
typedef struct phy_maskfilter_cfg_param
|
|
{
|
|
uint32_t maskfilter[32];
|
|
uint32_t mask_bw_cfg[5];
|
|
} phy_maskfilter_cfg_param_t;
|
|
|
|
typedef struct COUNTRY_PWR_LIMIT_CFG
|
|
{
|
|
unsigned char version;
|
|
unsigned char country_pwr_limit_en;
|
|
|
|
//2.4G
|
|
unsigned char wf2g_ofdm_limit[14][5];
|
|
unsigned char wf2g_dsss_limit[14][5];
|
|
|
|
//5G 20M band0 ch36~ch64
|
|
unsigned char wf5g_bw20_band0[8][5];
|
|
//5G 20M band1 ch100~ch144
|
|
unsigned char wf5g_bw20_band1[12][5];
|
|
//5G 20M band2 ch149~ch165
|
|
unsigned char wf5g_bw20_band2[8][5];
|
|
|
|
//5G 40M band0 ch38~ch62
|
|
unsigned char wf5g_bw40_band0[4][5];
|
|
//5G 40M band1 ch102~ch142
|
|
unsigned char wf5g_bw40_band1[6][5];
|
|
//5G 40M band2 ch151~ch175
|
|
unsigned char wf5g_bw40_band2[4][5];
|
|
|
|
//5G 80M band0 ch42~ch58
|
|
unsigned char wf5g_bw80_band0[2][5];
|
|
//5G 80M band1 ch106~ch138
|
|
unsigned char wf5g_bw80_band1[3][5];
|
|
//5G 80M band3 ch155
|
|
unsigned char wf5g_bw80_band2[1][5];
|
|
|
|
//maskfilters
|
|
phy_maskfilter_cfg_param_t phy_maskfilter_cfg[2];
|
|
} COUNTRY_PWR_LIMIT_CFG;
|
|
|
|
#endif
|