代碼工程的GITHUB連接:點進進入GITHUB倉庫
https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi
Marvell自己實現驅動系列文章分為幾篇介紹:
SDIO wifi Marvell8801/Marvell88w8801 介紹(一) ---- 芯片介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(二) ---- SDIO協議介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(三) ---- 寄存器介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(四) ---- 命令/事件/數據格式
SDIO wifi Marvell8801/Marvell88w8801 介紹(五) ---- TLV
SDIO wifi Marvell8801/Marvell88w8801 介紹(六) ---- 實現初始化功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(七) ---- 實現搜索功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(八) ---- 實現STA功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(九) ---- 實現AP功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(十) ---- 移植TCP/IP協議棧LWIP
SDIO wifi Marvell8801/Marvell88w8801 介紹(十一) ---- 自己編寫LWIP沒有的DHCP server
SDIO wifi Marvell8801/Marvell88w8801 介紹(十二) ---- MQTT介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(十三) ---- 百度云操作說明
SDIO wifi Marvell8801/Marvell88w8801 介紹(十四) ---- 上位機STA操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十五) ---- 上位機AP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十六) ---- 上位機UDP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十七) ---- 上位機TCP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十八) ---- 上位機PING操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十九) ---- 上位機云服務器(百度云)操作/代碼
每篇更新打開專欄可以看到:打開Marvell8801/Marvell8801 專欄
1. TLV介紹
TLV在上面也有提到一下,T(type)L(length)V(value)
一般用在command/event某一個filed中
TLV分為兩種格式,一種是IEEE IE type,是標準的TLV,一種是MrvllEType,是Marvell自定義的,主要差異在于格式上
IEEE和Marvell的差異在于type和len占用size的差異,IEEE type和lenght分別都是占用1個byte,而Marvell占用2個byte,但是Marvell為了兼容IEEE,所以把IEEE的TLV轉換成Marvell的,下面我們開始列出所有的type:
以下是Marvell自定義的TLV
以下是AP的TLV
每一個的格式,就不列出了,后面可以自己看下fireware文檔,文檔在…\3-Marvell88w8801資料文件夾中,名字是:Marvell_Firmware_V14.pdf。或者直接看code的定義,也就是value的具體定義,沒有難度
最后列下上面可能用到的縮寫和術語
最后貼下TLV的代碼定義以及某些TLV中bit的定義:
#define PROPRIETARY_TLV_BASE_ID 0x0100
#define MRVL_TERMINATE_TLV_ID 0xffff
#define TLV_TYPE_SSID 0x0000
#define TLV_TYPE_RATES 0x0001
#define TLV_TYPE_PHY_FH 0x0002
#define TLV_TYPE_PHY_DS 0x0003
#define TLV_TYPE_CF 0x0004
#define TLV_TYPE_IBSS 0x0006
#define TLV_TYPE_DOMAIN 0x0007
#define TLV_TYPE_POWER_CONSTRAINT 0x0020
#define TLV_TYPE_POWER_CAPABILITY 0x0021
#define TLV_TYPE_RSN_PARAMSET 0x0030
#define TLV_TYPE_VENDOR_SPECIFIC_IE 0xdd
#define TLV_TYPE_KEY_MATERIAL (PROPRIETARY_TLV_BASE_ID + 0x00)
#define TLV_TYPE_CHANLIST (PROPRIETARY_TLV_BASE_ID + 0x01)
#define TLV_TYPE_NUMPROBES (PROPRIETARY_TLV_BASE_ID + 0x02)
#define TLV_TYPE_RSSI_LOW (PROPRIETARY_TLV_BASE_ID + 0x04)
#define TLV_TYPE_SNR_LOW (PROPRIETARY_TLV_BASE_ID + 0x05)
#define TLV_TYPE_FAILCOUNT (PROPRIETARY_TLV_BASE_ID + 0x06)
#define TLV_TYPE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 0x07)
#define TLV_TYPE_LEDBEHAVIOR (PROPRIETARY_TLV_BASE_ID + 0x09)
#define TLV_TYPE_PASSTHROUGH (PROPRIETARY_TLV_BASE_ID + 0x0a)
#define TLV_TYPE_POWER_TBL_2_4GHZ (PROPRIETARY_TLV_BASE_ID + 0x0c)
#define TLV_TYPE_POWER_TBL_5GHZ (PROPRIETARY_TLV_BASE_ID + 0x0d)
#define TLV_TYPE_WMMQSTATUS (PROPRIETARY_TLV_BASE_ID + 0x10)
#define TLV_TYPE_WILDCARDSSID (PROPRIETARY_TLV_BASE_ID + 0x12)
#define TLV_TYPE_TSFTIMESTAMP (PROPRIETARY_TLV_BASE_ID + 0x13)
#define TLV_TYPE_ARP_FILTER (PROPRIETARY_TLV_BASE_ID + 0x15)
#define TLV_TYPE_RSSI_HIGH (PROPRIETARY_TLV_BASE_ID + 0x16)
#define TLV_TYPE_SNR_HIGH (PROPRIETARY_TLV_BASE_ID + 0x17)
#define TLV_TYPE_STARTBGSCANLATER (PROPRIETARY_TLV_BASE_ID + 0x1e)
#define TLV_TYPE_REPEAT_COUNT (PROPRIETARY_TLV_BASE_ID + 0xb0)
#define TLV_TYPE_AUTH_TYPE (PROPRIETARY_TLV_BASE_ID + 0x1f)
#define TLV_TYPE_BSSID (PROPRIETARY_TLV_BASE_ID + 0x23)
#define TLV_TYPE_LINK_QUALITY (PROPRIETARY_TLV_BASE_ID + 0x24)
#define TLV_TYPE_RSSI_LOW_DATA (PROPRIETARY_TLV_BASE_ID + 0x26)
#define TLV_TYPE_SNR_LOW_DATA (PROPRIETARY_TLV_BASE_ID + 0x27)
#define TLV_TYPE_RSSI_HIGH_DATA (PROPRIETARY_TLV_BASE_ID + 0x28)
#define TLV_TYPE_SNR_HIGH_DATA (PROPRIETARY_TLV_BASE_ID + 0x29)
#define TLV_TYPE_CHANNELBANDLIST (PROPRIETARY_TLV_BASE_ID + 0x2a)
#define TLV_TYPE_PASSPHRASE (PROPRIETARY_TLV_BASE_ID + 0x3c)
#define TLV_TYPE_ENCRYPTION_PROTO (PROPRIETARY_TLV_BASE_ID + 0x40)
#define TLV_TYPE_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x42)
#define TLV_TYPE_PMK (PROPRIETARY_TLV_BASE_ID + 0x44)
#define TLV_TYPE_PRE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 0x49)
#define TLV_TYPE_WAPI_IE (PROPRIETARY_TLV_BASE_ID + 0x5e)
#define TLV_TYPE_MGMT_IE (PROPRIETARY_TLV_BASE_ID + 0x69)
#define TLV_TYPE_MAX_MGMT_IE (PROPRIETARY_TLV_BASE_ID + 0xaa)
#define TLV_TYPE_HT_CAP (PROPRIETARY_TLV_BASE_ID + 0x4a)
#define TLV_TYPE_HT_INFO (PROPRIETARY_TLV_BASE_ID + 0x4b)
#define TLV_SECONDARY_CHANNEL_OFFSET (PROPRIETARY_TLV_BASE_ID + 0x4c)
#define TLV_TYPE_2040BSS_COEXISTENCE (PROPRIETARY_TLV_BASE_ID + 0x4d)
#define TLV_TYPE_OVERLAP_BSS_SCAN_PARAM (PROPRIETARY_TLV_BASE_ID + 0x4e)
#define TLV_TYPE_EXTCAP (PROPRIETARY_TLV_BASE_ID + 0x4f)
#define TLV_TYPE_HT_OPERATIONAL_MCS_SET (PROPRIETARY_TLV_BASE_ID + 0x50)
#define TLV_TYPE_RXBA_SYNC (PROPRIETARY_TLV_BASE_ID + 0x99)
#define ADDBA_TID_MASK (MBIT(2) | MBIT(3) | MBIT(4) | MBIT(5))
#define DELBA_TID_MASK (MBIT(12) | MBIT(13) | MBIT(14) | MBIT(15))
#define SSN_MASK 0xfff0
#define TLV_TYPE_UAP_CHAN_BAND_CONFIG (PROPRIETARY_TLV_BASE_ID + 0x2a)
#define TLV_TYPE_UAP_MAC_ADDRESS (PROPRIETARY_TLV_BASE_ID + 0x2b)
#define TLV_TYPE_UAP_BEACON_PERIOD (PROPRIETARY_TLV_BASE_ID + 0x2c)
#define TLV_TYPE_UAP_DTIM_PERIOD (PROPRIETARY_TLV_BASE_ID + 0x2d)
#define TLV_TYPE_UAP_TX_POWER (PROPRIETARY_TLV_BASE_ID + 0x2f)
#define TLV_TYPE_UAP_BCAST_SSID_CTL (PROPRIETARY_TLV_BASE_ID + 0x30)
#define TLV_TYPE_UAP_PREAMBLE_CTL (PROPRIETARY_TLV_BASE_ID + 0x31)
#define TLV_TYPE_UAP_ANTENNA_CTL (PROPRIETARY_TLV_BASE_ID + 0x32)
#define TLV_TYPE_UAP_RTS_THRESHOLD (PROPRIETARY_TLV_BASE_ID + 0x33)
#define TLV_TYPE_UAP_TX_DATA_RATE (PROPRIETARY_TLV_BASE_ID + 0x35)
#define TLV_TYPE_UAP_PKT_FWD_CTL (PROPRIETARY_TLV_BASE_ID + 0x36)
#define TLV_TYPE_UAP_STA_INFO (PROPRIETARY_TLV_BASE_ID + 0x37)
#define TLV_TYPE_UAP_STA_MAC_ADDR_FILTER (PROPRIETARY_TLV_BASE_ID + 0x38)
#define TLV_TYPE_UAP_STA_AGEOUT_TIMER (PROPRIETARY_TLV_BASE_ID + 0x39)
#define TLV_TYPE_UAP_WEP_KEY (PROPRIETARY_TLV_BASE_ID + 0x3b)
#define TLV_TYPE_UAP_WPA_PASSPHRASE (PROPRIETARY_TLV_BASE_ID + 0x3c)
#define TLV_TYPE_UAP_ENCRYPT_PROTOCOL (PROPRIETARY_TLV_BASE_ID + 0x40)
#define TLV_TYPE_UAP_AKMP (PROPRIETARY_TLV_BASE_ID + 0x41)
#define TLV_TYPE_UAP_FRAG_THRESHOLD (PROPRIETARY_TLV_BASE_ID + 0x46)
#define TLV_TYPE_UAP_GRP_REKEY_TIME (PROPRIETARY_TLV_BASE_ID + 0x47)
#define TLV_TYPE_UAP_MAX_STA_CNT (PROPRIETARY_TLV_BASE_ID + 0x55)
#define TLV_TYPE_UAP_RETRY_LIMIT (PROPRIETARY_TLV_BASE_ID + 0x5d)
#define TLV_TYPE_UAP_MCBC_DATA_RATE (PROPRIETARY_TLV_BASE_ID + 0x62)
#define TLV_TYPE_UAP_RSN_REPLAY_PROTECT (PROPRIETARY_TLV_BASE_ID + 0x64)
#define TLV_TYPE_UAP_MGMT_FRAME (PROPRIETARY_TLV_BASE_ID + 0x68)
#define TLV_TYPE_UAP_MGMT_IE_PASSTHRU_MASK (PROPRIETARY_TLV_BASE_ID + 0x70)
#define TLV_TYPE_2040_BSS_COEX_CONTROL (PROPRIETARY_TLV_BASE_ID + 0x98)
#define TLV_TYPE_UAP_EAPOL_PWK_HSK_TIMEOUT (PROPRIETARY_TLV_BASE_ID + 0x75)
#define TLV_TYPE_UAP_EAPOL_PWK_HSK_RETRIES (PROPRIETARY_TLV_BASE_ID + 0x76)
#define TLV_TYPE_UAP_EAPOL_GWK_HSK_TIMEOUT (PROPRIETARY_TLV_BASE_ID + 0x77)
#define TLV_TYPE_UAP_EAPOL_GWK_HSK_RETRIES (PROPRIETARY_TLV_BASE_ID + 0x78)
#define TLV_TYPE_UAP_PS_STA_AGEOUT_TIMER (PROPRIETARY_TLV_BASE_ID + 0x7b)
#define TLV_TYPE_PWK_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x91)
#define TLV_TYPE_GWK_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x92)
#define TLV_TYPE_BSS_STATUS (PROPRIETARY_TLV_BASE_ID + 0x93)
#define BA_RESULT_SUCCESS 0x0
#define BA_RESULT_FAILURE 0x1
#define BA_RESULT_TIMEOUT 0x2
#define BA_RESULT_DATA_INVALID 0x3
#define IS_BASTREAM_SETUP(ptr) (ptr->ba_status)
#define BA_STREAM_NOT_ALLOWED 0xff
#define BAND_B (1U << 0)
#define BAND_G (1U << 1)
#define BAND_A (1U << 2)
#define BAND_GN (1U << 3)
#define BAND_AN (1U << 4)
#define DELBA_INITIATOR_POS 11
#define IS_11N_ENABLED(priv) ((priv->config_bands & BAND_GN ||priv->config_bands & BAND_AN) \&& priv->curr_bss_params.bss_descriptor.pht_cap)
#define INITIATOR_BIT(DelBAParamSet) (((DelBAParamSet) & \MBIT(DELBA_INITIATOR_POS)) >> DELBA_INITIATOR_POS)
#define MLAN_TX_DATA_BUF_SIZE_4K 4096
#define MLAN_TX_DATA_BUF_SIZE_8K 8192
#define MAX_RX_AMPDU_SIZE_64K 0x03
#define NON_GREENFIELD_STAS 0x04
#define HWSPEC_GREENFIELD_SUPP MBIT(29)
#define HWSPEC_RXSTBC_SUPP MBIT(26)
#define HWSPEC_SHORTGI40_SUPP MBIT(24)
#define HWSPEC_SHORTGI20_SUPP MBIT(23)
#define HWSPEC_CHANBW40_SUPP MBIT(17)
#define CAPINFO_40MHZ_INTOLARENT MBIT(8)
#define DEFAULT_11N_CAP_MASK_BG (HWSPEC_SHORTGI20_SUPP | HWSPEC_RXSTBC_SUPP)
#define DEFAULT_11N_CAP_MASK_A (HWSPEC_CHANBW40_SUPP | HWSPEC_SHORTGI20_SUPP | \HWSPEC_SHORTGI40_SUPP | HWSPEC_RXSTBC_SUPP)
#define IGN_HW_DEV_CAP (CAPINFO_40MHZ_INTOLARENT)
#define ISSUPP_11NENABLED(FwCapInfo) (FwCapInfo & MBIT(11))
#define ISSUPP_MAXAMSDU(Dot11nDevCap) (Dot11nDevCap & MBIT(31))
#define ISSUPP_BEAMFORMING(Dot11nDevCap) (Dot11nDevCap & MBIT(30))
#define ISSUPP_GREENFIELD(Dot11nDevCap) (Dot11nDevCap & MBIT(29))
#define ISSUPP_AMPDU(Dot11nDevCap) (Dot11nDevCap & MBIT(28))
#define ISSUPP_MIMOPS(Dot11nDevCap) (Dot11nDevCap & MBIT(27))
#define ISSUPP_RXSTBC(Dot11nDevCap) (Dot11nDevCap & MBIT(26))
#define ISSUPP_TXSTBC(Dot11nDevCap) (Dot11nDevCap & MBIT(25))
#define ISSUPP_SHORTGI40(Dot11nDevCap) (Dot11nDevCap & MBIT(24))
#define ISSUPP_SHORTGI20(Dot11nDevCap) (Dot11nDevCap & MBIT(23))
#define ISSUPP_RXLDPC(Dot11nDevCap) (Dot11nDevCap & MBIT(22))
#define GET_DELAYEDBACK(Dot11nDevCap) (((Dot11nDevCap >> 20) & 0x03))
#define GET_IMMEDIATEBACK(Dot11nDevCap) (((Dot11nDevCap >> 18) & 0x03))
#define ISSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap & MBIT(17))
#define ISSUPP_CHANWIDTH20(Dot11nDevCap) (Dot11nDevCap & MBIT(16))
#define ISSUPP_CHANWIDTH10(Dot11nDevCap) (Dot11nDevCap & MBIT(15))
#define ISENABLED_40MHZ_INTOLARENT(Dot11nDevCap) (Dot11nDevCap & MBIT(8))
#define ISSUPP_RXANTENNAD(Dot11nDevCap) (Dot11nDevCap & MBIT(7))
#define ISSUPP_RXANTENNAC(Dot11nDevCap) (Dot11nDevCap & MBIT(6))
#define ISSUPP_RXANTENNAB(Dot11nDevCap) (Dot11nDevCap & MBIT(5))
#define ISSUPP_RXANTENNAA(Dot11nDevCap) (Dot11nDevCap & MBIT(4))
#define ISSUPP_TXANTENNAD(Dot11nDevCap) (Dot11nDevCap & MBIT(3))
#define ISSUPP_TXANTENNAC(Dot11nDevCap) (Dot11nDevCap & MBIT(2))
#define ISSUPP_TXANTENNAB(Dot11nDevCap) (Dot11nDevCap & MBIT(1))
#define ISSUPP_TXANTENNAA(Dot11nDevCap) (Dot11nDevCap & MBIT(0))
#define SETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap |= MBIT(17))
#define RESETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap &= ~MBIT(17))
#define GET_TXMCSSUPP(DevMCSSupported) (DevMCSSupported >> 4)
#define GET_RXMCSSUPP(DevMCSSupported) (DevMCSSupported & 0x0f)
#define GETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo & MBIT(1))
#define GETHT_GREENFIELD(HTCapInfo) (HTCapInfo & MBIT(4))
#define GETHT_SHORTGI20(HTCapInfo) (HTCapInfo & MBIT(5))
#define GETHT_SHORTGI40(HTCapInfo) (HTCapInfo & MBIT(6))
#define GETHT_TXSTBC(HTCapInfo) (HTCapInfo & MBIT(7))
#define GETHT_RXSTBC(HTCapInfo) ((HTCapInfo >> 8) & 0x03)
#define GETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo & MBIT(10))
#define GETHT_MAXAMSDU(HTCapInfo) (HTCapInfo & MBIT(11))
#define SETHT_LDPCCODINGCAP(HTCapInfo) (HTCapInfo |= MBIT(0))
#define SETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo |= MBIT(1))
#define SETHT_GREENFIELD(HTCapInfo) (HTCapInfo |= MBIT(4))
#define SETHT_SHORTGI20(HTCapInfo) (HTCapInfo |= MBIT(5))
#define SETHT_SHORTGI40(HTCapInfo) (HTCapInfo |= MBIT(6))
#define SETHT_TXSTBC(HTCapInfo) (HTCapInfo |= MBIT(7))
#define SETHT_RXSTBC(HTCapInfo, value) (HTCapInfo |= (value << 8))
#define SETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo |= MBIT(10))
#define SETHT_MAXAMSDU(HTCapInfo) (HTCapInfo |= MBIT(11))
#define SETHT_DSSSCCK40(HTCapInfo) (HTCapInfo |= MBIT(12))
#define SETHT_40MHZ_INTOLARANT(HTCapInfo) (HTCapInfo |= MBIT(14))
#define RESETHT_LDPCCODINGCAP(HTCapInfo) (HTCapInfo &= ~MBIT(0))
#define RESETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo &= ~MBIT(1))
#define RESETHT_GREENFIELD(HTCapInfo) (HTCapInfo &= ~MBIT(4))
#define RESETHT_SHORTGI20(HTCapInfo) (HTCapInfo &= ~MBIT(5))
#define RESETHT_SHORTGI40(HTCapInfo) (HTCapInfo &= ~MBIT(6))
#define RESETHT_TXSTBC(HTCapInfo) (HTCapInfo &= ~MBIT(7))
#define RESETHT_RXSTBC(HTCapInfo) (HTCapInfo &= ~(0x03 << 8))
#define RESETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo &= ~MBIT(10))
#define RESETHT_MAXAMSDU(HTCapInfo) (HTCapInfo &= ~MBIT(11))
#define RESETHT_40MHZ_INTOLARANT(HTCapInfo) (HTCapInfo &= ~MBIT(14))
#define RESETHT_EXTCAP_RDG(HTExtCap) (HTExtCap &= ~MBIT(11))
#define SETHT_MCS32(x) (x[4] |= 1)
#define SETHT_MCS_SET_DEFINED(x) (x[12] |= 1)
#define SETHT_RX_HIGHEST_DT_SUPP(x, y) ((*(uint16_t *) (x + 10)) = y)
#define AMPDU_FACTOR_64K 0x03
#define SETAMPDU_SIZE(x, y) do { \x = x & ~0x03; \x |= y & 0x03; \
} while (0) \
#define SETAMPDU_SPACING(x, y) do { \x = x & ~0x1c; \x |= (y & 0x07) << 2; \
} while (0) \
#define ISSUPP_BANDA(FwCapInfo) (FwCapInfo & MBIT(10))
#define ISALLOWED_CHANWIDTH40(Field2) (Field2 & MBIT(2))
#define SET_CHANWIDTH40(Field2) (Field2 |= MBIT(2))
#define RESET_CHANWIDTH40(Field2) (Field2 &= ~(MBIT(0) | MBIT(1) | MBIT(2)))
#define GET_SECONDARYCHAN(Field2) (Field2 & (MBIT(0) | MBIT(1)))
#define SET_SECONDARYCHAN(RadioType, SECCHAN) (RadioType |= (SECCHAN << 4))
#define WIFI_CAPABILITY_ESS MBIT(0)
#define WIFI_CAPABILITY_IBSS MBIT(1)
#define WIFI_CAPABILITY_CF_POLLABLE MBIT(2)
#define WIFI_CAPABILITY_CF_POLL_REQUEST MBIT(3)
#define WIFI_CAPABILITY_PRIVACY MBIT(4)
#define WIFI_CAPABILITY_SHORT_PREAMBLE MBIT(5)
#define WIFI_CAPABILITY_PBCC MBIT(6)
#define WIFI_CAPABILITY_CHANNEL_AGILITY MBIT(7)
#define WIFI_CAPABILITY_SPECTRUM_MGMT MBIT(8)
#define WIFI_CAPABILITY_SHORT_SLOT MBIT(10)
#define WIFI_CAPABILITY_DSSS_OFDM MBIT(13)
#define LLC_SNAP_LEN 8
#define TLV_TYPE_RATE_DROP_PATTERN (PROPRIETARY_TLV_BASE_ID + 0x51)
#define TLV_TYPE_RATE_DROP_CONTROL (PROPRIETARY_TLV_BASE_ID + 0x52)
#define TLV_TYPE_RATE_SCOPE (PROPRIETARY_TLV_BASE_ID + 0x53)
#define TLV_TYPE_POWER_GROUP (PROPRIETARY_TLV_BASE_ID + 0x54)
#define MOD_CLASS_HR_DSSS 0x03
#define MOD_CLASS_OFDM 0x07
#define MOD_CLASS_HT 0x08
#define HT_BW_20 0
#define HT_BW_40 1
#define TLV_TYPE_BSS_SCAN_RSP (PROPRIETARY_TLV_BASE_ID + 0x56)
#define TLV_TYPE_BSS_SCAN_INFO (PROPRIETARY_TLV_BASE_ID + 0x57)
#define TLV_TYPE_CHANRPT_11H_BASIC (PROPRIETARY_TLV_BASE_ID + 0x5b)
#define TLV_TYPE_IEEE_ACTION_FRAME (PROPRIETARY_TLV_BASE_ID + 0x8c)
總結
以上是生活随笔為你收集整理的SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。