4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
17 * * Neither the name Texas Instruments nor the names of its
18 * contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 * \brief TWDriver APIs
41 /** @defgroup Control Control group
42 * \brief The Control group includes the list of functions which perform TWD Control
44 /** @defgroup Measurement Measurement group
45 * \brief The Measurement group includes the list of functions which gets measurements from FW / TWD
47 /** @defgroup Data_Path Data Path group
48 * \brief The Data Path group includes the list of functions which perform the TWD Data Path
50 /** @defgroup Power_Management Power Management group
51 * \brief The Power Management group includes the list of functions which set the power management mode
53 /** @defgroup QoS Quality Of Service group
54 * \brief The Quality of Service group includes the list of functions which perform the TWD QoS
56 /** @defgroup Radio Radio (PHY) group
57 * \brief The Radio group includes the list of functions which handle the Radio
59 /** @defgroup BSS BSS group
60 * \brief The BSS group includes the list of functions which handle the Basic Service Set
62 /** @defgroup Misc Miscellaneous group
63 * \brief The Miscellaneous group includes the list of functions which handle miscellaneous issues
66 /** @defgroup Test Debug Test group
67 * \brief The Debug Test group includes the list of functions which Test the TWD and FW
75 #include "802_11Defs.h"
76 #include "TWDriverMsr.h"
77 #include "TWDriverScan.h"
78 #include "TWDriverRate.h"
79 #include "fwDebug_api.h"
82 * original firmware h-files
84 #include "public_commands.h"
85 #include "public_event_mbox.h"
86 #include "public_infoele.h"
87 #include "public_host_int.h"
88 #include "public_descriptors.h"
89 #include "public_radio.h"
92 * Firmware types defintions
95 #define uint8 TI_UINT8
98 #define uint16 TI_UINT16
101 #define uint32 TI_UINT32
107 #define int16 TI_INT16
110 #define int32 TI_INT32
116 * --------------------------------------------------------------
118 * --------------------------------------------------------------
121 /* PALAU Group Address Default Values */
122 #define NUM_GROUP_ADDRESS_VALUE_DEF 4
123 #define NUM_GROUP_ADDRESS_VALUE_MIN 0
124 #define NUM_GROUP_ADDRESS_VALUE_MAX 8
126 /* Early Wakeup Default Values */
127 #define EARLY_WAKEUP_ENABLE_MIN (TI_FALSE)
128 #define EARLY_WAKEUP_ENABLE_MAX (TI_TRUE)
129 #define EARLY_WAKEUP_ENABLE_DEF (TI_TRUE)
131 /* ARP IP Filter Default Values */
132 #define MIN_FILTER_ENABLE_VALUE 0
133 #define MAX_FILTER_ENABLE_VALUE 3
134 #define DEF_FILTER_ENABLE_VALUE 0
135 #define FILTER_ENABLE_FLAG_LEN 1
137 /* Beacon filter Deafult Values */
138 #define DEF_BEACON_FILTER_ENABLE_VALUE 1
139 #define DEF_BEACON_FILTER_IE_TABLE_NUM 16
140 #define MIN_BEACON_FILTER_ENABLE_VALUE 0
141 #define MAX_BEACON_FILTER_ENABLE_VALUE 1
142 #define BEACON_FILTER_IE_TABLE_DEF_SIZE 37
143 #define BEACON_FILTER_IE_TABLE_MAX_SIZE 100
144 #define BEACON_FILTER_IE_TABLE_MIN_SIZE 0
145 #define BEACON_FILTER_IE_TABLE_MAX_NUM (6+32)
146 #define BEACON_FILTER_IE_TABLE_MIN_NUM 0
148 /* CoexActivity Table Deafult Values */
149 #define COEX_ACTIVITY_TABLE_DEF_NUM 0
150 #define COEX_ACTIVITY_TABLE_MIN_NUM 0
151 #define COEX_ACTIVITY_TABLE_MAX_NUM 24*2
152 #define COEX_ACTIVITY_TABLE_SIZE ((2+1)+(2+1)+(2+1)+(2+1)+(4+1)+(4+1)) /* includes spaces between bytes */
154 #define DEF_NUM_STORED_FILTERS 1
155 #define MIN_NUM_STORED_FILTERS 1
156 #define MAX_NUM_STORED_FILTERS 8
158 #define TWD_HW_ACCESS_METHOD_MIN 0
159 #define TWD_HW_ACCESS_METHOD_MAX 2
160 #define TWD_HW_ACCESS_METHOD_DEF 1
162 #define TWD_SITE_FRAG_COLLECT_MIN 2
163 #define TWD_SITE_FRAG_COLLECT_MAX 10
164 #define TWD_SITE_FRAG_COLLECT_DEF 3
166 #define TWD_TX_MIN_MEM_BLKS_NUM 40 /* The MINIMUM number of Tx memory blocks configured to FW */
168 #define TWD_RX_BLOCKS_RATIO_MIN 0
169 #define TWD_RX_BLOCKS_RATIO_MAX 100
170 #define TWD_RX_BLOCKS_RATIO_DEF 50
172 #define TWD_TX_FLASH_ENABLE_MIN TI_FALSE
173 #define TWD_TX_FLASH_ENABLE_MAX TI_TRUE
174 #define TWD_TX_FLASH_ENABLE_DEF TI_TRUE
176 #define TWD_USE_INTR_TRHESHOLD_MIN 0
177 #define TWD_USE_INTR_TRHESHOLD_MAX 1
178 #define TWD_USE_INTR_TRHESHOLD_DEF 0
180 #define TWD_USE_TX_DATA_INTR_MIN 0
181 #define TWD_USE_TX_DATA_INTR_MAX 1
183 #define NUM_OF_CHANNELS_24 14
184 #define NUM_OF_CHANNELS_5 180
186 #define TWD_CALIBRATION_CHANNEL_2_4_MIN 1
187 #define TWD_CALIBRATION_CHANNEL_2_4_MAX NUM_OF_CHANNELS_24
188 #define TWD_CALIBRATION_CHANNEL_2_4_DEF 1
190 #define A_5G_BAND_MIN_CHANNEL 36
191 #define A_5G_BAND_MAX_CHANNEL 180
192 #define A_5G_BAND_NUM_CHANNELS (A_5G_BAND_MAX_CHANNEL-A_5G_BAND_MIN_CHANNEL+1)
194 #define TWD_CALIBRATION_CHANNEL_5_0_MIN 34
195 #define TWD_CALIBRATION_CHANNEL_5_0_MAX A_5G_BAND_MAX_CHANNEL
196 #define TWD_CALIBRATION_CHANNEL_5_0_DEF 36
198 #define TWD_CALIBRATION_CHANNEL_4_9_MIN 8
199 #define TWD_CALIBRATION_CHANNEL_4_9_MAX 16
200 #define TWD_CALIBRATION_CHANNEL_4_9_DEF 12
202 #define TWD_RTS_THRESHOLD_MIN 0
203 #define TWD_RTS_THRESHOLD_MAX 4096
204 #define TWD_RTS_THRESHOLD_DEF 4096
206 #define TWD_BCN_RX_TIME_OUT_MIN 10 /* ms */
207 #define TWD_BCN_RX_TIME_OUT_MAX 1000 /* ms */
208 #define TWD_BCN_RX_TIME_OUT_DEF 10 /* ms */
210 #define TWD_RX_DISABLE_BROADCAST_MIN TI_FALSE
211 #define TWD_RX_DISABLE_BROADCAST_MAX TI_TRUE
212 #define TWD_RX_DISABLE_BROADCAST_DEF TI_FALSE
214 /* Indicate if the recovery process is active or not */
215 #define TWD_RECOVERY_ENABLE_MIN TI_FALSE
216 #define TWD_RECOVERY_ENABLE_MAX TI_TRUE
217 #define TWD_RECOVERY_ENABLE_DEF TI_TRUE
219 /* Indicate if working with Burst Mode or not */
220 #define BURST_MODE_ENABLE_MIN TI_FALSE
221 #define BURST_MODE_ENABLE_MAX TI_TRUE
222 #define BURST_MODE_ENABLE_DEF TI_FALSE
224 #define SMART_REFLEX_STATE_MIN TI_FALSE
225 #define SMART_REFLEX_STATE_MAX TI_TRUE
226 #define SMART_REFLEX_STATE_DEF TI_TRUE
228 #define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"
229 #define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF1 "07,03,18,10,05,fb,f0,e8, 0,0,0,0,0,0,0f,3f"
230 #define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF2 "07,03,18,10,05,f6,f0,e8"
231 #define SMART_REFLEX_CONFIG_PARAMS_DEF_TABLE_SRF3 "07,03,18,10,05,fb,f0,e8"
233 #define TWD_FRAG_THRESHOLD_MIN 256
234 #define TWD_FRAG_THRESHOLD_MAX 4096
235 #define TWD_FRAG_THRESHOLD_DEF 4096
237 #define TWD_MAX_TX_MSDU_LIFETIME_MIN 0
238 #define TWD_MAX_TX_MSDU_LIFETIME_MAX 3000
239 #define TWD_MAX_TX_MSDU_LIFETIME_DEF 512
241 #define TWD_MAX_RX_MSDU_LIFETIME_MIN 0
242 #define TWD_MAX_RX_MSDU_LIFETIME_MAX 0xFFFFFFFF
243 #define TWD_MAX_RX_MSDU_LIFETIME_DEF 512000
246 #define TWD_LISTEN_INTERVAL_MIN 1
247 #define TWD_LISTEN_INTERVAL_MAX 10
248 #define TWD_LISTEN_INTERVAL_DEF 3
250 /* This field indicates the number of transmit retries to attempt at
251 the rate specified in the TNETW Tx descriptor before
252 falling back to the next lowest rate.
253 If this field is set to 0xff, then rate fallback is disabled.
254 If this field is 0, then there will be 0 retries before starting fallback.*/
255 #define TWD_RATE_FB_RETRY_LIMIT_MIN 0 /* => No retries before starting RateFallBack */
256 #define TWD_RATE_FB_RETRY_LIMIT_MAX 255 /* =>0xff for disabling Rate fallback */
257 #define TWD_RATE_FB_RETRY_LIMIT_DEF 0
259 #define TWD_TX_ANTENNA_MIN TX_ANTENNA_2
260 #define TWD_TX_ANTENNA_MAX TX_ANTENNA_1
261 #define TWD_TX_ANTENNA_DEF TX_ANTENNA_1
263 #define TWD_RX_ANTENNA_MIN RX_ANTENNA_1
264 #define TWD_RX_ANTENNA_MAX RX_ANTENNA_PARTIAL
265 #define TWD_RX_ANTENNA_DEF RX_ANTENNA_FULL
268 * Tx and Rx interrupts pacing (threshold in packets, timeouts in milliseconds)
270 #define TWD_TX_CMPLT_THRESHOLD_DEF 4 /* 0 means no pacing so send interrupt on every event */
271 #define TWD_TX_CMPLT_THRESHOLD_MIN 0
272 #define TWD_TX_CMPLT_THRESHOLD_MAX 30
274 #define TWD_TX_CMPLT_TIMEOUT_DEF 700 /* The Tx Complete interrupt pacing timeout in microseconds! */
275 #define TWD_TX_CMPLT_TIMEOUT_MIN 1
276 #define TWD_TX_CMPLT_TIMEOUT_MAX 50000
278 #define TWD_RX_INTR_THRESHOLD_DEF 0 /* 0 means no pacing so send interrupt on every event */
279 #define TWD_RX_INTR_THRESHOLD_MIN 0
280 #define TWD_RX_INTR_THRESHOLD_MAX 30
281 #define TWD_RX_INTR_THRESHOLD_DEF_WIFI_MODE 0 /* No Rx interrupt pacing so send interrupt on every event */
283 #define TWD_RX_INTR_TIMEOUT_DEF 600 /* The Rx interrupt pacing timeout in microseconds! */
284 #define TWD_RX_INTR_TIMEOUT_MIN 1
285 #define TWD_RX_INTR_TIMEOUT_MAX 50000
287 /* Rx aggregation packets number limit (max packets in one aggregation) */
288 #define TWD_RX_AGGREG_PKTS_LIMIT_DEF 4
289 #define TWD_RX_AGGREG_PKTS_LIMIT_MIN 0
290 #define TWD_RX_AGGREG_PKTS_LIMIT_MAX 4
292 /* Tx aggregation packets number limit (max packets in one aggregation) */
293 #define TWD_TX_AGGREG_PKTS_LIMIT_DEF 0
294 #define TWD_TX_AGGREG_PKTS_LIMIT_MIN 0
295 #define TWD_TX_AGGREG_PKTS_LIMIT_MAX 32
300 #define DBM_TO_TX_POWER_FACTOR 10
302 /* TX_POWER is in Dbm/10 units */
303 #define MAX_TX_POWER 250
304 #define MIN_TX_POWER 0
305 #define DEF_TX_POWER 205
308 #define MIN_DEFAULT_KEY_ID 0
309 #define MAX_DEFAULT_KEY_ID 3
311 #define KEY_RSC_LEN 8
312 #define MIN_KEY_LEN 5
313 #define MAX_KEY_LEN 32
315 #define TWD_RSSI_BEACON_WEIGHT_MIN 0
316 #define TWD_RSSI_BEACON_WEIGHT_MAX 100
317 #define TWD_RSSI_BEACON_WEIGHT_DEF 20
319 #define TWD_RSSI_PACKET_WEIGHT_MIN 0
320 #define TWD_RSSI_PACKET_WEIGHT_MAX 100
321 #define TWD_RSSI_PACKET_WEIGHT_DEF 10
323 #define TWD_SNR_BEACON_WEIGHT_MIN 0
324 #define TWD_SNR_BEACON_WEIGHT_MAX 100
325 #define TWD_SNR_BEACON_WEIGHT_DEF 20
327 #define TWD_SNR_PACKET_WEIGHT_MIN 0
328 #define TWD_SNR_PACKET_WEIGHT_MAX 100
329 #define TWD_SNR_PACKET_WEIGHT_DEF 10
331 #define TWD_DCO_ITRIM_ENABLE_MIN TI_FALSE
332 #define TWD_DCO_ITRIM_ENABLE_MAX TI_TRUE
333 #define TWD_DCO_ITRIM_ENABLE_DEF TI_FALSE
335 #define TWD_DCO_ITRIM_MODERATION_TIMEOUT_MIN 10000
336 #define TWD_DCO_ITRIM_MODERATION_TIMEOUT_MAX 1000000
337 #define TWD_DCO_ITRIM_MODERATION_TIMEOUT_DEF 50000
340 #define MAX_NUM_OF_AC 4
342 /************************************/
344 /************************************/
345 /* The next definitions are used to decide which encryption is used by the Rx flags */
346 #define RX_FLAGS_NO_SECURITY 0
347 #define RX_FLAGS_WEP 1
348 #define RX_FLAGS_TKIP 2
349 #define RX_FLAGS_AES 3
352 #define RX_DESC_FLAGS_ENCRYPTION 8
353 #define RX_PACKET_FLAGS_ENCRYPTION_SHIFT 16
354 #define RX_PACKET_FLAGS_ENCRYPTION_SHIFT_FROM_DESC (RX_PACKET_FLAGS_ENCRYPTION_SHIFT - RX_DESC_FLAGS_ENCRYPTION)
356 /* Tx packet Control-Block flags bit-mask. */
357 #define TX_CTRL_FLAG_XFER_DONE_ISSUED 0x0001 /* Xfer-Done already issued to upper driver - for WHA. */
358 #define TX_CTRL_FLAG_TX_COMPLETE_ISSUED 0x0002 /* Tx-Complete already issued to upper driver - for WHA. */
359 #define TX_CTRL_FLAG_LINK_TEST 0x0004 /* XCC link test packet */
360 #define TX_CTRL_FLAG_SENT_TO_FW 0x0008 /* Set after the packet is allowed to be sent to FW (by TxHwQueue) */
361 #define TX_CTRL_FLAG_PKT_IN_RAW_BUF 0x0010 /* The input packet is in a raw buffer (as opposed to OS packet) */
362 #define TX_CTRL_FLAG_MULTICAST 0x0020 /* A multicast ethernet packet */
363 #define TX_CTRL_FLAG_BROADCAST 0x0040 /* A broadcast ethernet packet */
365 #define TX_PKT_TYPE_MGMT 1 /* Management Packet */
366 #define TX_PKT_TYPE_EAPOL 2 /* EAPOL packet (Ethernet) */
367 #define TX_PKT_TYPE_ETHER 3 /* Data packet from the Network interface */
368 #define TX_PKT_TYPE_WLAN_DATA 4 /* Driver generated WLAN Data Packet (currently used for IAPP packet) */
371 #define ALIGN_4BYTE_MASK 0x3 /* Masked LS bits for 4-bytes aligned addresses or lengths. */
372 #define SHIFT_BETWEEN_TU_AND_USEC 10 /* Shift factor to convert between TU (1024 uSec) and uSec. */
374 /* Packet header + extensions structure ranges between 24 and 48 bytes as follows:
375 * ------------------------------------------------------------------------------
376 * Alignment Padding: 0/2 bytes, added for 4 bytes alignment of this structure.
377 * Mac-Header: 24 bytes, 802.11 basic header.
378 * Qos header: 0/2 bytes, for QoS-data or QoS-Null the two QoS bytes are added.
379 * Security Pad: 0/0/4/8/18 bytes, for None/WEP/TKIP/AES/GEM.
380 * LLC/SNAP: 0/8 bytes, added only for data packets.
381 * HT control: 0/4 added only for packte support QoS and HT
383 #define MAX_HEADER_SIZE 48
385 /* Data body max length */
386 #define MAX_DATA_BODY_LENGTH 4096
390 /* The weight in % of the new packet relative to the previous average value of RSSI */
391 #define RSSI_DEFAULT_WEIGHT 20
393 #define RSSI_DEFAULT_THRESHOLD -80
394 #define SNR_DEFAULT_THRESHOLD 0
397 * 'No beacon' roaming trigger configuration
398 * Number of consecutive beacons (or DTIM periods) missed before
399 * 'Out of Sync' event is raised
401 #define OUT_OF_SYNC_DEFAULT_THRESHOLD 10
403 * IBSS - Number of consecutive beacons (or DTIM periods) missed before
404 * 'Out of Sync' event is raised
406 #define OUT_OF_SYNC_IBSS_THRESHOLD 200
407 /* Period of time between 'Out of sync' and 'No beacon' events */
408 #define NO_BEACON_DEFAULT_TIMEOUT 100 /* in tu-s*/
410 /* Consecutive NACK roaming trigger configuration */
411 #define NO_ACK_DEFAULT_THRESHOLD 20
413 /* Low Rx rate roaming trigger configuration */
414 #define LOW_RATE_DEFAULT_THRESHOLD 2
416 #define MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES 8
417 #define MAX_CHANNELS_IN_REG_DOMAIN 40
419 #define CTS_TO_SELF_DISABLE 0
420 #define CTS_TO_SELF_ENABLE 1
422 #define MAX_TEMPLATE_SIZE 256
425 #define MAX_NUMBER_OF_CHANNELS_PER_SCAN 16
426 #define SCAN_MAX_NUM_OF_NORMAL_CHANNELS_PER_COMMAND MAX_NUMBER_OF_CHANNELS_PER_SCAN
427 #define SCAN_MAX_NUM_OF_SPS_CHANNELS_PER_COMMAND 16
428 #define SCAN_DEFAULT_MIN_CHANNEL_DWELL_TIME 30000
429 #define SCAN_DEFAULT_MAX_CHANNEL_DWELL_TIME 60000
430 #define SCAN_DEFAULT_EARLY_TERMINATION_EVENT SCAN_ET_COND_DISABLE
431 #define SCAN_DEFAULT_EARLY_TERMINATION_NUM_OF_FRAMES 0
433 #define NUM_OF_NOISE_HISTOGRAM_COUNTERS 8
435 #define TX_DESCRIPTOR_SIZE sizeof(TxIfDescriptor_t)
437 #define CTRL_BLK_ENTRIES_NUM 160
439 #define HT_CAP_AMPDU_PARAMETERS_FIELD_OFFSET 2
440 #define HT_CAP_HT_EXTENDED_FIELD_OFFSET 19
441 #define HT_CAP_AMPDU_MAX_RX_FACTOR_BITMASK 0x3
442 #define HT_CAP_AMPDU_MIN_START_SPACING_BITMASK 0x7
443 #define HT_CAP_GREENFIELD_FRAME_FORMAT_BITMASK 0x0010
444 #define HT_CAP_SHORT_GI_FOR_20MHZ_BITMASK 0x0020
445 #define HT_CAP_LSIG_TXOP_PROTECTION_BITMASK 0x8000
446 #define HT_EXT_HT_CONTROL_FIELDS_BITMASK 0x0400
447 #define HT_EXT_RD_INITIATION_BITMASK 0x0800
448 #define HT_INF_RIFS_MOD_BITMASK 0x08
449 #define HT_INF_OPERATION_MOD_BITMASK 0x03
450 #define HT_INF_NON_GF_PRES_BITMASK 0x04
451 #define HT_INF_TX_BURST_LIMIT_BITMASK 0x08
452 #define HT_INF_DUAL_BEACON_BITMASK 0x40
453 #define HT_INF_DUAL_CTS_PROTECTION_BITMASK 0x80
456 * TWD HT capabilities, physical capabilities of the STA.
457 * The structure is defined like that in order to simplify the interface with WHA layer.
459 #define RX_TX_MCS_BITMASK_SIZE 10
461 #define DSSS_CCK_MODE 1
463 #define MCS_HIGHEST_SUPPORTED_RECEPTION_DATA_RATE_IN_MBIT_S 0x48
465 #define IMPLICIT_TXBF_REC_CAPABLE 1
466 #define TRANSMIT_STAGGERED_SOUNDING_CAPABLE 1
468 /* Firmware version name length */
469 #define FW_VERSION_LEN 20
471 /*the max table sized is : ( number of 221 * 8 bytes ) + ( non-221 * 2 bytes )
472 Must be synchronized with the size of ACX defined in public_infoele.h interface
475 #define MIB_MAX_SIZE_OF_IE_TABLE 112
476 #define MIB_TEMPLATE_DATA_MAX_LEN 256
477 #define MIB_MAX_MULTICAST_GROUP_ADDRS 8
479 #define MAX_MULTICAST_GROUP_ADDRS 8
481 /* Max numver of policies */
482 #define MAX_NUM_OF_TX_RATE_CLASS_POLICIES 8
484 #define NUM_POWER_LEVELS 4
485 #define MAX_POWER_LEVEL 1
486 #define MIN_POWER_LEVEL NUM_POWER_LEVELS
489 * --------------------------------------------------------------
491 * --------------------------------------------------------------
494 * \brief TWD input/output files
497 * Indicates which File (or part of file) to read or write
503 FILE_TYPE_INI = 0, /**< */
504 FILE_TYPE_NVS, /**< */
505 FILE_TYPE_FW, /**< */
506 FILE_TYPE_FW_NEXT /**< */
509 /** \enum EKeepAliveTriggerType
510 * \brief Keep Alive Trigger Types
513 * Indicates when to trigger Keep Alive
515 * \sa TKeepAliveParams
520 KEEP_ALIVE_TRIG_TYPE_NO_TX = 0, /**< */
521 KEEP_ALIVE_TRIG_TYPE_PERIOD_ONLY /**< */
523 } EKeepAliveTriggerType;
526 * \brief Radio (PHY) Slot Time Type
529 * Used for configuring PHY Slot Time for FW
531 * \sa TWD_CfgPreamble
535 PHY_SLOT_TIME_LONG = 0, /**< Long PHY Slot Time */
536 PHY_SLOT_TIME_SHORT = 1 /**< Short PHY Slot Time */
541 * \brief MIB Element Type
544 * Used for R/W MIB to FW
550 /* 0x00 */ MIB_dot11MaxReceiveLifetime = 0, /**< */
551 /* 0x01 */ MIB_dot11SlotTime, /**< */
552 /* 0x02 */ MIB_dot11GroupAddressesTable, /**< */
553 /* 0x03 */ MIB_dot11WepDefaultKeyId, /**< */
554 /* 0x04 */ MIB_dot11CurrentTxPowerLevel, /**< */
555 /* 0x05 */ MIB_dot11RTSThreshold, /**< */
556 /* 0x06 */ MIB_ctsToSelf, /**< */
557 /* 0x07 */ MIB_arpIpAddressesTable, /**< */
558 /* 0x08 */ MIB_templateFrame, /**< */
559 /* 0x09 */ MIB_rxFilter, /**< */
560 /* 0x0A */ MIB_beaconFilterIETable, /**< */
561 /* 0x0B */ MIB_beaconFilterEnable, /**< */
562 /* 0x0C */ MIB_sleepMode, /**< */
563 /* 0x0D */ MIB_wlanWakeUpInterval, /**< */
564 /* 0x0E */ MIB_beaconLostCount, /**< */
565 /* 0x0F */ MIB_rcpiThreshold, /**< */
566 /* 0x10 */ MIB_statisticsTable, /**< */
567 /* 0x11 */ MIB_ibssPsConfig, /**< */
568 /* 0x12 */ MIB_txRatePolicy, /**< */
569 /* 0x13 */ MIB_countersTable, /**< */
570 /* 0x14 */ MIB_btCoexsitenceMode, /**< */
571 /* 0x15 */ MIB_btCoexistenceParameters, /**< */
573 /* must be last!!! */
574 MIB_lastElem = 0xFFFF /**< */
579 * \brief TWD Control parameter ID
582 * FW Parmaeter Information Identifier
584 * \sa TWD_SetParam, TWD_GetParam
588 /* 0x01 */ TWD_RTS_THRESHOLD_PARAM_ID = 0x01, /**< */
589 /* 0x02 */ TWD_FRAG_THRESHOLD_PARAM_ID, /**< */
590 /* 0x03 */ TWD_COUNTERS_PARAM_ID, /**< */
591 /* 0x04 */ TWD_LISTEN_INTERVAL_PARAM_ID, /**< */
592 /* 0x05 */ TWD_BEACON_INTERVAL_PARAM_ID, /**< */
593 /* 0x06 */ TWD_TX_POWER_PARAM_ID, /**< */
594 /* 0x07 */ TWD_CLK_RUN_ENABLE_PARAM_ID, /**< */
595 /* 0x08 */ TWD_QUEUES_PARAM_ID, /**< */
596 /* 0x09 */ TWD_TX_RATE_CLASS_PARAM_ID, /**< */
597 /* 0x0A */ TWD_MAX_TX_MSDU_LIFE_TIME_PARAM_ID, /**< */
598 /* 0x0B */ TWD_MAX_RX_MSDU_LIFE_TIME_PARAM_ID, /**< */
599 /* 0x0C */ TWD_CTS_TO_SELF_PARAM_ID, /**< */
600 /* 0x0D */ TWD_RX_TIME_OUT_PARAM_ID, /**< */
601 /* 0x0E */ TWD_BCN_BRC_OPTIONS_PARAM_ID, /**< */
602 /* 0x0F */ TWD_AID_PARAM_ID, /**< */
603 /* 0x10 */ TWD_RSN_HW_ENC_DEC_ENABLE_PARAM_ID, /**< */
604 /* 0x11 */ TWD_RSN_KEY_ADD_PARAM_ID, /**< */
605 /* 0x12 */ TWD_RSN_KEY_REMOVE_PARAM_ID, /**< */
606 /* 0x13 */ TWD_RSN_DEFAULT_KEY_ID_PARAM_ID, /**< */
607 /* 0x14 */ TWD_RSN_SECURITY_MODE_PARAM_ID, /**< */
608 /* 0x15 */ TWD_RSN_SECURITY_ALARM_CB_SET_PARAM_ID, /**< */
609 /* 0x16 */ TWD_ACX_STATISTICS_PARAM_ID, /**< */
610 /* 0x17 */ TWD_MEDIUM_OCCUPANCY_PARAM_ID, /**< */
611 /* 0x18 */ TWD_DISABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID, /**< */
612 /* 0x19 */ TWD_ENABLE_POWER_MANAGEMENT_AUTO_CONFIG_PARAM_ID, /**< */
613 /* 0x1A */ TWD_SG_ENABLE_PARAM_ID, /**< */
614 /* 0x1B */ TWD_SG_CONFIG_PARAM_ID, /**< */
615 #ifdef XCC_MODULE_INCLUDED
616 /* 0x1C */ TWD_RSN_XCC_SW_ENC_ENABLE_PARAM_ID, /**< */
617 /* 0x1D */ TWD_RSN_XCC_MIC_FIELD_ENABLE_PARAM_ID, /**< */
618 #endif /* XCC_MODULE_INCLUDED*/
619 /* 0x1E */ TWD_TX_OP_LIMIT_PARAM_ID, /**< */
620 /* 0x1F */ TWD_NOISE_HISTOGRAM_PARAM_ID, /**< */
621 /* 0x20 */ TWD_TSF_DTIM_MIB_PARAM_ID, /**< */
622 /* 0x21 */ TWD_REVISION_PARAM_ID, /**< */
623 /* 0x22 */ TWD_CURRENT_CHANNEL_PARAM_ID, /**< */
624 /* 0x23 */ TWD_RADIO_TEST_PARAM_ID, /**< */
625 /* 0x24 */ TWD_RSSI_LEVEL_PARAM_ID, /**< */
626 /* 0x25 */ TWD_SNR_RATIO_PARAM_ID, /**< */
627 /* 0x26 */ TWD_COEX_ACTIVITY_PARAM_ID, /**< */
628 /* 0x27 */ TWD_FM_COEX_PARAM_ID, /**< */
629 /* 0x28 */ TWD_DCO_ITRIM_PARAMS_ID, /**< */
631 /* must be last!!! */
632 /* 0x29 */ TWD_LAST_PARAM_ID /**< */
635 /** \enum ETwdCallbackOwner
636 * \brief TWD Callback Module owner ID
639 * The Owner ID defines a specific TWD Module
641 * \sa ETwdEventId, TWD_RegisterCb
645 TWD_OWNER_DRIVER_TX_XFER = 0x0100, /**< TX Xfer Owner ID */
646 TWD_OWNER_RX_XFER = 0x0200, /**< RX Xfer Owner ID */
647 TWD_OWNER_SELF = 0x0300, /**< Self Owner ID */
648 TWD_OWNER_MAC_SERVICES = 0x0400, /**< MAC Services Owner ID */
649 TWD_OWNER_TX_RESULT = 0x0500, /**< TX Result Owner ID */
650 TWD_OWNER_SELF_CONFIG = 0x0600, /**< Self configuration of Owner ID */
651 TWD_OWNER_RX_QUEUE = 0x0700, /**< RX Queue Owner ID */
652 TWD_OWNER_TX_HW_QUEUE = 0x0800 /**< TX HW Queue Owner ID */
656 /** \enum ETwdIntCallbackId
657 * \brief TWD Internal Callbacks ID
660 * The Owner ID defines a specific TWD Internal CB
666 TWD_INT_SEND_PACKET_TRANSFER = 0x00 , /**< Tx Data Path Send Callback */
667 TWD_INT_SEND_PACKET_COMPLETE , /**< Tx Data Path Complete Callback */
668 TWD_INT_UPDATE_BUSY_MAP , /**< Tx Data Path Update-Busy-Map Callback */
670 /* Rx Data Path Callbacks */
671 TWD_INT_RECEIVE_PACKET = 0x10 , /**< Rx Data Path Receive Packet Callback */
672 TWD_INT_REQUEST_FOR_BUFFER , /**< Rx Data Path Request for buffer Callback */
675 TWD_INT_COMMAND_COMPLETE = 0x20 , /**< TWD internal Command Complete Callback */
676 TWD_INT_EVENT_FAILURE /**< TWD internal Event Failure handle Callback */
680 /** \enum ETwdOwnEventId
681 * \brief Event Mail Box ID
684 * Clients That expects an event should register for it,
685 * and Mask/UnMask Events with this ID
689 /* Note: changes here should be reflected also in eventTable in eventMbox.c !!! */
693 /* 0 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_0 = 0, /**< */
694 /* 1 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_1, /**< */
695 /* 2 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_2, /**< */
696 /* 3 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_3, /**< */
697 /* 4 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_4, /**< */
698 /* 5 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_5, /**< */
699 /* 6 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_6, /**< */
700 /* 7 */ TWD_OWN_EVENT_RSSI_SNR_TRIGGER_7, /**< */
701 /* 8 */ TWD_OWN_EVENT_MEASUREMENT_START, /**< */
702 /* 9 */ TWD_OWN_EVENT_MEASUREMENT_COMPLETE, /**< */
703 /* 10 */ TWD_OWN_EVENT_SCAN_CMPLT, /**< */
704 /* 11 */ TWD_OWN_EVENT_SPS_SCAN_CMPLT, /**< */
705 /* 12 */ TWD_OWN_EVENT_AP_DISCOVERY_COMPLETE, /**< */
706 /* 13 */ TWD_OWN_EVENT_PS_REPORT, /**< */
707 /* 14 */ TWD_OWN_EVENT_PSPOLL_DELIVERY_FAILURE, /**< */
708 /* 15 */ TWD_OWN_EVENT_DISCONNECT_COMPLETE, /**< */
709 /* 16 */ TWD_OWN_EVENT_JOIN_CMPLT, /**< */
710 /* 17 */ TWD_OWN_EVENT_SWITCH_CHANNEL_CMPLT, /**< */
711 /* 18 */ TWD_OWN_EVENT_BSS_LOSE, /**< */
712 /* 19 */ TWD_OWN_EVENT_BSS_REGAIN, /**< */
713 /* 20 */ TWD_OWN_EVENT_MAX_TX_RETRY, /**< */
714 /* 21 */ RESERVED21, /**< */
715 /* 22 */ TWD_OWN_EVENT_SOFT_GEMINI_SENSE, /**< */
716 /* 23 */ TWD_OWN_EVENT_SOFT_GEMINI_PREDIC, /**< */
717 /* 24 */ TWD_OWN_EVENT_SOFT_GEMINI_AVALANCHE, /**< */
718 /* 25 */ TWD_OWN_EVENT_PLT_RX_CALIBRATION_COMPLETE, /**< */
719 /* 26 */ TWD_DBG_EVENT, /**< */
720 /* 27 */ TWD_HEALTH_CHECK_REPLY_EVENT, /**< */
721 /* 28 */ TWD_OWN_EVENT_PERIODIC_SCAN_COMPLETE, /**< */
722 /* 29 */ TWD_OWN_EVENT_PERIODIC_SCAN_REPORT, /**< */
723 /* 30 */ TWD_BA_SESSION_TEAR_DOWN_EVENT, /**< */
724 /* 31 */ TWD_OWN_EVENT_ALL, /**< */
725 /* 32 */ TWD_OWN_EVENT_MAX /**< */
729 /** \enum ETwdEventId
730 * \brief TNETW Driver Event ID
733 * The TWD Event ID is used by user for registering a TWD Internal CB
734 * which will handle a TWD Event.
735 * Each field in this enum is an ID of TWD Event, and is combined of two IDs:
736 * TWD CB Owner (Module) ID and TWD Internal CB ID. Therefore, the CB is registered accordeing to
737 * Module (Owner) and Internal CB Id.
739 * \sa TWD_RegisterCb, ETwdCallbackOwner, ETwdIntCallbackId
743 /* Internal Failure Event Callbacks */
744 TWD_EVENT_FAILURE = TWD_OWNER_SELF | TWD_INT_EVENT_FAILURE, /**< Failure Internal Event ID */
745 TWD_EVENT_COMMAND_COMPLETE = TWD_OWNER_SELF | TWD_INT_COMMAND_COMPLETE, /**< Command Complete Internal Event ID */
747 /* Tx Data Path Callbacks */
748 TWD_EVENT_TX_XFER_SEND_PKT_TRANSFER = TWD_OWNER_DRIVER_TX_XFER | TWD_INT_SEND_PACKET_TRANSFER, /**< TX Data Path Send Packet Event ID */
749 TWD_EVENT_TX_RESULT_SEND_PKT_COMPLETE = TWD_OWNER_TX_RESULT | TWD_INT_SEND_PACKET_COMPLETE, /**< TX Data Path Send Packet Complete Event ID */
750 TWD_EVENT_TX_HW_QUEUE_UPDATE_BUSY_MAP = TWD_OWNER_TX_HW_QUEUE | TWD_INT_UPDATE_BUSY_MAP, /**< TX Data Path Update-Busy-Map Event ID */
752 /* Rx Data Path Callbacks */
753 TWD_EVENT_RX_REQUEST_FOR_BUFFER = TWD_OWNER_RX_XFER | TWD_INT_REQUEST_FOR_BUFFER, /**< RX Data Path Request for Buffer Internal Event ID */
754 TWD_EVENT_RX_RECEIVE_PACKET = TWD_OWNER_RX_QUEUE | TWD_INT_RECEIVE_PACKET /**< RX Data Path Receive Packet Internal Event ID */
759 /** \enum ETwdPrintInfoType
760 * \brief TWD print functions codes
763 * Used for Debug - determines which Tx Info to print
765 * \sa TWD_PrintTxInfo
769 /* 0 */ TWD_PRINT_TX_CTRL_BLK_TBL = 0, /**< Print TX Control Block Information */
770 /* 1 */ TWD_PRINT_TX_HW_QUEUE_INFO, /**< Print TX HW Queue Information */
771 /* 2 */ TWD_PRINT_TX_XFER_INFO, /**< Print TX XFER Information */
772 /* 3 */ TWD_PRINT_TX_RESULT_INFO, /**< Print TX Result Information */
773 /* 4 */ TWD_CLEAR_TX_RESULT_INFO, /**< Clear TX Result Information */
774 /* 5 */ TWD_CLEAR_TX_XFER_INFO /**< Clear TX Xfer Information */
784 * \sa TWD_PrintTxInfo
788 /* 0 */ IP_VER_4 = 0, /**< */
789 /* 1 */ IP_VER_6 /**< */
803 /* 0 */ KEY_NULL = 0, /**< */
804 /* 1 */ KEY_WEP, /**< */
805 /* 2 */ KEY_TKIP, /**< */
806 /* 3 */ KEY_AES, /**< */
807 /* 4 */ KEY_XCC, /**< */
814 /** \enum ERegistryTxRate
815 * \brief TX Rate Type
821 /* Make it same as "rate_e" */
824 /* This value is reserved if this enum is used for MgmtCtrlTxRate - the auto mode is only valid for data packets */
825 /* 0 */ REG_RATE_AUTO_BIT = 0, /**< */
826 /* 1 */ REG_RATE_1M_BIT, /**< */
827 /* 2 */ REG_RATE_2M_BIT, /**< */
828 /* 3 */ REG_RATE_5_5M_CCK_BIT, /**< */
829 /* 4 */ REG_RATE_11M_CCK_BIT, /**< */
830 /* 5 */ REG_RATE_22M_PBCC_BIT, /**< */
831 /* 6 */ REG_RATE_6M_OFDM_BIT, /**< */
832 /* 7 */ REG_RATE_9M_OFDM_BIT, /**< */
833 /* 8 */ REG_RATE_12M_OFDM_BIT, /**< */
834 /* 9 */ REG_RATE_18M_OFDM_BIT, /**< */
835 /* 10 */ REG_RATE_24M_OFDM_BIT, /**< */
836 /* 11 */ REG_RATE_36M_OFDM_BIT, /**< */
837 /* 12 */ REG_RATE_48M_OFDM_BIT, /**< */
838 /* 13 */ REG_RATE_54M_OFDM_BIT, /**< */
839 /* 14 */ REG_RATE_MCS0_OFDM_BIT, /**< */
840 /* 15 */ REG_RATE_MCS1_OFDM_BIT, /**< */
841 /* 16 */ REG_RATE_MCS2_OFDM_BIT, /**< */
842 /* 17 */ REG_RATE_MCS3_OFDM_BIT, /**< */
843 /* 18 */ REG_RATE_MCS4_OFDM_BIT, /**< */
844 /* 19 */ REG_RATE_MCS5_OFDM_BIT, /**< */
845 /* 20 */ REG_RATE_MCS6_OFDM_BIT, /**< */
846 /* 21 */ REG_RATE_MCS7_OFDM_BIT /**< */
850 /** \enum EFailureEvent
851 * \brief Failure Event
854 * Used as a parameter for Failure Event CB -
855 * Inicates Failure Event ID, according which the Failure
856 * Event's data is driven
858 * \sa TWD_RegisterOwnCb, TFailureEventCb
862 /* -1 */ NO_FAILURE = -1, /**< No Failure Event */
863 /* 0 */ NO_SCAN_COMPLETE_FAILURE = 0, /**< No Scan Complete Failure Event */
864 /* 1 */ MBOX_FAILURE, /**< Mail Box Failure Event */
865 /* 2 */ HW_AWAKE_FAILURE, /**< HW Awake Failure Event */
866 /* 3 */ TX_STUCK, /**< TX STUCK Failure Event */
867 /* 4 */ DISCONNECT_TIMEOUT, /**< Disconnect Timeout Failure Event */
868 /* 5 */ POWER_SAVE_FAILURE, /**< Power Save Failure Event */
869 /* 6 */ MEASUREMENT_FAILURE, /**< Measurement Failure Event */
870 /* 7 */ BUS_FAILURE, /**< Bus Failure Event */
871 /* 8 */ HW_WD_EXPIRE, /**< HW Watchdog Expire Event */
872 /* 9 */ RX_XFER_FAILURE, /**< Rx pkt xfer failure */
874 /* must be last!!! */
875 /* 10 */ MAX_FAILURE_EVENTS /**< Maximum number of Failure Events */
879 /** \enum ETemplateType
880 * \brief Template Type
883 * Used for setting/Getting a Template to/from FW
885 * \sa TWD_CmdTemplate, TWD_WriteMibTemplateFrame, TSetTemplate TWD_GetTemplate
889 /* 0 */ NULL_DATA_TEMPLATE = 0, /**< NULL Data Template */
890 /* 1 */ BEACON_TEMPLATE, /**< Beacon Template */
891 /* 2 */ PROBE_REQUEST_TEMPLATE, /**< PROBE Request Template */
892 /* 3 */ PROBE_RESPONSE_TEMPLATE, /**< PROBE Response Template */
893 /* 4 */ QOS_NULL_DATA_TEMPLATE, /**< Quality Of Service NULL Data Template */
894 /* 5 */ PS_POLL_TEMPLATE, /**< Power Save Poll Template */
895 /* 6 */ KEEP_ALIVE_TEMPLATE, /**< Keep Alive Template */
896 /* 7 */ DISCONN_TEMPLATE, /**< Disconn (Deauth/Disassoc) Template */
897 /* 8 */ ARP_RSP_TEMPLATE /**< ARP Ressponse Template */
908 KEY_AES_PAIRWISE = 5,
910 KEY_TKIP_MIC_GROUP = 10,
911 KEY_TKIP_MIC_PAIRWISE = 11
915 /** \enum ECipherSuite
916 * \brief CHIPHER Suite
919 * Available cipher suites for admission control
925 /* 0 */ TWD_CIPHER_NONE = 0, /**< no cipher suite */
926 /* 1 */ TWD_CIPHER_WEP, /**< WEP-40 cipher suite */
927 /* 2 */ TWD_CIPHER_TKIP, /**< TKIP cipher suite */
928 /* 3 */ TWD_CIPHER_AES_WRAP, /**< AES WRAP cipher suite */
929 /* 4 */ TWD_CIPHER_AES_CCMP, /**< AES CCMP cipher suite */
930 /* 5 */ TWD_CIPHER_WEP104, /**< WEP-104 cipher suite */
931 /* 6 */ TWD_CIPHER_CKIP, /**< CKIP cipher suite */
933 /* 7 */ TWD_CIPHER_GEM, /**< GEM cipher suite */
937 TWD_CIPHER_UNKNOWN = 255 /**< UNKNOWN chpiher suite */
941 /** \enum E80211PsMode
942 * \brief 802.11 Power Save Mode
946 * \sa TWD_Scan, TWD_SetPsMode
950 /* 0 */ POWER_SAVE_OFF = 0, /**< power save 802.11 OFF */
951 /* 1 */ POWER_SAVE_ON, /**< power save 802.11 ON */
952 /* 2 */ POWER_SAVE_KEEP_CURRENT /**< power save 802.11 don't change */
956 /** \enum E80211PsStatus
957 * \brief Set Power Save mode status
965 /* 1 */ POWER_SAVE_802_11_SUCCESS = 1, /**< power save mode Success */
966 /* 2 */ POWER_SAVE_802_11_FAIL, /**< power save mode Fail */
967 /* 3 */ POWER_SAVE_802_11_NOT_ALLOWED, /**< power save mode Not Allowed */
968 /* 4 */ POWER_SAVE_802_11_PENDING, /**< power save mode Pending */
969 /* 5 */ POWER_SAVE_802_11_IS_CURRENT /**< power save mode Is Current */
973 /** \enum EElpCtrlMode
974 * \brief ELP Control Mode
982 /* 0 */ ELPCTRL_MODE_NORMAL = 0, /**< ALP Control mode Normal */
983 /* 1 */ ELPCTRL_MODE_KEEP_AWAKE /**< ALP Control mode Keep Awake */
988 * \brief Preamble Type
992 * \sa TWD_CfgPreamble
996 PREAMBLE_LONG = 0, /**< Preamble type Long */
997 PREAMBLE_SHORT = 1, /**< Preamble type Short */
999 PREAMBLE_UNSPECIFIED = 0xFF /**< Preamble type Not Specified */
1003 /** \enum ENoiseHistogramCmd
1004 * \brief Noise Histogram Type
1008 * \sa TNoiseHistogram, TWD_CmdNoiseHistogram
1012 STOP_NOISE_HIST = 0, /**< Stop Noise Histogram */
1013 START_NOISE_HIST = 1 /**< Start Noise Histogram */
1015 } ENoiseHistogramCmd;
1017 /** \enum ETnetWakeOn
1018 * \brief ACX Wake Up Condition
1022 * \sa TPowerMgmtConfig, TWD_CfgWakeUpCondition
1027 /* 0 */ TNET_WAKE_ON_BEACON = 0, /**< Indicate the wake on event of the HW - beacon.
1028 * In this event the HW configure to be awake on every beacon.
1031 /* 1 */ TNET_WAKE_ON_DTIM, /**< Indicate the wake on event of the HW - DTIM. In this event
1032 * the HW configure to be awake on every DITM (configure by the AP).
1035 /* 2 */ TNET_WAKE_ON_N_BEACON, /**< Indicate the wake on event of the HW - listen interval.
1036 * In this event the HW configure to be awake on every
1037 * configured number of beacons.
1040 /* 3 */ TNET_WAKE_ON_N_DTIM, /**< Indicate the wake on event of the HW - listen interval.
1041 * In this event the HW configure to be awake on every
1042 * configured number of beacons.
1045 /* 4 */ TNET_WAKE_ON_HOST /**< Indicate the wake on event of the HW - Host access only
1050 /** \enum ETxAntenna
1051 * \brief TX Antenna Types
1055 * \sa TGeneralInitParams, TTwdParamContents
1059 TX_ANTENNA_2 = 0, /**< */
1060 TX_ANTENNA_1 = 1 /**< */
1064 /** \enum ERxAntenna
1065 * \brief RX Antenna Types
1069 * \sa TGeneralInitParams, TTwdParamContents
1073 /* 0 */ RX_ANTENNA_1 = 0, /**< */
1074 /* 1 */ RX_ANTENNA_2, /**< */
1075 /* 2 */ RX_ANTENNA_FULL, /**< */
1076 /* 3 */ RX_ANTENNA_PARTIAL /**< */
1080 /** \enum EPowerPolicy
1081 * \brief Save Power Level Policy
1085 * \sa TWD_CfgSleepAuth
1089 /* 0 */ POWERAUTHO_POLICY_ELP = 0, /**< */
1090 /* 1 */ POWERAUTHO_POLICY_PD, /**< */
1091 /* 2 */ POWERAUTHO_POLICY_AWAKE, /**< */
1092 /* 3 */ POWERAUTHO_POLICY_NUM /**< */
1096 /** \enum ESoftGeminiEnableModes
1097 * \brief Soft-Gemini Enable Modes
1105 /* 0 */ SG_DISABLE = 0, /**< */
1106 /* 1 */ SG_PROTECTIVE, /**< */
1107 /* 2 */ SG_OPPORTUNISTIC, /**< */
1110 } ESoftGeminiEnableModes;
1111 /** \enum ESoftGeminiEnableProfile
1112 * \brief Soft-Gemini Profile Modes for S60 configuration
1121 BtCoexProfDataLowLatency,
1123 }ESoftGeminiEnableProfile;
1126 /** \enum EMibTemplateType
1127 * \brief MIB Template type
1135 /* 0 */ TEMPLATE_TYPE_BEACON = 0, /**< BEACON template */
1136 /* 1 */ TEMPLATE_TYPE_PROBE_REQUEST, /**< PROB template */
1137 /* 2 */ TEMPLATE_TYPE_NULL_FRAME, /**< NULL FRAM template */
1138 /* 3 */ TEMPLATE_TYPE_PROBE_RESPONSE, /**< PROB Response template */
1139 /* 4 */ TEMPLATE_TYPE_QOS_NULL_FRAME, /**< QOS Null Frame template */
1140 /* 5 */ TEMPLATE_TYPE_PS_POLL /**< Power Save Poll template */
1145 /** \enum ERxFailure
1146 * \brief RX Failure/Error
1154 /* 0 */ RX_FAILURE_NONE = 0, /**< No Failure */
1155 /* 1 */ RX_FAILURE_DECRYPT, /**< DeCrypt Failure */
1156 /* 2 */ RX_FAILURE_MIC_ERROR, /**< MIC Error */
1159 /** \enum ETwdChannelWidth
1160 * \brief TWD Channel Width
1163 * Used for Configure HT Capabilities Settings
1165 * \sa TWD_SetDefaults, TTwdHtCapabilities
1169 /* 0 */ CHANNEL_WIDTH_20MHZ = 0, /**< 20MHZ Channel Width */
1170 /* 1 */ CHANNEL_WIDTH_40MHZ_20MHZ /**< 40-20MHZ Channel Width */
1173 /** \enum ETwdRxSTBC
1174 * \brief RX STBC Spatial Stream Supported
1177 * Indicates how many RX STBC Spatial Stream are Supported
1178 * Used for Configure HT Capabilities Settings
1180 * \sa TWD_SetDefaults, TTwdHtCapabilities
1184 /* 0 */ RXSTBC_NOT_SUPPORTED = 0, /**< No Spatial Stream Supported */
1185 /* 1 */ RXSTBC_SUPPORTED_ONE_SPATIAL_STREAM, /**< One Spatial Stream Supported */
1186 /* 2 */ RXSTBC_SUPPORTED_ONE_AND_TWO_SPATIAL_STREAMS, /**< One and Two Spatial Stream Supported */
1187 /* 3 */ RXSTBC_SUPPORTED_ONE_TWO_AND_THREE_SPATIAL_STREAMS /**< One, Two and Three Spatial Stream Supported */
1191 /** \enum ETwdMaxAMSDU
1192 * \brief Maximum MSDU Octets
1195 * Used for Configure HT Capabilities Settings
1197 * \sa TWD_SetDefaults, TTwdHtCapabilities
1201 /* 0 */ MAX_MSDU_3839_OCTETS = 0, /**< Maximum MSDU Octets Number: 3839 */
1202 /* 1 */ MAX_MSDU_7935_OCTETS /**< Maximum MSDU Octets Number: 7935 */
1206 /** \enum ETwdMaxAMPDU
1207 * \brief Maximum MPDU Octets
1210 * Indicates What is the Maximum MPDU Octets Number
1211 * Used for Configure HT Capabilities Settings
1213 * \sa TWD_SetDefaults, TTwdHtCapabilities
1219 IMPORTANT NOTE - Changes to this enumeration must check weather MIN and MAX values
1225 MAX_MPDU_MIN_VALUE = 0,
1227 /* 0 */ MAX_MPDU_8191_OCTETS = MAX_MPDU_MIN_VALUE, /**< Maximum MPDU Octets Number: 8191 */
1228 /* 1 */ MAX_MPDU_16383_OCTETS, /**< Maximum MPDU Octets Number: 16383 */
1229 /* 2 */ MAX_MPDU_32767_OCTETS, /**< Maximum MPDU Octets Number: 32767 */
1230 /* 3 */ MAX_MPDU_65535_OCTETS, /**< Maximum MPDU Octets Number: 65535 */
1232 MAX_MPDU_MAX_VALUE = MAX_MPDU_65535_OCTETS
1237 /** \enum ETwdAMPDUSpacing
1238 * \brief TWD AMPDU Spacing
1241 * Indicates What is the Time Spacing of AMPDU
1242 * Used for Configure HT Capabilities Settings
1244 * \sa TWD_SetDefaults, TTwdHtCapabilities
1248 /* 0 */ AMPDU_SPC_NO_RESTRCITION = 0, /**< No Restriction on AMPDU Time Spacing */
1249 /* 1 */ AMPDU_SPC_1_4_MICROSECONDS, /**< 1/4 Microsecond AMPDU Time Spacing */
1250 /* 2 */ AMPDU_SPC_1_2_MICROSECONDS, /**< 1/2 Microsecond AMPDU Time Spacing */
1251 /* 3 */ AMPDU_SPC_1_MICROSECOND, /**< 1 Microsecond AMPDU Time Spacing */
1252 /* 4 */ AMPDU_SPC_2_MICROSECONDS, /**< 2 Microsecond AMPDU Time Spacing */
1253 /* 5 */ AMPDU_SPC_4_MICROSECONDS, /**< 4 Microsecond AMPDU Time Spacing */
1254 /* 6 */ AMPDU_SPC_8_MICROSECONDS, /**< 8 Microsecond AMPDU Time Spacing */
1255 /* 7 */ AMPDU_SPC_16_MICROSECONDS /**< 16 Microsecond AMPDU Time Spacing */
1259 /** \enum ETwdMcsSupport
1260 * \brief TWD MCS Support
1263 * BIT Mapp which Indicates What is the Tx/rx MCS Support Enabled
1264 * Used for Configure HT Capabilities Settings
1266 * \sa TWD_SetDefaults, TTwdHtCapabilities
1270 /* 1 */ MCS_SUPPORT_MCS_0 = BIT_0, /**< BIT 0 */
1271 /* 2 */ MCS_SUPPORT_MCS_1 = BIT_1, /**< BIT 1 */
1272 /* 3 */ MCS_SUPPORT_MCS_2 = BIT_2, /**< BIT 2 */
1273 /* 4 */ MCS_SUPPORT_MCS_3 = BIT_3, /**< BIT 3 */
1274 /* 5 */ MCS_SUPPORT_MCS_4 = BIT_4, /**< BIT 4 */
1275 /* 6 */ MCS_SUPPORT_MCS_5 = BIT_5, /**< BIT 5 */
1276 /* 7 */ MCS_SUPPORT_MCS_6 = BIT_6, /**< BIT 6 */
1277 /* 8 */ MCS_SUPPORT_MCS_7 = BIT_7 /**< BIT 7 */
1281 /** \enum ETwdPCOTransTime
1282 * \brief TWD PCO Transition Time
1285 * Indicates What is the PCO Transition Time
1286 * Used for Configure HT Capabilities Settings
1288 * \sa TWD_SetDefaults, TTwdHtCapabilities
1292 /* 0 */ PCO_TRANS_TIME_NO_TRANSITION = 0, /**< No PCO Transition Time */
1293 /* 1 */ PCO_TRANS_TIME_400_MICROSECONDS, /**< PCO Transition Time: 400 Microsecond */
1294 /* 2 */ PCO_TRANS_TIME_1_5_MILLISECONDS, /**< PCO Transition Time: 1.5 Millisecond */
1295 /* 3 */ PCO_TRANS_TIME_5_MILLISECONDS /**< PCO Transition Time: 5 Millisecond */
1299 /** \enum ETwdHTCapabilitiesBitMask
1300 * \brief TWD HT Capabilities Bit Mask Mapping
1303 * Mapps the Bit Mask which are used for Making (Enabling/Disabling)
1306 * \sa TWD_SetDefaults, TTwdHtCapabilities
1310 /* 1 */ CAP_BIT_MASK_GREENFIELD_FRAME_FORMAT = BIT_0, /**< BIT 0 */
1311 /* 2 */ CAP_BIT_MASK_SHORT_GI_FOR_20MHZ_PACKETS = BIT_1, /**< BIT 1 */
1312 /* 3 */ CAP_BIT_MASK_SHORT_GI_FOR_40MHZ_PACKETS = BIT_2, /**< BIT 2 */
1313 /* 4 */ CAP_BIT_MASK_SUPPORT_FOR_STBC_IN_TRANSMISSION = BIT_3, /**< BIT 3 */
1314 /* 5 */ CAP_BIT_MASK_DELAYED_BLOCK_ACK = BIT_4, /**< BIT 4 */
1315 /* 6 */ CAP_BIT_MASK_DSSS_CCK_IN_40_MHZ = BIT_5, /**< BIT 5 */
1316 /* 7 */ CAP_BIT_MASK_LSIG_TXOP_PROTECTION = BIT_6, /**< BIT 6 */
1317 /* 8 */ CAP_BIT_MASK_PCO = BIT_7, /**< BIT 7 */
1318 /* 9 */ CAP_BIT_MASK_LDPC_CODING = BIT_8 /**< BIT 8 */
1320 } ETwdHTCapabilitiesBitMask;
1322 /** \enum ETwdMCSFeedback
1323 * \brief TWD MCS FeedBack
1326 * Indicates what is the MCS FeedBack Policy
1327 * Used for Configure HT Capabilities Settings
1329 * \sa TWD_SetDefaults, TTwdHtCapabilities
1333 /* 0 */ MCS_FEEDBACK_NO = 0, /**< */
1334 /* 1 */ MCS_FEEDBACK_RESERVED, /**< */
1335 /* 2 */ MCS_FEEDBACK_UNSOLICTED_ONLY, /**< */
1336 /* 3 */ MCS_FEEDBACK_BOTH_SOLICTED_AND_UNSOLICTED /**< */
1339 /** \enum ETwdTxMcsSet
1340 * \brief TWD TX MCS Set
1343 * Indicates Whether to set Tx MCS
1349 TX_MCS_SET_NO = 0, /**< Don't Set Tx MCS */
1350 TX_MCS_SET_YES = 1 /**< Set Tx MCS */
1353 /** \enum ETwdTxRxNotEqual
1354 * \brief TWD TX RX Not Equal
1357 * Indicates Whether the TX and RX channels are equal
1363 TX_RX_NOT_EQUAL_NO = 0, /**< TX and RX Channels are not equal */
1364 TX_RX_NOT_EQUAL_YES = 1 /**< TX and RX Channels are equal */
1367 /** \enum ETwdHtcSupport
1368 * \brief TWD HTc Support
1371 * Indicates Whether the HT Capability is Supported
1377 HTC_SUPPORT_NO = 0, /**< HT Capability is not Supported */
1378 HTC_SUPPORT_YES = 1 /**< HT Capability is Supported */
1381 /** \enum ESendCompleteStatus
1382 * \brief Send complete status
1385 * Indicates the current Success/Failure Status of Completion of Send Operation
1391 /* 0 */ SEND_COMPLETE_SUCCESS = 0, /**< Send Complete Success: Completion of Send Operation is OK
1393 /* 1 */ SEND_COMPLETE_RETRY_EXCEEDED, /**< Send Complete Retry Exceeded:
1394 * Completion of Send Operation filed because it Exceeded Allowed retries Number
1396 /* 2 */ SEND_COMPLETE_LIFETIME_EXCEEDED, /**< Send Complete Lifetiem Exceeded:
1397 * Completion of Send Operation failed because it Exceeded Allowed Lifetime
1399 /* 3 */ SEND_COMPLETE_NO_LINK, /**< Send Complete No Link:
1400 * Completion of Send Operation failed because No Link was found
1402 /* 4 */ SEND_COMPLETE_MAC_CRASHED /**< Send Complete MAC Crashed:
1403 * Completion of Send Operation failed because MAC Crashed
1405 } ESendCompleteStatus;
1407 /** \enum EPacketType
1408 * \brief Packet type
1416 /* 0 */ PACKET_DATA = 0, /**< */
1417 /* 1 */ PACKET_CTRL, /**< */
1418 /* 2 */ PACKET_MGMT /**< */
1422 /** \enum ETxHwQueStatus
1423 * \brief Status returned by txHwQueue_AllocResources
1431 TX_HW_QUE_STATUS_SUCCESS, /* Resources available on current queue */
1432 TX_HW_QUE_STATUS_STOP_CURRENT, /* No resources, stop current queue and requeue the packet */
1433 TX_HW_QUE_STATUS_STOP_NEXT /* Resources available for this packet but not for another one,
1434 so just stop the current queue */
1437 /** \enum ERxBufferStatus
1438 * \brief Status returned by TRequestForBufferCb
1446 RX_BUF_ALLOC_PENDING,
1447 RX_BUF_ALLOC_COMPLETE,
1448 RX_BUF_ALLOC_OUT_OF_MEM
1457 ArpFilterEnabledAutoMode = 3
1461 * --------------------------------------------------------------
1463 * --------------------------------------------------------------
1466 * \brief Get File Callback
1468 * \param hCbHndl - Handle to CB Object
1472 * The callback function type for GetFile users
1476 typedef void (*TGetFileCbFunc)(TI_HANDLE hCbHndl);
1478 /** \struct TFileInfo
1479 * \brief File Information
1482 * Contains all needed information and structures for Getting file
1488 EFileType eFileType; /**< Requested file type */
1489 TI_UINT8 *pBuffer; /**< Pointer to Buffer into the file (or file portion) is copied from user space */
1490 TI_UINT32 uLength; /**< Length of data currently held in pBuffer */
1491 TI_UINT32 uOffset; /**< Offset in File of data currently held in pBuffer */
1492 TI_UINT32 uAddress; /**< Offset in File of data currently held in pBuffer */
1493 TI_BOOL bLast; /**< TRUE indicates that we reached end of file */
1494 void *hOsFileDesc; /**< OAL file-descriptor handle for repeated access to same file (FW) */
1495 TGetFileCbFunc fCbFunc; /**< CB function to call if file read is finished in a later context (future option) */
1496 TI_HANDLE hCbHndl; /**< Handle to provide when calling fCbFunc */
1497 TI_UINT32 uChunksLeft; /**< Chunks Left to read from File (used if file is read in chunks) */
1498 TI_UINT32 uChunkBytesLeft; /**< Number of bytes of Last read chunk, which were not yet handled */
1499 TI_UINT32 uCrcCalc; /**< Current Calculated CRC */
1502 /** \struct T80211Header
1503 * \brief 802.11 MAC header
1511 TI_UINT16 fc; /**< */
1512 TI_UINT16 dur; /**< */
1513 TMacAddr address1; /**< */
1514 TMacAddr address2; /**< */
1515 TMacAddr address3; /**< */
1516 TI_UINT16 seq; /**< */
1517 TI_UINT16 qos; /**< */
1521 /** \struct TKeepAliveParams
1522 * \brief Keep Alive Parameters
1526 * \sa TWD_CfgKeepAlive
1530 TI_UINT8 index; /**< */
1531 TI_UINT8 enaDisFlag; /**< */
1532 TI_UINT32 interval; /**< */
1533 EKeepAliveTriggerType trigType; /**< */
1537 /** \struct TPsRxStreaming
1538 * \brief Power Save RX Streaming
1541 * The configuration of Rx streaming delivery in PS mode per TID
1543 * \sa TWD_CfgKeepAlive
1547 TI_UINT32 uTid; /**< The configured TID (0-7) */
1548 TI_UINT32 uStreamPeriod; /**< The expected period between two packets of the delivered stream */
1549 TI_UINT32 uTxTimeout; /**< Start sending triggers if no Tx traffic triggers arrive for this priod */
1550 TI_BOOL bEnabled; /**< If TRUE enable this TID streaming, if FALSE disable it. */
1554 /** \struct TDmaParams
1555 * \brief DMA Parameters
1558 * Struct which holds DMA Rx/Tx Queues and Bufffers params
1564 TI_UINT32 NumRxBlocks; /**< Allocated RX memory blocks number */
1565 TI_UINT32 NumTxBlocks; /**< Allocated TX memory blocks number */
1566 TI_UINT8 NumStations; /**< Number of Stations */
1567 void *fwTxResultInterface; /**< RX minimum Memory block number */
1568 TI_UINT8 *fwRxCBufPtr; /**< Pointer to FW RX Control Buffer */
1569 TI_UINT8 *fwTxCBufPtr; /**< Pointer to FW TX Control Buffer */
1570 void *fwRxControlPtr; /**< Pointer to FW TX Control */
1571 void *fwTxControlPtr; /**< Pointer to FW RX Control */
1572 TI_UINT32 PacketMemoryPoolStart; /**< RX Memory block offset */
1575 /** \struct TSecurityKeys
1576 * \brief Security Key
1579 * Struct which holds Security Key Parameters
1580 * Used for handling DMA
1586 EKeyType keyType; /**< Security Key Type (WEP, TKIP etc.) */
1587 TI_UINT32 encLen; /**< Security Key length in bytes */
1588 TI_UINT8 encKey[MAX_KEY_LEN]; /**< Security Key Encoding */
1589 TI_UINT8 micRxKey[MAX_KEY_LEN]; /**< MIC RX Security Key */
1590 TI_UINT8 micTxKey[MAX_KEY_LEN]; /**< MIC TX Security Key */
1591 TI_UINT32 keyIndex; /**< Security Key Index (id=0 is broadcast key) */
1592 TMacAddr macAddress; /**< Security Key MAC Address */
1593 TI_UINT8 keyRsc[KEY_RSC_LEN]; /**< Security Key RSC */
1597 /** \struct TxPktParams_t
1598 * \brief TX Packet Parameters
1601 * Tx Control-Block Packet parameters that are not included in the Tx-descriptor
1607 void * pInputPkt; /**< The input packet to the Tx path, either OS packet or raw buffer (see RAW_BUF_PKT flag) */
1608 TI_UINT32 uInputPktLen; /**< The input packet length in bytes (for freeing it in case of raw buffer) */
1609 TI_UINT32 uDriverDelay; /**< The time in uSec the pkt was delayed in the driver until Xfer */
1610 TI_UINT8 uPktType; /**< See TX_PKT_TYPE_xxxx above */
1611 TI_UINT8 uHeadroomSize; /**< Only for WHA - headroom in bytes before the payload in the packet buffer */
1612 TI_UINT16 uFlags; /**< See TX_CTRL_FLAG__xxxx above */
1617 /** \struct TTxCtrlBlk
1618 * \brief TX Control Block Entry
1621 * Contains the Tx packet parameters required for the Tx process, including
1622 * the Tx descriptor and the attributes required for HW-queue calculations.
1623 * TX Control Block Entry is allocated for each packet sent from the upper
1624 * driver and freed upon Tx-complete.
1625 * The entry index is the descriptor-ID. It is written in the descriptor and
1626 * copied back into the tx-complete results
1628 * \sa SendPacketTranferCB_t, SendPacketDebugCB_t, TWD_txCtrlBlk_alloc, TWD_txCtrlBlk_free, TWD_txCtrlBlk_GetPointer, TWD_txXfer_sendPacket
1630 typedef struct _TTxCtrlBlk
1632 TTxnStruct tTxnStruct; /**< The transaction structure for packet queueing and transaction via the bus driver */
1633 TxIfDescriptor_t tTxDescriptor; /**< The packet descriptor copied to the FW */
1634 TI_UINT8 aPktHdr[MAX_HEADER_SIZE]; /**< The packet header + extensions (see description of MAX_HEADER_SIZE above) */
1635 TTxPktParams tTxPktParams; /**< Per packet parameters not included in the descriptor */
1636 struct _TTxCtrlBlk *pNextFreeEntry; /**< Pointer to the next free entry */
1637 struct _TTxCtrlBlk *pNextAggregEntry; /**< Pointer to the next aggregated packet entry */
1642 /** \struct TTemplateParams
1643 * \brief Template Parameters
1647 * \sa TWD_GetTemplate
1651 TI_UINT32 Size; /**< Template size */
1652 TI_UINT32 uRateMask; /**< The rates bitmap for the frame */
1653 TI_UINT8 Buffer[MAX_TEMPLATE_SIZE]; /**< Buffer which holds Template */
1658 * \brief FW Information
1666 TI_UINT8 fwVer[FW_VERSION_LEN]; /**< Firmware version - null terminated string */
1667 TMacAddr macAddress; /**< MAC Address */
1668 TI_UINT8 txPowerTable[NUMBER_OF_SUB_BANDS_E][NUM_OF_POWER_LEVEL]; /**< Maximun Dbm in Dbm/10 units */
1669 TI_UINT32 uHardWareVersion; /**< HW Version */
1673 /** \struct TJoinBss
1674 * \brief Join BSS Parameters
1678 * \sa TWD_CmdJoinBss
1682 ScanBssType_e bssType; /**< */
1683 TI_UINT16 beaconInterval; /**< */
1684 TI_UINT16 dtimInterval; /**< */
1685 TI_UINT8 channel; /**< */
1686 TI_UINT8* pBSSID; /**< */
1687 TI_UINT8* pSSID; /**< */
1688 TI_UINT8 ssidLength; /**< */
1689 TI_UINT32 basicRateSet; /**< */
1690 ERadioBand radioBand; /**< */
1691 /* Current Tx-Session index as configured to FW in last Join command */
1692 TI_UINT16 txSessionCount; /**< */
1696 /** \struct TSetTemplate
1697 * \brief Set Template Parameters
1701 * \sa TWD_CmdTemplate, TWD_WriteMibTemplateFrame
1705 ETemplateType type; /**< Template Type */
1706 TI_UINT8 index; /**< only valid for keep-alive templates */
1707 TI_UINT8* ptr; /**< Pointer to Template Data */
1708 TI_UINT32 len; /**< Template Length */
1709 ERadioBand eBand; /**< only valid for probe request templates */
1710 TI_UINT32 uRateMask;/**< The rate mask to use for this frame */
1714 /** \struct TNoiseHistogram
1715 * \brief Noise Histogram Parameters
1719 * \sa TWD_CmdNoiseHistogram
1723 ENoiseHistogramCmd cmd; /**< Noise Histogram Command (Start/Atop) */
1724 TI_UINT16 sampleInterval; /**< Sample Interval (in microsec) */
1725 TI_UINT8 ranges [MEASUREMENT_NOISE_HISTOGRAM_NUM_OF_RANGES]; /**< Noise Histogram Ranges */
1729 /** \struct TInterogateCmdHdr
1730 * \brief Interrogate Command Header
1734 * \sa TNoiseHistogramResults, TMediumOccupancy, TTsfDtim
1738 TI_UINT16 id; /**< */
1739 TI_UINT16 len; /**< */
1741 } TInterogateCmdHdr;
1743 /** \struct TNoiseHistogramResults
1744 * \brief Noise Histogram Results
1747 * Used for Getting Noise Histogram Parameters from FW
1753 TInterogateCmdHdr noiseHistResCmdHdr; /**< Results Header */
1754 TI_UINT32 counters[NUM_OF_NOISE_HISTOGRAM_COUNTERS]; /**< Counters */
1755 TI_UINT32 numOfLostCycles; /**< Number of Lost Cycles */
1756 TI_UINT32 numOfTxHwGenLostCycles; /**< Number of Tx Hw Gen Lost Cycles */
1757 TI_UINT32 numOfRxLostCycles; /**< Number of RX Hw Gen Lost Cycles */
1759 } TNoiseHistogramResults;
1761 /** \struct TMediumOccupancy
1762 * \brief Medium Occupancy Parameters
1765 * Used for Getting Medium Occupancy (Channal Load) from FW
1766 * or print Medium Occupancy (Channal Load) Debug Information
1772 TInterogateCmdHdr mediumOccupCmdHdr; /**< Command Header */
1773 TI_UINT32 MediumUsage; /**< Medium Occupancy Usage Time */
1774 TI_UINT32 Period; /**< Medium Occupancy Period Time */
1778 /** \struct TTsfDtim
1779 * \brief Beacon TSF and DTIM count
1782 * Used for Getting updated current TSF and last Beacon TSF and DTIM Count from FW
1789 TInterogateCmdHdr tsf_dtim_mibCmdHdr; /**< Command Header */
1790 TI_UINT32 CurrentTSFHigh; /**< Current TSF High (of INT64) Value */
1791 TI_UINT32 CurrentTSFLow; /**< Current TSF Low (of INT64) Value */
1792 TI_UINT32 lastTBTTHigh; /**< Last TBTT High (of INT64) Value */
1793 TI_UINT32 lastTBTTLow; /**< Last TBTT Low (of INT64) Value */
1794 TI_UINT8 LastDTIMCount; /**< Last DTIM Count */
1795 TI_UINT8 Reserved[3]; /**< Reserved */
1799 /** \struct TBcnBrcOptions
1800 * \brief Beacon broadcast options
1803 * Used for Getting/Configuring updated Beacon broadcast options from/to FW
1805 * \sa TWD_SetDefaults
1809 TI_UINT16 BeaconRxTimeout; /**< Beacon RX Timeout */
1810 TI_UINT16 BroadcastRxTimeout; /**< Broadcast RX Timeout */
1811 TI_UINT8 RxBroadcastInPs; /**< RX Broadcast In Power Save */
1815 /** \struct TBeaconFilterIeTable
1816 * \brief Beacon Filter Information Elements Table
1819 * Used for Getting/Configuring Beacon Filter IE Table From/To FW
1821 * \sa TWD_SetDefaults
1825 TI_UINT8 numberOfIEs; /**< Number of IE Tables */
1826 TI_UINT8 IETable[BEACON_FILTER_TABLE_MAX_SIZE]; /**< The IE table */
1827 TI_UINT8 IETableSize; /**< number of elements in IE table */
1829 } TBeaconFilterIeTable;
1831 /** \struct TBeaconFilterInitParams
1832 * \brief Beacon Filter Init Parameters
1835 * Used for Init Beacon Filter IE Table in FW
1841 TI_UINT8 desiredState; /**< Desigred state (required/not required) */
1842 TI_UINT8 numOfStored; /**< Number of desigred Beacon Filters stored in FW */
1843 TI_UINT8 numOfElements; /**< Number of Beacon Filter Elements stored in FW */
1844 TI_UINT8 IETableSize; /**< The IE Table size */
1845 TI_UINT8 reserve[3]; /**< Reserved */
1846 TI_UINT8 IETable[BEACON_FILTER_IE_TABLE_MAX_SIZE]; /**< The IE table */
1848 } TBeaconFilterInitParams;
1850 /** \struct TPowerMgmtConfig
1851 * \brief Power Management Configuration Parameters
1854 * Used for Configuring Wake-Up Conditions or Beacon Broadcast Options to FW
1856 * \sa TWD_CfgWakeUpCondition, TWD_CfgBcnBrcOptions
1860 /* power management options */
1861 TI_UINT8 beaconListenInterval; /**< Beacon Listen Interavl:
1862 * specify how often the TNET wakes up to listen to beacon frames.
1863 * the value is expressed in units of "beacon interval"
1865 TI_UINT8 beaconFiltering; /**< Beacon Filtering Desigred state (required/not required) */
1866 TI_UINT8 DTIMListenInterval; /**< DTIM Listen Interavl:
1867 * specify how often the TNET wakes up to listen to DTIM frames. the value
1868 * is expressed in units of "dtim interval"
1870 TI_UINT8 NConsecutiveBeaconMiss; /**< Consecutive Beacon Miss */
1871 TI_UINT8 hangoverPeriod; /**< Hang Over Period */
1872 TI_UINT8 HwPsPollResponseTimeout; /**< Power-Save Polling Response Time Out */
1873 TI_UINT32 BaseBandWakeUpTime; /**< Base Band Wakeup Time */
1874 TI_UINT32 beaconReceiveTime; /**< Beacon Receive Time */
1875 TI_BOOL beaconMissInterruptEnable; /**< Enable/Disable Beacon Miss Interrupt */
1876 TI_BOOL rxBroadcast; /**< Enable/Disable receive of broadcast packets in Power-Save mode */
1877 TI_BOOL hwPsPoll; /**< Enable/Disable Power-Save Polling */
1878 /* Power Management Configuration IE */
1879 TI_BOOL ps802_11Enable; /**< Enable/Disable 802.11 Power-Save */
1880 TI_UINT8 needToSendNullData; /**< Indicates if need to send NULL data */
1881 TI_UINT8 numNullPktRetries; /**< Number of NULL Packets allowed retries */
1882 TI_UINT8 hangOverPeriod; /**< HangOver period:
1883 * Indicates what is the time in TUs during which the WiLink remains awake
1884 * after sending an MPDU with the Power Save bit set (indicating that the
1885 * station is to go into Power Save mode). Setting bit 0 does not affect
1886 * the hangover period
1888 TI_UINT16 NullPktRateModulation; /**< Null Packet Rate Modulation */
1889 /* PMConfigStruct */
1890 TI_BOOL ELPEnable; /**< Enable/Disable ELP */
1891 TI_UINT32 BBWakeUpTime; /**< Base Band Wakeup Time */
1892 TI_UINT32 PLLlockTime; /**< PLL Lock Time */
1893 /* AcxBcnBrcOptions */
1894 TBcnBrcOptions BcnBrcOptions; /**< Beacon broadcast options */
1895 /* ACXWakeUpCondition */
1896 ETnetWakeOn tnetWakeupOn; /**< ACX Wake Up Condition */
1897 TI_UINT8 listenInterval; /**< ACX Listen Interval */
1898 /* No answer after Ps-Poll work-around */
1899 TI_UINT8 ConsecutivePsPollDeliveryFailureThreshold; /**< Power-Save Polling Delivery Failure Threshold */
1903 /** \struct TPowerSaveParams
1904 * \brief Power Save Parameters
1912 /* powerMgmtConfig IE */
1913 TI_BOOL ps802_11Enable; /**< Enable/Disable 802.11 Power-Save */
1914 TI_UINT8 needToSendNullData; /**< Indicates if need to send NULL data */
1915 TI_UINT8 numNullPktRetries; /**< Number of NULL Packets allowed retries */
1916 TI_UINT8 hangOverPeriod; /**< HangOver period:
1917 * Indicates what is the time in TUs during which the WiLink remains awake
1918 * after sending an MPDU with the Power Save bit set (indicating that the
1919 * station is to go into Power Save mode). Setting bit 0 does not affect
1920 * the hangover period
1922 EHwRateBitFiled NullPktRateModulation; /**< Null Packet Rate Modulation */
1926 /** \struct TAcQosParams
1927 * \brief AC QoS Parameters
1930 * Used for Configuring AC Parameters (For Quality Of Service) to FW
1932 * \sa TWD_CfgAcParams
1936 TI_UINT8 ac; /**< Access Category - The TX queue's access category */
1937 TI_UINT8 cwMin; /**< The contention window minimum size (in slots) */
1938 TI_UINT16 cwMax; /**< The contention window maximum size (in slots) */
1939 TI_UINT8 aifsn; /**< The AIF value (in slots) */
1940 TI_UINT16 txopLimit; /**< The TX Op Limit (in microseconds) */
1944 /** \struct TMeasurementParams
1945 * \brief AC Queues Parameters
1948 * Used When Send Start Measurment Command to FW
1950 * \sa TWD_CmdMeasurement
1954 TI_UINT32 ConfigOptions; /**< RX Filter Configuration Options */
1955 TI_UINT32 FilterOptions; /**< RX Filter Options */
1956 TI_UINT32 duration; /**< Specifies the measurement process duration in microseconds. The value of 0 means
1957 * infinite duration in which only a STOP_MEASUREMENT command can stop the measurement
1960 Channel_e channel; /**< Channel number on which the measurement is performed */
1961 RadioBand_e band; /**< Specifies the band to which the channel belongs */
1962 EScanResultTag eTag; /**< Scan Result Tag */
1964 } TMeasurementParams;
1966 /** \struct TApDiscoveryParams
1967 * \brief AP Discovery Parameters
1970 * Used When Performing AP Discovery
1972 * \sa TWD_CmdApDiscovery
1976 TI_UINT32 ConfigOptions; /**< RX Configuration Options for measurement */
1977 TI_UINT32 FilterOptions; /**< RX Filter Configuration Options for measurement */
1978 TI_UINT32 scanDuration; /**< This field specifies the amount of time, in time units (TUs), to perform the AP discovery */
1979 TI_UINT16 scanOptions; /**< This field specifies whether the AP discovery is performed by an active scan or a passive scan
1980 * 0 - ACTIVE, 1 - PASSIVE
1982 TI_UINT8 numOfProbRqst; /**< This field indicates the number of probe requests to send per channel, when active scan is specified
1983 * Note: for XCC measurement this value should be set to 1
1985 TI_UINT8 txPowerDbm; /**< TX power level to be used for sending probe requests when active scan is specified.
1986 * If 0, leave normal TX power level for this channel
1988 EHwRateBitFiled txdRateSet; /**< This EHwBitRate format field specifies the rate and modulation to transmit the probe request when
1989 * an active scan is specifie
1991 ERadioBand eBand; /**< Specifies the band to which the channel belongs */
1992 } TApDiscoveryParams;
1994 /** \struct TRroamingTriggerParams
1995 * \brief Roaming Trigger Parameters
1999 * \sa TWD_CfgMaxTxRetry, TWD_CfgConnMonitParams
2003 /* ACXConsNackTriggerParameters */
2004 TI_UINT8 maxTxRetry; /**< The number of frames transmission failures before issuing the "Max Tx Retry" event */
2006 /* ACXBssLossTsfSynchronize */
2007 TI_UINT16 TsfMissThreshold; /**< The number of consecutive beacons that can be lost before the WiLink raises the
2008 * SYNCHRONIZATION_TIMEOUT event
2010 TI_UINT16 BssLossTimeout; /**< The delay (in time units) between the time at which the device issues the SYNCHRONIZATION_TIMEOUT
2011 * event until, if no probe response or beacon is received a BSS_LOSS event is issued
2013 } TRroamingTriggerParams;
2015 /** \struct TSwitchChannelParams
2016 * \brief Switch Channel Parameters
2019 * Used for Switch channel Command
2021 * \sa TWD_CmdSwitchChannel
2025 TI_UINT8 channelNumber; /**< The new serving channel */
2026 TI_UINT8 switchTime; /**< Relative time of the serving channel switch in TBTT units */
2027 TI_UINT8 txFlag; /**< 1: Suspend TX till switch time; 0: Do not suspend TX */
2028 TI_UINT8 flush; /**< 1: Flush TX at switch time; 0: Do not flush */
2030 } TSwitchChannelParams;
2032 /** \struct TRxCounters
2033 * \brief RX Counters
2036 * Used for Getting RX Counters from FW
2042 TI_UINT32 RecvError; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */
2043 TI_UINT32 RecvNoBuffer; /**< Number of frames that the NIC cannot receive due to lack of NIC receive buffer space */
2044 TI_UINT32 FragmentsRecv; /**< Number of Fragments Received */
2045 TI_UINT32 FrameDuplicates; /**< Number of Farme Duplicates */
2046 TI_UINT32 FcsErrors; /**< Number of frames that a NIC receives but does not indicate to the protocols due to errors */
2050 /** \struct TApPowerConstraint
2051 * \brief AP Power Constraint
2059 INFO_ELE_HDR /**< Information Element Header */
2060 int8 powerConstraintOnBss; /**< The attenuation from the regulatory power constraint as declared by the AP
2061 * Units: dBm ; Range: -20 - 30
2063 } TApPowerConstraint;
2066 * TConfigCmdCbParams, TInterrogateCmdCbParams:
2067 * Note that this structure is used by the GWSI
2068 * both for setting (writing to the device) and
2069 * for retreiving (Reading from the device),
2070 * while being called with a completion CB
2072 /** \struct TConfigCmdCbParams
2073 * \brief Config Command CB Parameters
2076 * The CB Parameters (Completino CB, Handle to CB Parameters and buffer of Input/Output Parameters)
2077 * are used for Setting Parameters
2083 void* fCb; /**< Completion CB function */
2084 TI_HANDLE hCb; /**< CB handle */
2085 void* pCb; /**< CBuffer contains the content to be written or the retrieved content */
2087 } TConfigCmdCbParams;
2089 /** \struct TInterrogateCmdCbParams
2090 * \brief Interrogate Command Parameters
2093 * Interrogate Command Parameters are the same as configuration Command CB Parameters
2097 typedef TConfigCmdCbParams TInterrogateCmdCbParams;
2099 /** \struct TRxTimeOut
2100 * \brief RX Time Out
2108 TI_UINT16 psPoll; /**< The maximum time that the device will wait to receive traffic from the AP after transmission of PS-poll */
2109 TI_UINT16 UPSD; /**< The maximum time that the device will wait to receive traffic from the AP after transmission from UPSD
2114 /** \struct TQueueTrafficParams
2115 * \brief RX Time Out
2123 TI_UINT8 queueID; /**< The TX queue ID number (0-7) */
2124 TI_UINT8 channelType; /**< Channel access type for the queue Refer to ChannelType_enum */
2125 TI_UINT8 tsid; /**< for EDCA - the AC Index (0-3, refer to AccessCategory_enum).
2126 * For HCCA - HCCA Traffic Stream ID (TSID) of the queue (8-15)
2128 TI_UINT32 dot11EDCATableMSDULifeTime; /**< 802.11 EDCA Table MSDU Life Time */
2129 TI_UINT8 psScheme; /**< The power save scheme of the specified queue. Refer to PSScheme_enum */
2130 TI_UINT8 ackPolicy; /**< ACK policy per AC */
2131 TI_UINT32 APSDConf[2]; /**< APSD Configuration */
2133 } TQueueTrafficParams;
2137 /** \struct TFmCoexParams
2138 * \brief FM Coexistence Parameters
2141 * Used for Setting/Printing FM Coexistence Parameters
2147 TI_UINT8 uEnable; /* enable(1) / disable(0) the FM Coex feature */
2149 TI_UINT8 uSwallowPeriod; /* Swallow period used in COEX PLL swallowing mechanism,
2150 Range: 0-0xFF, 0xFF = use FW default
2153 TI_UINT8 uNDividerFrefSet1; /* The N divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz.
2154 Range: 0-0xFF, 0xFF = use FW default
2157 TI_UINT8 uNDividerFrefSet2; /* The N divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz.
2158 Range: 0-0xFF, 0xFF = use FW default
2161 TI_UINT16 uMDividerFrefSet1; /* The M divider used in COEX PLL swallowing mechanism for Fref of 38.4/19.2 Mhz.
2162 Range: 0-0x1FF, 0xFFFF = use FW default
2165 TI_UINT16 uMDividerFrefSet2; /* The M divider used in COEX PLL swallowing mechanism for Fref of 26/52 Mhz.
2166 Range: 0-0x1FF, 0xFFFF = use FW default
2169 TI_UINT32 uCoexPllStabilizationTime;/* The time duration in uSec required for COEX PLL to stabilize.
2170 0xFFFFFFFF = use FW default
2173 TI_UINT16 uLdoStabilizationTime; /* The time duration in uSec required for LDO to stabilize.
2174 0xFFFFFFFF = use FW default
2177 TI_UINT8 uFmDisturbedBandMargin; /* The disturbed frequency band margin around the disturbed
2178 frequency center (single sided).
2179 For example, if 2 is configured, the following channels
2180 will be considered disturbed channel:
2181 80 +- 0.1 MHz, 91 +- 0.1 MHz, 98 +- 0.1 MHz, 102 +- 0.1 MHz
2182 0xFF = use FW default
2185 TI_UINT8 uSwallowClkDif; /* The swallow clock difference of the swallowing mechanism.
2186 0xFF = use FW default
2192 /** \struct TMibBeaconFilterIeTable
2193 * \brief MIB Beacon Filter IE table
2196 * Used for Read/Write the MIB/IE Beacon Filter
2197 * NOTE: This struct is only meant to be used as a pointer reference to an actual buffer.
2198 * Table size is not a constant and is derived from the buffer size given with the
2201 * \sa TWD_WriteMibBeaconFilterIETable
2205 /* Number of information elements in table */
2206 TI_UINT8 iNumberOfIEs; /**< Input Number of IE Tables */
2207 TI_UINT8 iIETable[MIB_MAX_SIZE_OF_IE_TABLE]; /**< Input IE Table */
2209 } TMibBeaconFilterIeTable;
2211 /** \struct TMibCounterTable
2212 * \brief MIB Counter Table
2215 * Used for Getting Counters of MIB Table
2221 TI_UINT32 PLCPErrorCount; /**< The number of PLCP errors since the last time this information element was interrogated.
2222 * This field is automatically cleared when it is interrogated
2224 TI_UINT32 FCSErrorCount; /**< The number of FCS errors since the last time this information element was interrogated.
2225 * This field is automatically cleared when it is interrogated
2227 TI_UINT32 SeqNumMissCount; /**< The number of missed sequence numbers in the squentially values of frames seq numbers */
2230 /** \struct TMibWlanWakeUpInterval
2231 * \brief MIB WLAN Wake-Up Interval
2239 TI_UINT32 WakeUpInterval; /**< Wake Up Interval */
2240 TI_UINT8 ListenInterval; /**< Listen interval in unit of the beacon/DTIM */
2242 } TMibWlanWakeUpInterval;
2244 /** \struct TMibTemplateFrame
2245 * \brief MIB Template Frame
2248 * Used for Writing MIB Frame Template to FW
2250 * \sa TWD_WriteMibTemplateFrame
2254 EMibTemplateType FrameType; /**< MIB Farme Template type */
2255 TI_UINT32 Rate; /**< Frame Rate */
2256 TI_UINT16 Length; /**< Frame Length */
2257 TI_UINT8 Data [MIB_TEMPLATE_DATA_MAX_LEN]; /**< Frame Template Data */
2259 } TMibTemplateFrame;
2261 /** \struct TMibArpIpAddressesTable
2262 * \brief MIB ARP Address Table
2265 * Used for Writing MIB ARP Table Template to FW
2271 TI_UINT32 FilteringEnable; /**< Enable/Disable Filtering */
2272 TIpAddr addr; /**< IP Address Table */
2274 } TMibArpIpAddressesTable;
2276 /** \struct TMibGroupAdressTable
2277 * \brief MIB Group Address Table
2280 * Used for Writing MIB Group Table Template to FW
2286 TMacAddr aGroupTable[MIB_MAX_MULTICAST_GROUP_ADDRS]; /**< Table of Multicast Group Addresses */
2287 TI_UINT8 bFilteringEnable; /**< Enable/Disable Filtering */
2288 TI_UINT8 nNumberOfAddresses; /**< Number of Multicast Addresses */
2290 } TMibGroupAdressTable;
2292 /** \struct TTxRateClass
2293 * \brief TX Rate Class
2296 * Used for Set/Get TX Rate Policy Class to/from FW
2302 TI_UINT32 txEnabledRates; /**< A Bit Mask which indicates which Rates are enabled */
2303 TI_UINT8 shortRetryLimit; /**< */
2304 TI_UINT8 longRetryLimit; /**< */
2305 TI_UINT8 flags; /**< */
2306 TI_UINT8 reserved; /**< for alignment with the FW API */
2310 /** \struct TTxRatePolicy
2311 * \brief TX Rate Policy
2314 * Used for Set/Get TX Rate Policy to/from FW
2320 TI_UINT32 numOfRateClasses; /**< */
2321 TTxRateClass rateClass[MAX_NUM_OF_TX_RATE_CLASS_POLICIES]; /**< */
2325 /** \struct TCoexActivity
2326 * \brief CoexActivity Parameters
2333 uint8 coexIp; /* 0-BT, 1-WLAN (according to CoexIp_e in FW) */
2334 uint8 activityId; /* According to BT/WLAN activity numbering in FW */
2335 uint8 defaultPriority; /* 0-255, activity default priority */
2336 uint8 raisedPriority; /* 0-255, activity raised priority */
2337 uint16 minService; /* 0-65535, The minimum service requested either in
2338 requests or in milliseconds depending on activity ID */
2339 uint16 maxService; /* 0-65535, The maximum service allowed either in
2340 requests or in milliseconds depending on activity ID */
2343 /** \struct THalCoexActivityTable
2344 * \brief CoexActivity Table Initialization Parameters
2352 uint32 numOfElements;
2353 TCoexActivity entry[COEX_ACTIVITY_TABLE_MAX_NUM];
2355 } THalCoexActivityTable;
2357 /** \struct DcoItrimParams_t
2358 * \brief DCO Itrim params structure
2367 uint32 moderationTimeoutUsec;
2374 * Union which defines all MIB Data types
2375 * Used for write MIB Configuration to FW
2381 TMacAddr StationId; /**< Station ID MAC Address */
2382 TI_UINT32 MaxReceiveLifeTime; /**< HAl Control Max Rx MSDU Life Time, in TUs Units */
2383 TI_UINT32 SlotTime; /**< Radio (PHY) Slot Time Type */
2384 TMibGroupAdressTable GroupAddressTable; /**< MIB Group Address Table */
2385 TI_UINT8 WepDefaultKeyId; /**< WEP Defualt Security Key ID */
2386 TI_UINT8 PowerLevel; /**< */
2387 TI_UINT16 RTSThreshold; /**< */
2388 TI_UINT32 CTSToSelfEnable; /**< Enable/Disable CTS to Self */
2389 TMibArpIpAddressesTable ArpIpAddressesTable; /**< MIB ARP Address Table */
2390 TMibTemplateFrame TemplateFrame; /**< MIB Template Frame */
2391 TI_UINT8 RxFilter; /**< */
2392 TMibWlanWakeUpInterval WlanWakeUpInterval; /**< MIB WLAN Wake-Up Interval */
2393 TMibCounterTable CounterTable; /**< MIB Counter Table */
2394 TMibBeaconFilterIeTable BeaconFilter; /**< MIB Beacon Filter IE table */
2395 TTxRatePolicy txRatePolicy; /**< TX Rate Policy */
2400 * \brief MIB Structure
2403 * Used for writing MIB Configuration to FW
2405 * \sa TWD_WriteMib, TWD_WriteMibTemplateFrame, TWD_WriteMibBeaconFilterIETable, TWD_WriteMibTxRatePolicy
2409 EMib aMib; /**< MIB Element Type */
2410 TI_UINT16 Length; /**< MIB Data Length */
2411 TMibData aData; /**< MIB Data */
2415 /** \union TTwdParamContents
2416 * \brief TWD Parameters Content
2419 * All FW Parameters contents
2425 TI_UINT16 halCtrlRtsThreshold; /**< */
2426 TI_UINT8 halCtrlCtsToSelf; /**< */
2427 TRxTimeOut halCtrlRxTimeOut; /**< */
2428 TI_UINT16 halCtrlFragThreshold; /**< */
2429 TI_UINT16 halCtrlListenInterval; /**< */
2430 TI_UINT16 halCtrlCurrentBeaconInterval; /**< */
2431 TI_UINT8 halCtrlTxPowerDbm; /**< */
2432 ETxAntenna halCtrlTxAntenna; /**< */
2433 ERxAntenna halCtrlRxAntenna; /**< */
2434 TI_UINT8 halCtrlAifs; /**< */
2435 TI_BOOL halCtrlTxMemPoolQosAlgo; /**< */
2436 TI_BOOL halCtrlClkRunEnable; /**< */
2437 TRxCounters halCtrlCounters; /**< */
2440 TI_UINT8 halCtrlCurrentChannel; /**< */
2442 /* AC Qos parameters */
2443 TQueueTrafficParams *pQueueTrafficParams; /**< */
2445 /* Security related parameters */
2446 #ifdef XCC_MODULE_INCLUDED
2447 TI_BOOL rsnXCCSwEncFlag; /**< */
2448 TI_BOOL rsnXCCMicFieldFlag; /**< */
2450 ECipherSuite rsnEncryptionStatus; /**< */
2451 TI_UINT8 rsnHwEncDecrEnable; /**< 0- disable, 1- enable */
2452 TSecurityKeys *pRsnKey; /**< */
2453 TI_UINT8 rsnDefaultKeyID; /**< */
2455 /* Measurements section */
2456 TMediumOccupancy mediumOccupancy; /**< */
2457 TI_BOOL halTxOpContinuation; /**< */
2459 TTsfDtim fwTsfDtimInfo; /**< */
2461 TInterrogateCmdCbParams interogateCmdCBParams; /**< */
2462 TConfigCmdCbParams configureCmdCBParams; /**< */
2464 TTxRatePolicy *pTxRatePlicy; /**< */
2466 /* WARNING!!! This section is used to set/get internal params only. */
2467 TI_UINT16 halCtrlAid; /**< */
2469 ESoftGeminiEnableModes SoftGeminiEnable; /**< */
2470 TSoftGeminiParams SoftGeminiParam; /**< */
2472 TFmCoexParams tFmCoexParams; /**< */
2474 TI_UINT32 halCtrlMaxRxMsduLifetime; /**< */
2476 /* Beacon Broadcast options */
2477 TBcnBrcOptions BcnBrcOptions; /**< */
2480 TI_STATUS PltRxCalibrationStatus; /**< */
2483 TCoexActivity tTwdParamsCoexActivity; /**< */
2486 DcoItrimParams_t tDcoItrimParams; /**< */
2488 } TTwdParamContents;
2490 /** \struct TTwdParamInfo
2491 * \brief TWD Parameters Information
2499 TI_UINT32 paramType; /**< FW Parameter Information Identifier */
2500 TI_UINT32 paramLength; /**< FW Parameter Length */
2501 TTwdParamContents content; /**< FW Parameter content */
2505 /** \struct TRxXferReserved
2506 * \brief RX Xfer Reserved
2514 ProcessIDTag_e packetType; /**< */
2515 TI_UINT8 rxLevel; /**< */
2516 TI_INT8 rssi; /**< */
2517 TI_UINT8 SNR; /**< */
2518 TI_UINT8 band; /**< */
2519 TI_UINT32 TimeStamp; /**< */
2520 EScanResultTag eScanTag; /**< */
2525 * \brief RX Attributes
2533 PacketClassTag_e ePacketType; /**< */
2534 TI_STATUS status; /**< */
2536 TI_UINT8 SNR; /**< */
2537 TI_INT8 Rssi; /**< */
2538 TI_UINT8 channel; /**< */
2539 TI_UINT32 packetInfo; /**< */
2540 ERadioBand band; /**< */
2541 TI_UINT32 TimeStamp; /**< */
2542 EScanResultTag eScanTag; /**< */
2547 /** \struct TGeneralInitParams
2548 * \brief General Initialization Parameters
2556 TI_UINT16 halCtrlListenInterval; /**< */
2557 TI_UINT8 halCtrlCalibrationChannel2_4; /**< */
2558 TI_UINT8 halCtrlCalibrationChannel5_0; /**< */
2559 TI_UINT16 halCtrlRtsThreshold; /**< */
2560 TI_UINT16 halCtrlFragThreshold; /**< */
2561 TI_UINT32 halCtrlMaxTxMsduLifetime; /**< */
2562 TI_UINT32 halCtrlMaxRxMsduLifetime; /**< */
2563 ETxAntenna halCtrlTxAntenna; /**< */
2564 ERxAntenna halCtrlRxAntenna; /**< */
2565 TI_UINT8 halCtrlMacClock; /**< */
2566 TI_UINT8 halCtrlArmClock; /**< */
2567 TI_UINT16 halCtrlBcnRxTime; /**< */
2568 TI_BOOL halCtrlRxEnergyDetection; /**< */
2569 TI_BOOL halCtrlCh14TelecCca; /**< */
2570 TI_BOOL halCtrlEepromLessEnable; /**< */
2571 TI_BOOL halCtrlRxDisableBroadcast; /**< */
2572 TI_BOOL halCtrlRecoveryEnable; /**< */
2573 TI_BOOL halCtrlFirmwareDebug; /**< */
2574 TI_BOOL WiFiWmmPS; /**< */
2575 TRxTimeOut rxTimeOut; /**< */
2576 TI_UINT8 halCtrlRateFallbackRetry; /**< */
2577 TI_BOOL b11nEnable; /**< */
2579 TI_UINT16 TxCompletePacingThreshold; /**< */
2580 TI_UINT16 TxCompletePacingTimeout; /**< */
2581 TI_UINT16 RxIntrPacingThreshold; /**< */
2582 TI_UINT16 RxIntrPacingTimeout; /**< */
2584 TI_UINT32 uRxAggregPktsLimit; /**< */
2585 TI_UINT32 uTxAggregPktsLimit; /**< */
2586 TI_UINT8 hwAccessMethod; /**< */
2587 TI_UINT8 maxSitesFragCollect; /**< */
2588 TI_UINT8 packetDetectionThreshold; /**< */
2589 TI_UINT32 nullTemplateSize; /**< */
2590 TI_UINT32 disconnTemplateSize; /**< */
2591 TI_UINT32 beaconTemplateSize; /**< */
2592 TI_UINT32 probeRequestTemplateSize; /**< */
2593 TI_UINT32 probeResponseTemplateSize; /**< */
2594 TI_UINT32 PsPollTemplateSize; /**< */
2595 TI_UINT32 qosNullDataTemplateSize; /**< */
2596 TI_UINT32 ArpRspTemplateSize; /**< */
2597 TI_UINT32 tddRadioCalTimout; /**< */
2598 TI_UINT32 CrtRadioCalTimout; /**< */
2599 TI_UINT32 UseMboxInterrupt; /**< */
2600 TI_UINT32 TraceBufferSize; /**< */
2601 TI_BOOL bDoPrint; /**< */
2602 TI_UINT8 StaMacAddress[MAC_ADDR_LEN]; /**< */
2603 TI_BOOL TxFlashEnable; /**< */
2604 TI_UINT8 RxBroadcastInPs; /**< */
2605 TI_UINT8 ConsecutivePsPollDeliveryFailureThreshold; /**< */
2606 TI_UINT8 TxBlocksThresholdPerAc[MAX_NUM_OF_AC];/**< */
2607 TI_UINT8 uRxMemBlksNum; /**< */
2608 TI_UINT16 BeaconRxTimeout; /**< */
2609 TI_UINT16 BroadcastRxTimeout; /**< */
2611 TI_UINT8 uRssiBeaconAverageWeight; /**< */
2612 TI_UINT8 uRssiPacketAverageWeight; /**< */
2613 TI_UINT8 uSnrBeaconAverageWeight; /**< */
2614 TI_UINT8 uSnrPacketAverageWeight; /**< */
2616 TI_UINT32 uHostClkSettlingTime; /**< */
2617 TI_UINT8 uHostFastWakeupSupport; /**< */
2618 THalCoexActivityTable halCoexActivityTable; /**< */
2619 TFmCoexParams tFmCoexParams; /**< */
2620 TI_UINT8 uMaxAMPDU; /**< */
2622 } TGeneralInitParams;
2624 /** \struct TPowerSrvInitParams
2625 * \brief Power Service Init Parameters
2633 TI_UINT8 numNullPktRetries; /**< */
2634 TI_UINT8 hangOverPeriod; /**< */
2635 TI_UINT16 reserve; /**< */
2637 } TPowerSrvInitParams;
2639 /** \struct TScanSrvInitParams
2640 * \brief Scan Service Init Parameters
2648 TI_UINT32 numberOfNoScanCompleteToRecovery; /**< The number of consecutive no scan complete that will trigger a recovery notification */
2649 TI_UINT32 uTriggeredScanTimeOut; /**< i.e. split scan. Time out for starting triggered scan between 2 channels */
2651 } TScanSrvInitParams;
2653 /** \struct TArpIpFilterInitParams
2654 * \brief ARP IP Filter Init Parameters
2662 EArpFilterType filterType; /**< */
2663 TIpAddr addr; /**< */
2665 } TArpIpFilterInitParams;
2667 /** \struct TMacAddrFilterInitParams
2668 * \brief AMC Address Filter Init Parameters
2676 TI_UINT8 isFilterEnabled; /**< */
2677 TI_UINT8 numOfMacAddresses; /**< */
2678 TI_UINT16 reserve; /**< */
2679 TMacAddr macAddrTable[MAX_MULTICAST_GROUP_ADDRS]; /**< */
2681 } TMacAddrFilterInitParams;
2683 /** \struct RateMangeParams_t
2684 * \brief Rate Maangement params structure
2692 rateAdaptParam_e paramIndex;
2693 uint16 RateRetryScore;
2698 uint8 InverseCuriosityFactor;
2701 uint8 PerAlphaShift;
2703 uint8 PerBeta1Shift;
2704 uint8 PerBeta2Shift;
2706 uint8 RateCheckDown;
2707 uint8 RateRetryPolicy[13];
2713 * This structure encapsulates the initialization data required by the TnetwDrv layer.
2714 * All structures in it are arranged so no padding will be added by the compiler!!
2715 * This is required to avoid missalignment when compiled by customers using GWSI API!!
2717 /** \struct TTwdInitParams
2718 * \brief TWD Init Parameters
2721 * All TWD Initialization Parameters
2723 * \sa TWD_SetDefaults
2727 TGeneralInitParams tGeneral; /**< General Initialization Parameters */
2728 TPowerSrvInitParams tPowerSrv; /**< Power Service Initialization Parameters */
2729 TScanSrvInitParams tScanSrv; /**< Scan Service Initialization Parameters */
2730 TArpIpFilterInitParams tArpIpFilter; /**< ARP IP filter Initialization Parameters */
2731 TMacAddrFilterInitParams tMacAddrFilter; /**< MAC Address Initialization Parameters */
2732 IniFileRadioParam tIniFileRadioParams; /**< Radio Initialization Parameters */
2733 IniFileExtendedRadioParam tIniFileExtRadioParams; /**< Radio Initialization Parameters */
2734 IniFileGeneralParam tPlatformGenParams; /**< Radio Initialization Parameters */
2735 RateMangeParams_t tRateMngParams;
2736 DcoItrimParams_t tDcoItrimParams; /**< Dco Itrim Parameters */
2740 /** \struct TTwdHtCapabilities
2741 * \brief TWD HT Capabilities
2745 * \sa TWD_SetDefaults, TWD_GetTwdHtCapabilities
2749 TI_BOOL b11nEnable; /**< Enable/Disable 802.11n flag */
2750 TI_UINT8 uChannelWidth; /**< */
2751 TI_UINT8 uRxSTBC; /**< */
2752 TI_UINT8 uMaxAMSDU; /**< */
2753 TI_UINT8 uMaxAMPDU; /**< */
2754 TI_UINT8 uAMPDUSpacing; /**< */
2755 TI_UINT8 aRxMCS[RX_TX_MCS_BITMASK_SIZE]; /**< */
2756 TI_UINT8 aTxMCS[RX_TX_MCS_BITMASK_SIZE]; /**< */
2757 TI_UINT16 uRxMaxDataRate; /**< */
2758 TI_UINT8 uPCOTransTime; /**< */
2759 TI_UINT32 uHTCapabilitiesBitMask; /**< */
2760 TI_UINT8 uMCSFeedback; /**< */
2761 } TTwdHtCapabilities;
2765 int32 SNRCorrectionHighLimit;
2766 int32 SNRCorrectionLowLimit;
2768 int32 attemptEvaluateTH;
2769 int32 goodAttemptTH;
2770 int32 curveCorrectionStep;
2772 }RateMangeReadParams_t;
2776 * --------------------------------------------------------------
2778 * --------------------------------------------------------------
2780 /** @ingroup Control
2781 * \brief Send Packet Transfer CB
2783 * \param CBObj - object handle
2784 * \param pPktCtrlBlk - Pointer to Input Packet Control Block
2788 * The Transfer-Done callback
2789 * User registers the CB for Send Packet Transfer done
2791 * \sa TWD_RegisterCb
2793 typedef void (* TSendPacketTranferCb)(TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk);
2794 /** @ingroup Control
2795 * \brief Send Packet Debug CB
2797 * \param CBObj - object handle
2798 * \param pPktCtrlBlk - Pointer to Input Packet Control Block
2799 * uDebugInfo - Debug Information
2803 * The Transfer-Done Debug callback
2807 typedef void (* TSendPacketDebugCb) (TI_HANDLE CBObj, TTxCtrlBlk *pPktCtrlBlk, TI_UINT32 uDebugInfo);
2808 /** @ingroup Control
2809 * \brief Send Packet Debug CB
2811 * \param CBObj - object handle
2812 * \param pPktCtrlBlk - Pointer to Input Packet Control Block
2813 * uDebugInfo - Debug Information
2818 * \sa TWD_RegisterCb
2820 typedef ERxBufferStatus (*TRequestForBufferCb) (TI_HANDLE hObj, void **pRxBuffer, TI_UINT16 aLength, TI_UINT32 uEncryptionFlag, PacketClassTag_e ePacketClassTag);
2821 /** @ingroup Control
2822 * \brief Send Packet Debug CB
2824 * \param hObj - object handle
2825 * \param pBuffer - Pointer to Received buffer frame
2829 * This function CB will be called when Received packet from RX Queue
2830 * User registers the CB for RX Buffer Request
2832 * \sa TWD_RegisterCb
2834 typedef void (*TPacketReceiveCb) (TI_HANDLE hObj,
2835 const void *pBuffer);
2836 /** @ingroup Control
2837 * \brief Failure Event CB
2839 * \param handle - object handle
2840 * \param eFailureEvent - Failure Event Type
2844 * Callback clled for Failure event
2845 * User registers the CB for Health-Moitoring
2847 * \sa TWD_RegisterCb
2849 typedef void (*TFailureEventCb) (TI_HANDLE handle, EFailureEvent eFailureEvent);
2852 * \brief TWD Callback
2855 * Union which holds all TWD Internal Callbacks which are registered by user
2856 * per Module and Event IDs
2858 * \sa TWD_RegisterCb
2862 TSendPacketTranferCb sendPacketCB; /**< Transfer-Done callback */
2863 TSendPacketDebugCb sendPacketDbgCB; /**< Transfer-Done Debug callback */
2864 TRequestForBufferCb requestBufferCB; /**< Transfer-Done Debug callback */
2865 TPacketReceiveCb recvPacketCB; /**< RX Buffer Request callback */
2866 TFailureEventCb failureEventCB; /**< Failure Event callback */
2870 /** @ingroup Control
2871 * \brief Scan Service complete CB
2873 * \param hCb - handle to the scan object
2874 * \param eTag - the scan results type tag
2875 * \param uResultCount - number of results received during this scan
2876 * \param SPSStatus - bitmap indicating which channels were attempted (if this is an SPS scan)
2877 * \param TSFError - whether a TSF error occurred (if this is an SPS scan)
2878 * \param ScanStatus - scan SRV status (OK / NOK)
2879 * \param PSMode - Power Save Mode
2883 * This function CB will be called when Scan Service is complete
2884 * User registers the Scan Service Complete CB
2886 * \sa TWD_RegisterScanCompleteCb
2888 typedef void (*TScanSrvCompleteCb) (TI_HANDLE hCb,
2889 EScanResultTag eTag,
2890 TI_UINT32 uResultCount,
2891 TI_UINT16 SPSStatus,
2893 TI_STATUS ScanStatus,
2895 /** @ingroup Control
2896 * \brief TWD Callback
2898 * \param hCb - handle to object
2899 * \param status - completion status
2903 * Initialising Complete Callaback (exapmle: Init HW/FW CB etc.)
2904 * User can use its own Complete CB which will be called when
2905 * the suitable module id & event number will arrive
2909 typedef void (*TTwdCallback) (TI_HANDLE hCb, TI_STATUS status);
2910 /** @ingroup Control
2911 * \brief TWD Callback
2913 * \param hCb - handle to object
2914 * \param msrReply - Pointer to input measurement (which ended) Reply
2918 * The function prototype for the measurement complete callback
2919 * User can use its own measurement complete CB
2920 * which will be called when measurement end
2922 * \sa TWD_StartMeasurement
2924 typedef void (*TMeasurementSrvCompleteCb) (TI_HANDLE hCb, TMeasurementReply* msrReply);
2925 /** @ingroup Control
2926 * \brief Command Response Callback
2928 * \param hCb - handle to object
2929 * \param status - status of Command ended
2933 * The function prototype for the Command Response CB
2934 * Enables user to implement and use its own Response CB
2935 * which will be called when TWD Command end
2937 * \sa TWD_StartMeasurement, TWD_StopMeasurement, TWD_Scan, TWD_StopScan, TWD_StartPeriodicScan, TWD_StopPeriodicScan
2939 typedef void (*TCmdResponseCb) (TI_HANDLE hCb, TI_UINT16 status);
2940 /** @ingroup Control
2941 * \brief Command Response Callback
2943 * \param hCb - handle to object
2944 * \param status - status of Command ended
2948 * The function prototype for the Power Save Set Response CB
2949 * Enables user to implement and use its own Response CB which
2950 * will be called when Power Save Set Command end
2954 typedef void (*TPowerSaveResponseCb)(TI_HANDLE hCb, TI_UINT8 status);
2955 /** @ingroup Control
2956 * \brief Command Complete Callback
2958 * \param hCb - handle to object
2959 * \param PsMode - Power Save Mode
2960 * \param status - status of Command ended
2964 * The function prototype for the Power Save Set Complete CB
2965 * Enables user to implement and use its own Complete CB which
2966 * will be called when Power Save Set Command end (for success/faild notification)
2970 typedef void (*TPowerSaveCompleteCb )(TI_HANDLE hCb, TI_UINT8 PsMode, TI_UINT8 status);
2971 /** @ingroup Control
2972 * \brief Create TWD Module
2974 * \param hOs - OS module object handle
2975 * \return TWD Module object handle on success or NULL on failure
2978 * Calling this function Creates a TWD object and all its sub-modules.
2980 * \sa TWD_Destroy, TWD_Init
2982 TI_HANDLE TWD_Create (TI_HANDLE hOs);
2983 /** @ingroup Control
2984 * \brief Destroy TWD Module
2986 * \param hTWD - hTWD module object handle
2987 * \return TI_OK on success or TI_NOK on failure
2990 * Calling this function Destroys TWD object and all its sub-modules.
2994 TI_STATUS TWD_Destroy (TI_HANDLE hTWD);
2996 * \brief Init TWD module
2998 * \param hTWD - TWD module object handle
2999 * \param hReport - Report module object handle
3000 * \param hUser - Master (User) module object handle
3001 * \param hTimer - Timer module object handle
3002 * \param hContext - context-engine module object handle
3003 * \param hTxnQ - TxnQueue module object handle
3004 * \param fInitHwCb - Init HW callback called when init HW phase is done
3005 * \param fInitFwCb - Init FW callback called when init FW phase is done
3006 * \param fConfigFwCb - Configuration FW callback called when configuring FW phase is done
3007 * \param fStopCb - Stop callback called when TWD is stopped
3008 * \param fInitFailCb - Fail callback called when TWD is Failed
3012 * Start hardware Init and Config process.
3013 * This is the first function that must be called after TWD_Create.
3015 * \sa TWD_Create, TWD_Stop
3017 void TWD_Init (TI_HANDLE hTWD,
3023 TTwdCallback fInitHwCb,
3024 TTwdCallback fInitFwCb,
3025 TTwdCallback fConfigFwCb,
3026 TTwdCallback fStopCb,
3027 TTwdCallback fInitFailCb);
3028 /** @ingroup Control
3029 * \brief Init HW module
3031 * \param hTWD - TWD module object handle
3032 * \param pbuf - Pointer to Input NVS Buffer
3033 * \param length - Length of NVS Buffer
3034 * \param uRxDmaBufLen - The Rx DMA buffer length in bytes (needed as a limit for Rx aggregation length)
3035 * \param uTxDmaBufLen - The Tx DMA buffer length in bytes (needed as a limit for Tx aggregation length)
3036 * \return TI_OK on success or TI_NOK on failure
3039 * Performs the HW init process.
3043 TI_STATUS TWD_InitHw (TI_HANDLE hTWD,
3046 TI_UINT32 uRxDmaBufLen,
3047 TI_UINT32 uTxDmaBufLen);
3048 /** @ingroup Control
3049 * \brief Set Defults to TWD Init Params
3051 * \param hTWD - TWD module object handle
3052 * \param pInitParams - Pointer to Input init default parameters
3053 * \return TI_OK on success or TI_NOK on failure
3059 TI_STATUS TWD_SetDefaults (TI_HANDLE hTWD, TTwdInitParams *pInitParams);
3060 /** @ingroup Control
3063 * \param hTWD - TWD module object handle
3064 * \param pFileInfo - Pointer to Input Buffer contains part of FW Image to Download
3065 * The Following Field should be filled:
3066 * pFileInfo->pBuffer
3067 * pFileInfo->uLength
3068 * pFileInfo->uAddress
3070 * \return TI_OK on success or TI_NOK on failure
3073 * Performs FW Download, and Run FW
3077 TI_STATUS TWD_InitFw (TI_HANDLE hTWD, TFileInfo *pFileInfo);
3078 /** @ingroup Control
3079 * \brief Open UART Bus Txn
3081 * \param hTWD - TWD module object handle
3082 * \param pParams - Pointer to Input parameters
3083 * \return TI_OK on success or TI_NOK on failure
3089 TI_STATUS TWD_BusOpen (TI_HANDLE hTWD, void* pParams);
3090 /** @ingroup Control
3091 * \brief Close UART Bus Txn
3093 * \param hTWD - TWD module object handle
3094 * \return TI_OK on success or TI_NOK on failure
3100 TI_STATUS TWD_BusClose (TI_HANDLE hTWD);
3101 /** @ingroup Control
3102 * \brief Halt firmware
3104 * \param hTWD - TWD module object handle
3105 * \return TI_OK on success or TI_NOK on failure
3111 TI_STATUS TWD_Stop (TI_HANDLE hTWD);
3112 /** @ingroup Control
3113 * \brief Enable external events from FW
3115 * \param hTWD - TWD module object handle
3119 * Enable external events from FW upon driver start or recovery completion
3123 void TWD_EnableExternalEvents (TI_HANDLE hTWD);
3124 /** @ingroup Control
3125 * \brief Registers TWD internal callback function
3127 * \param hTWD - TWD module object handle
3128 * \param event - event on which the registrated CB will be called
3129 * \param fCb - Pointer to Registered CB function
3130 * \param pData - Pointer to Registered CB data
3131 * \return TI_OK on success or TI_NOK on failure
3134 * This CB enables user to register TWD Internal CB functions of different Modules,
3136 * The function identifies which TWD Module owns the Registered CB, and what the specific Registered CB
3137 * according to event input parameter.
3138 * Once the Module and specific CB function are identified, the CB is registerd in the TWD Module
3139 * by calling suitable registration CB function
3143 TI_STATUS TWD_RegisterCb (TI_HANDLE hTWD, TI_UINT32 event, TTwdCB *fCb, void *pData);
3144 /** @ingroup Control
3145 * \brief Exit from init mode
3147 * \param hTWD - TWD module object handle
3148 * \return TI_OK on success or TI_NOK on failure
3151 * Exit From Init Mode enable sending command to the MboxQueue (which store a command),
3152 * while the interrupts are masked.
3153 * The interrupt would be enable at the end of the init process
3157 TI_STATUS TWD_ExitFromInitMode (TI_HANDLE hTWD);
3158 /** @ingroup Control
3159 * \brief Finalize FW init and download
3161 * \param hTWD - TWD module object handle
3165 * Init all the remaining initialization after the FW download has finished
3169 void TWD_FinalizeDownload (TI_HANDLE hTWD);
3170 /** @ingroup Control
3171 * \brief Finalize of faulty FW init and download
3173 * \param hTWD - TWD module object handle
3177 * Call the upper layer failure callback after Init or FW download has finished with failure.
3181 void TWD_FinalizeOnFailure (TI_HANDLE hTWD);
3182 /** @ingroup Control
3183 * \brief Perform FW Configuration
3185 * \param hTWD - TWD module object handle
3186 * \return TI_OK on success or TI_NOK on failure
3189 * Configure the FW from the TWD DB - after configuring all HW objects
3193 TI_STATUS TWD_ConfigFw (TI_HANDLE hTWD);
3194 /** @ingroup Control
3195 * \brief Handle FW interrupt from ISR context
3197 * \param hTWD - TWD module object handle
3198 * \return TI_OK on success or TI_NOK on failure
3201 * This is the FW-interrupt ISR context. The driver task is scheduled to hadnle FW-Events
3205 TI_STATUS TWD_InterruptRequest (TI_HANDLE hTWD);
3206 /** @ingroup Control
3207 * \brief Enable Recovery
3209 * \param hTWD - TWD module object handle
3210 * \return TRUE if recovery Enables, FALSE otherwise
3213 * Return Recovery E/D status
3217 TI_BOOL TWD_RecoveryEnabled (TI_HANDLE hTWD);
3218 /** @ingroup Measurement
3219 * \brief Starts a measurement
3221 * \param hTWD - TWD module object handle
3222 * \param pMsrRequest - Pointer to Input structure which contains the measurement parameters
3223 * \param uTimeToRequestExpiryMs - The time (in milliseconds) the measurement SRV has to start the request
3224 * \param fResponseCb - The Command response CB Function
3225 * \param hResponseCb - Handle to Command response CB Function Obj
3226 * \param fCompleteCb - The Command Complete CB Function
3227 * \param hCompleteCb - Handle to Command Complete CB Function Obj
3228 * \return TI_OK on success or TI_NOK on failure
3231 * Starts a measurement operation
3235 TI_STATUS TWD_StartMeasurement (TI_HANDLE hTWD,
3236 TMeasurementRequest *pMsrRequest,
3237 TI_UINT32 uTimeToRequestExpiryMs,
3238 TCmdResponseCb fResponseCb,
3239 TI_HANDLE hResponseCb,
3240 TMeasurementSrvCompleteCb fCompleteCb,
3241 TI_HANDLE hCompleteCb);
3242 /** @ingroup Measurement
3243 * \brief Stops a measurement
3245 * \param hTWD - TWD module object handle
3246 * \param bSendNullData - Indicates whether to send NULL data when exiting driver mode
3247 * \param fResponseCb - Pointer to Command response CB function
3248 * \param hResponseCb - Handle to Command response CB parameters
3249 * \return TI_OK on success or TI_NOK on failure
3252 * Stops a measurement operation in progress
3256 TI_STATUS TWD_StopMeasurement (TI_HANDLE hTWD,
3257 TI_BOOL bSendNullData,
3258 TCmdResponseCb fResponseCb,
3259 TI_HANDLE hResponseCb);
3260 /** @ingroup Measurement
3263 * \param hTWD - TWD module object handle
3264 * \param pScanParams - Pointer to Input Scan specific parameters
3265 * \param eScanTag - Scan tag, used for result and scan complete tracking
3266 * \param bHighPriority - Indicates whether to perform a high priority (overlaps DTIM) scan
3267 * \param bDriverMode - Indicates whether to try to enter driver mode (with PS on) before issuing the scan command
3268 * \param bScanOnDriverModeError - Indicates whether to proceed with the scan if requested to enter driver mode and failed
3269 * \param ePsRequest - Parameter sent to PowerSaveServer.
3270 * Should indicates PS ON or "keep current" only when driver mode is requested,
3271 * Otherwise should indicate OFF
3272 * \param bSendNullData - Indicates whether to send Null data when exiting driver mode on scan complete
3273 * \param fResponseCb - The Response CB Function which called after downloading the command
3274 * \param hResponseCb - Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
3275 * \return TI_OK on success or TI_NOK on failure
3278 * Start scan. enter driver mode (PS) only if station is connected
3282 TI_STATUS TWD_Scan (TI_HANDLE hTWD,
3283 TScanParams *pScanParams,
3284 EScanResultTag eScanTag,
3285 TI_BOOL bHighPriority,
3286 TI_BOOL bDriverMode,
3287 TI_BOOL bScanOnDriverModeError,
3288 E80211PsMode ePsRequest,
3289 TI_BOOL bSendNullData,
3290 TCmdResponseCb fResponseCb,
3291 TI_HANDLE hResponseCb);
3292 /** @ingroup Measurement
3295 * \param hTWD - TWD module object handle
3296 * \param eScanTag - Scan tag, used to track scan complete and result
3297 * \param bSendNullData - Indicates whether to send Null data when exiting driver mode
3298 * \param fScanCommandResponseCb - The Response CB Function which called after downloading the command
3299 * \param hCb - Handle to the Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
3300 * \return TI_OK on success or TI_NOK on failure
3303 * Sends a Stop Scan command to FW, no matter if we are in scan progress or not
3307 TI_STATUS TWD_StopScan (TI_HANDLE hTWD,
3308 EScanResultTag eScanTag,
3309 TI_BOOL bSendNullData,
3310 TCmdResponseCb fScanCommandResponseCb,
3312 /** @ingroup Measurement
3313 * \brief Stop Scan on FW Reset
3315 * \param hTWD - TWD module object handle
3316 * \return TI_OK on success or TI_NOK on failure
3319 * Stop scan operation when a FW reset (recovery) situation is detected (by all processes
3324 TI_STATUS TWD_StopScanOnFWReset (TI_HANDLE hTWD);
3325 /** @ingroup Measurement
3326 * \brief Start Connection Periodic Scan operation
3328 * \param hTWD - TWD module object handle
3329 * \param pPeriodicScanParams - Pointer to Input Parameters Structures for the Periodic Scan operation
3330 * \param eScanTag - Scan tag, used for scan complete and result tracking
3331 * \param uPassiveScanDfsDwellTimeMs - Passive dwell time for DFS channels (in milli-secs)
3332 * \param fResponseCb - Response CB Function which is called after downloading the command
3333 * \param hResponseCb - Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
3334 * \return TI_OK on success or TI_NOK on failure
3337 * Perform Connection Scan periodically
3341 TI_STATUS TWD_StartConnectionScan (TI_HANDLE hTWD,
3342 TPeriodicScanParams *pPeriodicScanParams,
3343 EScanResultTag eScanTag,
3344 TI_UINT32 uPassiveScanDfsDwellTimeMs,
3345 TCmdResponseCb fResponseCb,
3346 TI_HANDLE hResponseCb);
3347 /** @ingroup Measurement
3348 * \brief Stop Periodic Scan operation
3350 * \param hTWD - TWD module object handle
3351 * \param eScanTag - scan tag, used for scan complete and result tracking
3352 * \param fResponseCb - Response CB Function which is called after downloading the command
3353 * \param hResponseCb - Handle to Response CB Function Obj (Notice : last 2 params are NULL in Legacy run)
3354 * \return TI_OK on success or TI_NOK on failure
3357 * Stop Periodic Connection Scan
3361 TI_STATUS TWD_StopPeriodicScan (TI_HANDLE hTWD,
3362 EScanResultTag eScanTag,
3363 TCmdResponseCb fResponseCb,
3364 TI_HANDLE hResponseCb);
3365 /** @ingroup Measurement
3366 * \brief Register CB for Scan Complete
3368 * \param hTWD - TWD module object handle
3369 * \param fScanCompleteCb - The Complete CB Function
3370 * \param hScanCompleteCb - Handle to the Complete CB Function Obj
3371 * \return TI_OK on success or TI_NOK on failure
3374 * Registers a Complete CB Function for Scan Complete notifications
3378 TI_STATUS TWD_RegisterScanCompleteCb (TI_HANDLE hTWD,
3379 TScanSrvCompleteCb fScanCompleteCb,
3380 TI_HANDLE hScanCompleteCb);
3382 * \brief Set Parameters in FW
3384 * \param hTWD - TWD module object handle
3385 * \param pParamInfo - Pointer to Input TWD Parameters Information Structure
3386 * \return TI_OK on success or TI_NOK on failure
3389 * Set/Configure Parameters Information in FW via Mail BOX
3393 TI_STATUS TWD_SetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo);
3395 * \brief Get Parameters from FW
3397 * \param hTWD - TWD module object handle
3398 * \param pParamInfo - Pointer to Input TWD Parameters Information Structure
3399 * \return TI_OK on success or TI_NOK on failure
3402 * Get Parameters Information from FW via Mail BOX
3406 TI_STATUS TWD_GetParam (TI_HANDLE hTWD, TTwdParamInfo *pParamInfo);
3407 /** @ingroup Control
3408 * \brief Callback which Checks MBOX
3410 * \param hTWD - TWD module object handle
3411 * \param uMboxStatus - Mailbox status
3412 * \param pItrParamBuf - Pointer to Interrogate parameters buffer
3413 * \return TI_OK on success or TI_NOK on failure
3416 * Perform FW validation by calling CB function which is used for handling MBOX error.
3417 * If command MBOX queue identify MBOX error or timeout, it will call
3418 * a failure-callback with MBOX_FAILURE type (FW failed)
3422 TI_STATUS TWD_CheckMailboxCb (TI_HANDLE hTWD, TI_UINT16 uMboxStatus, void *pItrParamBuf);
3423 /** @ingroup Control
3426 * \param hTWD - TWD module object handle
3427 * \param pMib - Pointer to Input MIB Structure
3428 * \return TI_OK on success or TI_NOK on failure
3431 * Write configuration information to FW
3435 TI_STATUS TWD_WriteMib (TI_HANDLE hTWD, TMib* pMib);
3436 /** @ingroup Control
3439 * \param hTWD - TWD module object handle
3440 * \param hCb - Handle to Request MIB CB Function Obj
3441 * \param fCb - Pinter to Request MIB CB Function
3442 * \param pCb - Pointer to read parameters
3443 * \return TI_OK on success or TI_NOK on failure
3446 * Read configuration information from FW
3450 TI_STATUS TWD_ReadMib (TI_HANDLE hTWD, TI_HANDLE hCb, void* fCb, void* pCb);
3451 /** @ingroup Control
3454 * \param hTWD - TWD module object handle
3455 * \param funcType - TWD Function Debuged
3456 * \param pParam - Pointer to Input parameters of Debug function
3457 * \return TI_OK on success or TI_NOK on failure
3464 TI_STATUS TWD_Debug (TI_HANDLE hTWD, TI_UINT32 funcType, void *pParam);
3465 /** @ingroup Control
3466 * \brief Register event
3468 * \param hTWD - TWD module object handle
3469 * \param event - Event ID
3470 * \param fCb - Event Callback function pointer
3471 * \param hCb - Event Callback object handle
3472 * \return TI_OK on success or TI_NOK on failure
3475 * Register FW event callback function
3479 TI_STATUS TWD_RegisterEvent (TI_HANDLE hTWD, TI_UINT32 event, void *fCb, TI_HANDLE hCb);
3480 /** @ingroup Control
3481 * \brief Disable event
3483 * \param hTWD - TWD module object handle
3484 * \param event - Event ID
3485 * \return TI_OK on success or TI_NOK on failure
3488 * Disable specific FW event
3489 * Note: Currently not in use
3493 TI_STATUS TWD_DisableEvent (TI_HANDLE hTWD, TI_UINT32 event);
3494 /** @ingroup Control
3495 * \brief Enable event
3497 * \param hTWD - TWD module object handle
3498 * \param event - Event ID
3499 * \return TI_OK on success or TI_NOK on failure
3502 * Enable specific FW event
3506 TI_STATUS TWD_EnableEvent (TI_HANDLE hTWD, TI_UINT32 event);
3507 /** @ingroup Control
3508 * \brief Convert RSSI to RX Level
3510 * \param hTWD - TWD module object handle
3511 * \param iRssiVal - RSSI Input Value
3512 * \return TI_OK on success or TI_NOK on failure
3515 * Note: Currently not in use!
3519 TI_INT8 TWD_ConvertRSSIToRxLevel (TI_HANDLE hTWD, TI_INT32 iRssiVal);
3520 /** @ingroup Control
3521 * \brief Complete TWD Stop
3523 * \param hTWD - TWD module object handle
3528 * \sa TWD_Stop, TWD_Init
3530 void TWD_StopComplete (TI_HANDLE hTWD);
3531 /** @ingroup Control
3532 * \brief Disable Interrupts
3534 * \param hTWD - TWD module object handle
3538 * Disable the FW Event client of the context thread handler
3542 void TWD_DisableInterrupts (TI_HANDLE hTWD);
3543 /** @ingroup Control
3544 * \brief Enable Interrupts
3546 * \param hTWD - TWD module object handle
3550 * Enable the FW Event client of the context thread handler
3554 void TWD_EnableInterrupts (TI_HANDLE hTWD);
3555 /** @ingroup Control
3556 * \brief Translate host to FW time (Usec)
3558 * \param hTWD - TWD module object handle
3559 * \param uHostTime - The host time in MS to translate
3561 * \return FW Time in Usec
3567 TI_UINT32 TWD_TranslateToFwTime (TI_HANDLE hTWD, TI_UINT32 uHostTime);
3569 * \brief Get TWD HT Capabilities
3571 * \param hTWD - TWD module object handle
3572 * \param pTwdHtCapabilities - Pointer read structure Output
3580 void TWD_GetTwdHtCapabilities (TI_HANDLE hTWD, TTwdHtCapabilities **pTwdHtCapabilities);
3582 /** @ingroup Measurement
3583 * \brief Prints Scan Server Debug status
3585 * \param hTWD - TWD module object handle
3586 * \return TI_OK on success or TI_NOK on failure
3592 TI_STATUS TWD_PrintMacServDebugStatus (TI_HANDLE hTWD);
3595 * \brief Prints Tx Info
3597 * \param hTWD - TWD module object handle
3598 * \param ePrintInfo - Information type
3599 * \return TI_OK on success or TI_NOK on failure
3602 * Call the requested print function - used for Debug Test
3606 TI_STATUS TWD_PrintTxInfo (TI_HANDLE hTWD, ETwdPrintInfoType ePrintInfo);
3613 /** @ingroup Control
3614 * \brief Get number of Commands in CMD Queue
3616 * \param hTWD - TWD module object handle
3617 * \return Maximum Number of Commands currently in CMD Queue
3623 TI_UINT32 TWD_GetMaxNumberOfCommandsInQueue (TI_HANDLE hTWD);
3624 /** @ingroup Power_Management
3625 * \brief Get Power Save Status
3627 * \param hTWD - TWD module object handle
3628 * \return TI_OK on success or TI_NOK on failure
3634 TI_BOOL TWD_GetPsStatus (TI_HANDLE hTWD);
3637 /** @ingroup Control
3638 * \brief Get FW Information
3640 * \param hTWD - TWD module object handle
3641 * \return TFwInfo - Pointer to Output FW Information Structure
3644 * Gets the TFwInfo pointer
3648 TFwInfo* TWD_GetFWInfo (TI_HANDLE hTWD);
3650 * \brief Get Group Address Table
3652 * \param hTWD - TWD module object handle
3653 * \param pEnabled - Pointer to Output Indicatore if MAC Address Filter is Enabled
3654 * \param pNumGroupAddrs - Pointer to Output Number of Group Address
3655 * \param pGroupAddr - Pointer to Output Group Address Table
3656 * \return TI_OK on success or TI_NOK on failure
3660 * \sa TWD_WriteMib, TMacAddr
3662 TI_STATUS TWD_GetGroupAddressTable (TI_HANDLE hTWD, TI_UINT8* pEnabled, TI_UINT8* pNumGroupAddrs, TMacAddr *pGroupAddr);
3663 /** @ingroup Control
3664 * \brief Read Memory
3666 * \param hTWD - TWD module object handle
3667 * \param pMemDebug - Pointer to read Output
3668 * \param fCb - Pointer to function Callback
3669 * \param hCb - Handle to function Callback Parameters
3670 * \return TI_OK on success or TI_NOK on failure
3676 TI_STATUS TWD_readMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb);
3677 /** @ingroup Control
3678 * \brief Write Memory
3680 * \param hTWD - TWD module object handle
3681 * \param pMemDebug - Pointer to write Input
3682 * \param fCb - Pointer to function Callback
3683 * \param hCb - Handle to function Callback Parameters
3684 * \return TI_OK on success or TI_NOK on failure
3690 TI_STATUS TWD_writeMem (TI_HANDLE hTWD, TFwDebugParams* pMemDebug, void* fCb, TI_HANDLE hCb);
3692 /** @ingroup Control
3693 * \brief Check if addr is a valid memory address
3695 * \param hTWD - TWD module object handle
3696 * \param pMemDebug - Pointer to addr & length
3697 * \return TI_TRUE on success or TI_FALSE on failure
3703 TI_BOOL TWD_isValidMemoryAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug);
3705 /** @ingroup Control
3706 * \brief Check if addr is a valid register address
3708 * \param hTWD - TWD module object handle
3709 * \param pMemDebug - Pointer to addr & length
3710 * \return TI_TRUE on success or TI_FALSE on failure
3716 TI_BOOL TWD_isValidRegAddr (TI_HANDLE hTWD, TFwDebugParams* pMemDebug);
3722 /** @ingroup Power_Management
3723 * \brief Set Power Save Mode
3725 * \param hTWD - TWD module object handle
3726 * \param ePsMode - Power Save Mode
3727 * \param bSendNullDataOnExit - Indicates whether to send NULL data when exiting driver mode
3728 * \param hPowerSaveCompleteCb - Handle to PS Complete CB Parameters Obj
3729 * \param fPowerSaveCompleteCb - The PS Complete CB function
3730 * \param fPowerSaveResponseCb - The PS Response CB function
3731 * \return TI_OK on success or TI_NOK on failure
3737 TI_STATUS TWD_SetPsMode (TI_HANDLE hTWD,
3738 E80211PsMode ePsMode,
3739 TI_BOOL bSendNullDataOnExit,
3740 TI_HANDLE hPowerSaveCompleteCb,
3741 TPowerSaveCompleteCb fPowerSaveCompleteCb,
3742 TPowerSaveResponseCb fPowerSaveResponseCb);
3744 * \brief Set Rate Modulation
3746 * \param hTWD - TWD module object handle
3747 * \param rate - Rate Modulation Value
3748 * \return TRUE if Power Service State is Pwer Save, FALSE otherwise
3754 TI_STATUS TWD_SetNullRateModulation (TI_HANDLE hTWD, TI_UINT16 rate);
3756 * \brief Set Radio Band
3758 * \param hTWD - TWD module object handle
3759 * \param eRadioBand - Radio Band Type
3760 * \return TI_OK on success or TI_NOK on failure
3766 TI_STATUS TWD_SetRadioBand (TI_HANDLE hTWD, ERadioBand eRadioBand);
3767 /** @ingroup Data_Path
3768 * \brief Set Security Sequance Number
3770 * \param hTWD - TWD module object handle
3771 * \param securitySeqNumLsByte - LS Byte of Security Sequance Number
3772 * \return TI_OK on success or TI_NOK on failure
3775 * Update the TKIP/AES sequence-number according to the Tx data packet security-sequance-number
3776 * Note: The FW always provides the last used sequance-number so no need to check if the current
3777 * packet is data and WEP is on
3781 TI_STATUS TWD_SetSecuritySeqNum (TI_HANDLE hTWD, TI_UINT8 securitySeqNumLsByte);
3783 * \brief Update DTIM & TBTT
3785 * \param hTWD - TWD module object handle
3786 * \param uDtimPeriod - DTIM period in number of beacons
3787 * \param uBeaconInterval - Beacon perios in TUs (1024 msec)
3791 * Update DTIM and Beacon periods for scan timeout calculations
3795 void TWD_UpdateDtimTbtt (TI_HANDLE hTWD, TI_UINT8 uDtimPeriod, TI_UINT16 uBeaconInterval);
3802 /** @ingroup Measurement
3803 * \brief Set Split scan time out
3805 * \param hTWD - TWD module object handle
3806 * \param uTimeOut - Scan Time Out
3807 * \return TI_OK on success or TI_NOK on failure
3810 * Set Triggered scan time out per channel
3814 TI_STATUS TWD_CmdSetSplitScanTimeOut (TI_HANDLE hTWD, TI_UINT32 uTimeOut);
3818 * \param hTWD - TWD module object handle
3819 * \param pJoinBssParams - Pointer to Join BSS Input parameters structure
3820 * \return TI_OK on success or TI_NOK on failure
3826 TI_STATUS TWD_CmdJoinBss (TI_HANDLE hTWD, TJoinBss *pJoinBssParams);
3827 /** @ingroup Control
3828 * \brief Command Template
3830 * \param hTWD - TWD module object handle
3831 * \param pTemplateParams - Pointer to Input Template Parameters Structure
3832 * \param fCb - Pointer to Command Callback Function
3833 * \param hCb - Handle to Command Callback Function Obj. Parameters
3834 * \return TI_OK on success or TI_NOK on failure
3837 * Sets a template to the FW
3841 /* 6.1.08 - for future WHA measurement command */
3842 TI_STATUS TWD_CmdTemplate (TI_HANDLE hTWD, TSetTemplate *pTemplateParams, void *fCb, TI_HANDLE hCb);
3843 /** @ingroup Data_Path
3844 * \brief Enable Tx path
3846 * \param hTWD - TWD module object handle
3847 * \param channel - Channel Number
3848 * \return TI_OK on success or TI_NOK on failure
3851 * Enable tx path on the hardware
3855 TI_STATUS TWD_CmdEnableTx (TI_HANDLE hTWD, TI_UINT8 channel);
3856 /** @ingroup Data_Path
3857 * \brief Disable Tx path
3859 * \param hTWD - TWD module object handle
3860 * \return TI_OK on success or TI_NOK on failure
3866 TI_STATUS TWD_CmdDisableTx (TI_HANDLE hTWD);
3867 /** @ingroup Measurement
3868 * \brief Command Noise Histogram
3870 * \param hTWD - TWD module object handle
3871 * \param pNoiseHistParams - Pointer Input Noise Histogram Parameters:
3872 * holds Start/Stop Noise Histogram Measure Indication,
3873 * Sample Interval & Sample Ranges
3874 * \return TI_OK on success or TI_NOK on failure
3877 * Send a Start/Stop Noise Histogram Measure Command to the FW with measure parameters
3879 * \sa TNoiseHistogram
3881 TI_STATUS TWD_CmdNoiseHistogram (TI_HANDLE hTWD, TNoiseHistogram *pNoiseHistParams);
3884 * \brief Command Switch Channel
3886 * \param hTWD - TWD module object handle
3887 * \param pSwitchChannelCmd - Pointer to Switch Channel Parameters Structure
3888 * \return TI_OK on success or TI_NOK on failure
3892 * \sa TSwitchChannelParams
3894 TI_STATUS TWD_CmdSwitchChannel (TI_HANDLE hTWD, TSwitchChannelParams *pSwitchChannelCmd);
3896 * \brief Command Switch Channel Cancel
3898 * \param hTWD - TWD module object handle
3899 * \param channel - Channek Number
3900 * \return TI_OK on success or TI_NOK on failure
3906 TI_STATUS TWD_CmdSwitchChannelCancel (TI_HANDLE hTWD, TI_UINT8 channel);
3907 /** @ingroup Control
3908 * \brief FW Disconnect
3910 * \param hTWD - TWD module object handle
3911 * \return TI_OK on success or TI_NOK on failure
3917 TI_STATUS TWD_CmdFwDisconnect (TI_HANDLE hTWD, DisconnectType_e uDisconType, TI_UINT16 uDisconReason);
3918 /** @ingroup Measurement
3919 * \brief Start Measurement Command
3921 * \param hTWD - TWD module object handle
3922 * \param uDisconReason - 2 bytes of disconnect reason to be use in deauth/disassoc frmaes
3923 * \param uDisconType - Immediate (dont send frames) or send Deauth or send Disassoc frmae
3924 * \return TI_OK on success or TI_NOK on failure
3927 * send Command for start measurement to FW
3929 * \sa TMeasurementParams
3931 TI_STATUS TWD_CmdMeasurement (TI_HANDLE hTWD,
3932 TMeasurementParams *pMeasurementParams,
3933 void *fCommandResponseCb,
3935 /** @ingroup Measurement
3936 * \brief Stop Measurement Command
3938 * \param hTWD - TWD module object handle
3939 * \param fCb - Pointer to Callback Function
3940 * \param hCb - Handle to Callback Function Object Parameters
3941 * \return TI_OK on success or TI_NOK on failure
3944 * send Command for stop measurement to FW
3948 TI_STATUS TWD_CmdMeasurementStop (TI_HANDLE hTWD, void* fCb, TI_HANDLE hCb);
3949 /** @ingroup UnKnown
3950 * \brief AP Discovery
3952 * \param hTWD - TWD module object handle
3953 * \param pApDiscoveryParams - Pointer to Input AP Discovery Parameters Structure
3954 * \return TI_OK on success or TI_NOK on failure
3960 TI_STATUS TWD_CmdApDiscovery (TI_HANDLE hTWD, TApDiscoveryParams *pApDiscoveryParams);
3961 /** @ingroup UnKnown
3962 * \brief AP Discovery Stop
3964 * \param hTWD - TWD module object handle
3965 * \return TI_OK on success or TI_NOK on failure
3971 TI_STATUS TWD_CmdApDiscoveryStop (TI_HANDLE hTWD);
3973 /** @ingroup Control
3974 * \brief Helth Check
3976 * \param hTWD - TWD module object handle
3977 * \return TI_OK on success or TI_NOK on failure
3980 * Trigger the FW health test command and wait for results
3984 TI_STATUS TWD_CmdHealthCheck (TI_HANDLE hTWD);
3985 /** @ingroup UnKnown
3986 * \brief AP Discovery
3988 * \param hTWD - TWD module object handle
3989 * \param staState - stat of the station (CONNECTED)
3990 * \return TI_OK on success or TI_NOK on failure
3996 TI_STATUS TWD_CmdSetStaState (TI_HANDLE hTWD, TI_UINT8 staState, void *fCb, TI_HANDLE hCb);
4002 /** @ingroup UnKnown
4003 * \brief Configure ARP table
4005 * \param hTWD - TWD module object handle
4006 * \param tIpAddr - IP Address Input Buffer
4007 * \param bEnabled - Indicates if ARP filtering is Enabled (1) or Disabled (0)
4008 * \param eIpVer - IP Version
4009 * \return TI_OK on success or TI_NOK on failure
4012 * Configure ARP IP Address table
4016 TI_STATUS TWD_CfgArpIpAddrTable (TI_HANDLE hTWD,
4018 EArpFilterType filterType,
4021 TI_STATUS TWD_CfgArpIpFilter (TI_HANDLE hTWD,
4025 * \brief Configure Group Address Table
4027 * \param hTWD - TWD module object handle
4028 * \param uNumGroupAddrs - Number of Group Address
4029 * \param pGroupAddr - Pointer to Input Group Address Table
4030 * \param bEnabled - Indicates if MAC Address Filter is Enabled
4031 * \return TI_OK on success or TI_NOK on failure
4037 TI_STATUS TWD_CfgGroupAddressTable (TI_HANDLE hTWD,
4038 TI_UINT8 uNumGroupAddrs,
4039 TMacAddr *pGroupAddr,
4041 /** @ingroup Data_Path
4042 * \brief Configure RX Filters
4044 * \param hTWD - TWD module object handle
4045 * \param uRxConfigOption - RX Configuration Option
4046 * \param uRxFilterOption - RX Filter Option
4047 * \return TI_OK on success or TI_NOK on failure
4053 TI_STATUS TWD_CfgRx (TI_HANDLE hTWD, TI_UINT32 uRxConfigOption, TI_UINT32 uRxFilterOption);
4054 /** @ingroup UnKnown
4055 * \brief Configure Packet Detection Threshold
4057 * \param hTWD - TWD module object handle
4058 * \param threshold - Threshold Value
4059 * \return TI_OK on success or TI_NOK on failure
4065 TI_STATUS TWD_CfgPacketDetectionThreshold (TI_HANDLE hTWD, TI_UINT32 threshold);
4067 * \brief Configure Slot Time
4069 * \param hTWD - TWD module object handle
4070 * \param eSlotTimeVal - Slot Time Value
4071 * \return TI_OK on success or TI_NOK on failure
4077 TI_STATUS TWD_CfgSlotTime (TI_HANDLE hTWD, ESlotTime eSlotTimeVal);
4079 * \brief Configure Preamble
4081 * \param hTWD - TWD module object handle
4082 * \param ePreamble - Preamble Value
4083 * \return TI_OK on success or TI_NOK on failure
4089 TI_STATUS TWD_CfgPreamble (TI_HANDLE hTWD, EPreamble ePreamble);
4090 /** @ingroup Power_Management
4091 * \brief Configure Beacon Filter State
4093 * \param hTWD - TWD module object handle
4094 * \param uBeaconFilteringStatus - Beacon Filtering Status. Indicates whether the filter is enabled:
4095 * 1 - enabled, 0 - disabled
4096 * \param uNumOfBeaconsToBuffer - Determines the number of beacons without the unicast TIM bit set,
4097 * that the firmware buffers before signaling the host about ready frames.
4098 * When thi snumber is set to 0 and the filter is enabled, beacons without
4099 * the unicast TIM bit set are dropped.
4100 * \return TI_OK on success or TI_NOK on failure
4103 * Configure Beacon Filter State to the FW
4107 TI_STATUS TWD_CfgBeaconFilterOpt (TI_HANDLE hTWD, TI_UINT8 uBeaconFilteringStatus, TI_UINT8 uNumOfBeaconsToBuffer);
4108 /** @ingroup Power_Management
4109 * \brief Configure Beacon Filter Table
4111 * \param hTWD - TWD module object handle
4112 * \param uNumOfIe - The number of IE's in the table
4113 * \param pIeTable - Pointer to Input IE Table
4114 * \param uIeTableSize - Size of Input IE Table
4115 * \return TI_OK on success or TI_NOK on failure
4118 * Configure Beacon Filter Table to the FW
4122 TI_STATUS TWD_CfgBeaconFilterTable (TI_HANDLE hTWD, TI_UINT8 uNumOfIe, TI_UINT8 *pIeTable, TI_UINT8 uIeTableSize);
4123 /** @ingroup Power_Management
4124 * \brief Configure Wake Up Condition
4126 * \param hTWD - TWD module object handle
4127 * \param pPowerMgmtConfig - Pointer to Input Power Management Configuration Parameters
4128 * \return TI_OK on success or TI_NOK on failure
4131 * Configure Power Manager's Wake Up Condition
4135 TI_STATUS TWD_CfgWakeUpCondition (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig);
4136 /** @ingroup UnKnown
4137 * \brief Configure Beacon Broadcast Options
4139 * \param hTWD - TWD module object handle
4140 * \param pPowerMgmtConfig - Pointer to Input Power Management Configuration Parameters Structure
4141 * The Following Field should be filled:
4142 * pPowerMgmtConfig->BcnBrcOptions.BeaconRxTimeout
4143 * pPowerMgmtConfig->BcnBrcOptions.BroadcastRxTimeout
4144 * pPowerMgmtConfig->BcnBrcOptions.RxBroadcastInPs - if set, enables receive of broadcast packets in Power-Save mode
4145 * pPowerMgmtConfig->ConsecutivePsPollDeliveryFailureThreshold - No answer after Ps-Poll work-around
4146 * \return TI_OK on success or TI_NOK on failure
4149 * Configure Power Manager's Beacon Broadcast Options:
4150 * Beacon RX time Out, Broadcast RX Timeout, RX Broadcast In Power Save,
4151 * Consecutive Power Save Poll Delivery Failure Threshold
4154 * \sa TPowerMgmtConfig, TBcnBrcOptions
4156 TI_STATUS TWD_CfgBcnBrcOptions (TI_HANDLE hTWD, TPowerMgmtConfig *pPowerMgmtConfig);
4159 * \brief Configure Max TX Retry
4161 * \param hTWD - TWD module object handle
4162 * \param pRoamingTriggerCmd - Pointer to Input Configuration Parameters Structure
4163 * The Following Field should be filled:
4164 * pRoamingTriggerCmd->maxTxRetry
4165 * \return TI_OK on success or TI_NOK on failure
4168 * Configure the Max Tx Retry parameters
4172 TI_STATUS TWD_CfgMaxTxRetry (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd);
4174 * \brief Configure Connection Monitoring
4176 * \param hTWD - TWD module object handle
4177 * \param pRoamingTriggerCmd - Pointer to Input Configuration Parameters Structure
4178 * The Following Field should be filled:
4179 * pRoamingTriggerCmd->BssLossTimeout
4180 * pRoamingTriggerCmd->TsfMissThreshold
4181 * \return TI_OK on success or TI_NOK on failure
4184 * Configure the Bss Lost Timeout & TSF miss threshold Parameters
4188 TI_STATUS TWD_CfgConnMonitParams (TI_HANDLE hTWD, TRroamingTriggerParams *pRoamingTriggerCmd);
4189 /** @ingroup Power_Management
4190 * \brief Configure Sleep Auth
4192 * \param hTWD - TWD module object handle
4193 * \param eMinPowerPolicy - Minimum Power Policy Type
4194 * \return TI_OK on success or TI_NOK on failure
4197 * Configure the minimum power policy to the FW
4201 TI_STATUS TWD_CfgSleepAuth (TI_HANDLE hTWD, EPowerPolicy eMinPowerPolicy);
4202 /** @ingroup Control
4203 * \brief Configure MAC Clock
4205 * \param hTWD - TWD module object handle
4206 * \param uMacClock - MAC Clock value
4207 * \return TI_OK on success or TI_NOK on failure
4213 TI_STATUS TWD_CfgMacClock (TI_HANDLE hTWD, TI_UINT32 uMacClock);
4214 /** @ingroup Control
4215 * \brief Configure ARM Clock
4217 * \param hTWD - TWD module object handle
4218 * \param uArmClock - ARM Clock value
4219 * \return TI_OK on success or TI_NOK on failure
4225 TI_STATUS TWD_CfgArmClock (TI_HANDLE hTWD, TI_UINT32 uArmClock);
4226 /** @ingroup Data_Path
4227 * \brief Configure RX Data Filter
4229 * \param hTWD - TWD module object handle
4230 * \param index - Index of the Rx Data filter
4231 * \param command - Command: Add/remove the filter
4232 * \param eAction - Action to take when packets match the pattern
4233 * \param uNumFieldPatterns - Number of field patterns in the filter
4234 * \param uLenFieldPatterns - Length of the field pattern series
4235 * \param pFieldPatterns - Series of field patterns
4236 * \return TI_OK on success or TI_NOK on failure
4239 * Add/remove Rx Data filter information element
4243 TI_STATUS TWD_CfgRxDataFilter (TI_HANDLE hTWD,
4247 TI_UINT8 uNumFieldPatterns,
4248 TI_UINT8 uLenFieldPatterns,
4249 TI_UINT8 *pFieldPatterns);
4250 /** @ingroup Data_Path
4251 * \brief Configure Enable RX Data Filter
4253 * \param hTWD - TWD module object handle
4254 * \param bEnabled - Indicates if Rx data filtering is enabled or Disabled
4255 * (0: data filtering disabled, Otherwise: enabled)
4256 * \param eDefaultAction - The default action taken on non-matching packets
4257 * \return TI_OK on success or TI_NOK on failure
4260 * Configure Enable/Disable RX Data Filter, and which default action to perform if it is enabled
4264 TI_STATUS TWD_CfgEnableRxDataFilter (TI_HANDLE hTWD, TI_BOOL bEnabled, filter_e eDefaultAction);
4266 * \brief Configure RRSSI/SNR Trigger parameters
4268 * \param hTWD - TWD module object handle
4269 * \param pRssiSnrTrigger - Pointer to RRSSI/SNR Input parameter Structure
4270 * \return TI_OK on success or TI_NOK on failure
4276 TI_STATUS TWD_CfgRssiSnrTrigger (TI_HANDLE hTWD, RssiSnrTriggerCfg_t* pRssiSnrTrigger);
4278 * \brief Configure AC parameters
4280 * \param hTWD - TWD module object handle
4281 * \param pAcQosParams - Pointer to Input AC Quality Of Service Parameters Structure
4282 * Fields that should be filled:
4284 * pAcQosParams->aifsn
4285 * pAcQosParams->cwMax
4286 * pAcQosParams->cwMin
4287 * pAcQosParams->txopLimit
4288 * \param fCb - Pointer to Command CB Function
4289 * \param hCb - Handle to Command CB Function Obj Parameters
4290 * \return TI_OK on success or TI_NOK on failure
4296 TI_STATUS TWD_CfgAcParams (TI_HANDLE hTWD, TAcQosParams *pAcQosParams, void *fCb, TI_HANDLE hCb);
4298 * \brief Configure Power Save RX Streaming
4300 * \param hTWD - TWD module object handle
4301 * \param pPsRxStreaming - Pointer to Input Power Save RX Straeming Parameters Structure
4302 * Fields that should be filled:
4303 * pPsRxStreaming->uTid
4304 * pPsRxStreaming->bEnabled
4305 * pPsRxStreaming->uStreamPeriod
4306 * pPsRxStreaming->uTxTimeout
4307 * \param fCb - Pointer to Command CB Function
4308 * \param hCb - Handle to Command CB Function Obj Parameters
4309 * \return TI_OK on success or TI_NOK on failure
4313 * \sa TPsRxStreaming
4315 TI_STATUS TWD_CfgPsRxStreaming (TI_HANDLE hTWD, TPsRxStreaming *pPsRxStreaming, void *fCb, TI_HANDLE hCb);
4316 /** @ingroup Power_Management
4317 * \brief Configure BET
4319 * \param hTWD - TWD module object handle
4320 * \param Enable - 0: disable BET, Otherwirs: Enable BET
4321 * \param MaximumConsecutiveET - Max number of consecutive beacons that may be early terminated
4322 * \return TI_OK on success or TI_NOK on failure
4328 TI_STATUS TWD_CfgBet (TI_HANDLE hTWD, TI_UINT8 Enable, TI_UINT8 MaximumConsecutiveET);
4329 /** @ingroup UnKnown
4330 * \brief Configure Keep Alive
4332 * \param hTWD - TWD module object handle
4333 * \param pKeepAliveParams - Pointer to Keep Alive parameters structure
4334 * \return TI_OK on success or TI_NOK on failure
4337 * Configures the keep-alive paramters
4341 TI_STATUS TWD_CfgKeepAlive (TI_HANDLE hTWD, TKeepAliveParams *pKeepAliveParams);
4342 /** @ingroup Power_Management
4343 * \brief Configure Keep Alive Enable/Disable flag
4345 * \param hTWD - TWD module object handle
4346 * \param enaDisFlag - Indicates whether to Enable (TI_TRUE) or Disable Keep Alive
4347 * \return TI_OK on success or TI_NOK on failure
4353 TI_STATUS TWD_CfgKeepAliveEnaDis (TI_HANDLE hTWD, TI_UINT8 enaDisFlag);
4354 /** @ingroup Data_Path
4355 * \brief Configure Set BA Initiator
4357 * \param hTWD - TWD module object handle
4358 * \param uTid - TID number
4359 * \param uState - Policy : Enable / Disable
4360 * \param tRa - Mac address of: SA as receiver / RA as initiator
4361 * \param uWinSize - windows size in number of packet
4362 * \param uInactivityTimeout - as initiator inactivity timeout in time units(TU) of 1024us / as receiver reserved
4363 * \return TI_OK on success or TI_NOK on failure
4366 * configure BA session initiator parameters setting in the FW
4367 * called after join in order to init the parameters for negotiating BA sessions as initiator.
4368 * Parameters initialized: RA, TID, WinSize, Inactivity Timeout and state = Enable/Disable.
4369 * In case the host sends a broadcast address as RA the FW is allowed to Set or Deleted BA sessions
4370 * to any receiver for that TID.
4371 * In case of disassociate the FW allowed to establish BA session just after get that command.
4372 * That command will not need any respond from the FW. In case DELBA send to STA or from the
4373 * STA as initiator the FW doesn't send event to the host
4377 TI_STATUS TWD_CfgSetBaInitiator (TI_HANDLE hTWD,
4382 TI_UINT16 uInactivityTimeout);
4383 /** @ingroup Data_Path
4384 * \brief Configure Set BA Receiver
4386 * \param hTWD - TWD module object handle
4387 * \param uTid - TID number
4388 * \param uState - Policy : Enable / Disable
4389 * \param tRa - Mac address of: SA as receiver / RA as initiator
4390 * \param uWinSize - windows size in number of packet
4391 * \return TI_OK on success or TI_NOK on failure
4394 * configure BA session receiver parameters setting in the FW
4395 * called after join in order to init the parameters for incoming BA session, as a responder.
4396 * Parameters initialized: SA, TID, winSize and state = Enable/Disable.
4397 * In case the host sends a broadcast address as SA the FW is allowed to Set/Deleted BA sessions
4398 * to any sender for that TID.
4399 * In case of disassociate the FW allowed to establish BA session just after get that command.
4400 * The events of that command will respond via the RX path from the FW: ADDBA, DELBA, BAR packets.
4404 TI_STATUS TWD_CfgSetBaReceiver (TI_HANDLE hTWD,
4408 TI_UINT16 uWinSize);
4410 /** @ingroup Data_Path
4411 * \brief Close all BA receiver sessions
4413 * \param hTWD - TWD module object handle
4417 * Close all BA receiver sessions and pass all packets in the TID queue to upper layer.
4421 void TWD_CloseAllBaSessions(TI_HANDLE hTWD);
4424 * \brief Set FW HT Capabilities
4426 * \param hTWD - TWD module object handle
4427 * \param pHtCapabilitiesIe - Pointer to string of HT capability IE unparsed
4428 * \param bAllowHtOperation - TI_TRUE: HT operation allowed, Otherwise: HT operation NOT allowed
4429 * \return TI_OK on success or TI_NOK on failure
4432 * Parse HT capability IE and set the current AP HT Capabilities to the FW
4436 TI_STATUS TWD_CfgSetFwHtCapabilities (TI_HANDLE hTWD,
4437 Tdot11HtCapabilitiesUnparse *pHtCapabilitiesIe,
4438 TI_BOOL bAllowHtOperation);
4440 * \brief Set FW HT Information
4442 * \param hTWD - TWD module object handle
4443 * \param pHtInformationIe - Pointer to string of HT information IE unparsed
4444 * \return TI_OK on success or TI_NOK on failure
4447 * Parse HT Information IE and set the current AP HT Information to the FW
4451 TI_STATUS TWD_CfgSetFwHtInformation (TI_HANDLE hTWD, Tdot11HtInformationUnparse *pHtInformationIe);
4454 /** @ingroup UnKnown
4455 * \brief Enable/Disabel burst mode
4457 * \param hTWD - TWD module object handle
4458 * \param bEnabled - burst mode: Enable/Disable
4465 TI_STATUS TWD_CfgBurstMode (TI_HANDLE hTWD, TI_BOOL bEnabled);
4471 /** @ingroup UnKnown
4472 * \brief Interrogate Roamming Statistics
4474 * \param hTWD - TWD module object handle
4475 * \param fCb - Pointer to Command CB Function
4476 * \param hCb - Handle to Command CB Function Obj Parameters
4477 * \param pCb - Pointer to read parameters
4478 * \return TI_OK on success or TI_NOK on failure
4481 * Interrogate ACX Roamming Statistics
4485 TI_STATUS TWD_ItrRoammingStatisitics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
4486 /** @ingroup UnKnown
4487 * \brief Configure/Interrogate RSSI
4489 * \param hTWD - TWD module object handle
4490 * \param fCb - Pointer to Command CB Function
4491 * \param hCb - Handle to Command CB Function Obj Parameters
4492 * \param pCb - Pointer to read parameters
4493 * \return TI_OK on success or TI_NOK on failure
4496 * Configure/Interrogate StationId information element to/from FW
4497 * This information element specifies the MAC Address assigned to the STATION or AP.
4498 * The RSSI is Configed to default value which is the permanent MAC address which
4499 * is stored in the adaptor's non-volatile memory.
4503 TI_STATUS TWD_ItrRSSI (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
4504 /** @ingroup UnKnown
4505 * \brief Interrogate Memory Map
4507 * \param hTWD - TWD module object handle
4508 * \param pMap - Pointer to Output Memory Map
4509 * \param fCb - Pointer to Callback Function
4510 * \param hCb - Handle to Callback Function Parameters Object
4511 * \return TI_OK on success or TI_NOK on failure
4514 * Interrogate Memory Map from FW
4517 */TI_STATUS TWD_ItrMemoryMap (TI_HANDLE hTWD, MemoryMap_t *pMap, void *fCb, TI_HANDLE hCb);
4518 /** @ingroup UnKnown
4519 * \brief Interrogate Statistics
4521 * \param hTWD - TWD module object handle
4522 * \param fCb - Pointer to Command CB Function
4523 * \param hCb - Handle to Command CB Function Obj Parameters
4524 * \param pCb - Pointer to read parameters
4525 * \return TI_OK on success or TI_NOK on failure
4531 TI_STATUS TWD_ItrStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
4532 /** @ingroup Data_Path
4533 * \brief Interrogate Data Filter Statistics
4535 * \param hTWD - TWD module object handle
4536 * \param fCb - Pointer to Command CB Function
4537 * \param hCb - Handle to Command CB Function Obj Parameters
4538 * \param pCb - Pointer to read parameters
4539 * \return TI_OK on success or TI_NOK on failure
4544 */TI_STATUS TWD_ItrDataFilterStatistics (TI_HANDLE hTWD, void *fCb, TI_HANDLE hCb, void *pCb);
4547 * --------------------------------------------------------------
4548 * TNETW-Driver Tx API Functions
4549 * --------------------------------------------------------------
4552 /** @ingroup Data_Path
4553 * \brief TWD TX Control Block Allocation
4555 * \param hTWD - TWD module object handle
4556 * \return Pointer to Control Block Entry on success or NULL on failure
4559 * Use this function for Allocate a Control-Block for the packet Tx parameters and descriptor
4563 TTxCtrlBlk *TWD_txCtrlBlk_Alloc (TI_HANDLE hTWD);
4564 /** @ingroup Data_Path
4565 * \brief TWD TX Control Block Free
4567 * \param hTWD - TWD module object handle
4568 * \param pCurrentEntry - Pointer to TX Control Block Entry to Free
4572 * Use this function for Free a Control-Block of packet Tx parameters and descriptor
4576 void TWD_txCtrlBlk_Free (TI_HANDLE hTWD, TTxCtrlBlk *pCurrentEntry);
4577 /** @ingroup Data_Path
4578 * \brief TWD TX Control Get Pointer
4580 * \param hTWD - TWD module object handle
4581 * \param descId - Id of TX Control Block Descriptor
4582 * \return Pointer to Control Block Entry on success or NULL on failure
4585 * Use this function for Get a Pointer to a Control-Block of packet Tx parameters and descriptor
4589 TTxCtrlBlk *TWD_txCtrlBlk_GetPointer (TI_HANDLE hTWD, TI_UINT8 descId);
4591 /** @ingroup Data_Path
4592 * \brief Allocate Resources for TX HW Queue
4594 * \param hTWD - TWD module object handle
4595 * \param pTxCtrlBlk - The Tx packet control block
4596 * \return see - ETxHwQueStatus
4599 * Allocates Resources (HW-blocks number required) for TX HW Queue
4603 ETxHwQueStatus TWD_txHwQueue_AllocResources (TI_HANDLE hTWD, TTxCtrlBlk *pTxCtrlBlk);
4605 /** @ingroup Data_Path
4606 * \brief TX Xfer Send Packet
4608 * \param hTWD - TWD module object handle
4609 * \param pPktCtrlBlk - Pointer to TX Control Block Entry to Free
4610 * \return see ETxnStatus
4613 * Send Packet via TX Xfer
4617 ETxnStatus TWD_txXfer_SendPacket (TI_HANDLE hTWD, TTxCtrlBlk *pPktCtrlBlk);
4619 /** @ingroup Data_Path
4620 * \brief Indicates that current packets burst stopped
4622 * \param hTWD - TWD module object handle
4626 * Indicates that current packets burst stopped, so the TxXfer will send its aggregated packets to FW.
4630 void TWD_txXfer_EndOfBurst (TI_HANDLE hTWD);
4632 /** @ingroup Control
4633 * \brief Watch Dog Expire Event
4635 * \param hTWD - TWD module object handle
4636 * \return TI_OK on success or TI_NOK on failure
4639 * This function handles the Event of Watch Dog Expire (FW stopped)
4643 ETxnStatus TWD_WdExpireEvent (TI_HANDLE hTWD);
4645 * --------------------------------------------------------------
4647 * --------------------------------------------------------------
4649 /** @ingroup Control
4650 * \brief TWD Test Command Complete CB
4652 * \param Handle - handle to object
4653 * \param eStatus - Status of Driver Test Performed
4654 * \param pTestCmdParams - Pointer to Output of Test Command Parameters
4658 * The function prototype for the BIT Test Command Complete CB
4659 * Enables user to implement and use its own BIT Test Command Complete CB
4660 * which will be called when Driver Test end
4664 typedef void (*TTestCmdCB)(TI_HANDLE Handle,
4666 TI_HANDLE pTestCmdParams);
4667 /** @ingroup Control
4668 * \brief TWD Test Command Complete CB
4670 * \param Handle - handle to object
4671 * \param eStatus - Status of Driver Test Performed (Complete/Pending/Error)
4672 * \param pTestCmdParams - Pointer to Output of Test Command Parameters
4676 * The function implementation for the BIT Test Command Complete CB
4680 void TWDriverTestCB(TI_HANDLE Handle,
4682 TI_HANDLE pTestCmdParams);
4683 /** @ingroup Control
4684 * \brief TWD Driver Test
4686 * \param hTWD - handle to TWD object
4687 * \param eTestCmd - Identifier of test Command to Perform
4688 * \param pTestCmdParams - Pointer to Input/Output Test Command Parameters
4689 * \param fCb - Test Command Complete CB
4690 * \param hCb - Handle to Test Command Complete CB Parameters
4691 * \return TI_OK on success or TI_NOK on failure
4694 * The implementation of the BIT Test Command
4698 TI_STATUS TWDriverTest(TI_HANDLE hTWD,
4699 TestCmdID_enum eTestCmd,
4700 void* pTestCmdParams,
4707 * \brief TWD get FEM type
4709 * \param Handle - handle to object
4713 * The function return the Front end module that was read frm FW register *
4717 TI_UINT8 TWD_GetFEMType (TI_HANDLE hTWD);
4721 * \brief TWD end function of read radio state machine
4723 * \param Handle - handle to object
4727 * The function calling to HwInit call back function, after finish reading FEM registers *
4731 void TWD_FinalizeFEMRead(TI_HANDLE hTWD);
4732 void TWD_FinalizePolarityRead(TI_HANDLE hTWD);
4734 /** @ingroup Data_Path
4735 * \brief TWD_CfgBurstMode
4737 * \param hTWD - TWD module object handle
4738 * \param bEnabled - is Burst mode enabled
4742 * Use this function to enable/disbale the burst mode
4746 TI_STATUS TWD_CfgBurstMode (TI_HANDLE hTWD, TI_BOOL bEnabled);
4747 TI_STATUS TWD_SetRateMngDebug(TI_HANDLE hTWD, RateMangeParams_t *pRateMngParams);
4748 TI_STATUS TWD_GetRateMngDebug(TI_HANDLE hTWD, RateMangeReadParams_t *pParamInfo);
4750 #endif /* TWDRIVER_H */