123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593 |
- /*
- * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
- #ifndef _TX_FES_SETUP_H_
- #define _TX_FES_SETUP_H_
- #if !defined(__ASSEMBLER__)
- #endif
- #define NUM_OF_DWORDS_TX_FES_SETUP 10
- #define NUM_OF_QWORDS_TX_FES_SETUP 5
- struct tx_fes_setup {
- #ifndef WIFI_BIT_ORDER_BIG_ENDIAN
- uint32_t schedule_id : 32; // [31:0]
- uint32_t fes_in_11ax_trigger_response_config : 1, // [0:0]
- bo_based_tid_aggregation_limit : 4, // [4:1]
- ranging : 1, // [5:5]
- expect_i2r_lmr : 1, // [6:6]
- transmit_start_reason : 3, // [9:7]
- use_alt_power_sr : 1, // [10:10]
- static_2_pwr_mode_status : 1, // [11:11]
- obss_srg_opport_transmit_status : 1, // [12:12]
- srp_based_transmit_status : 1, // [13:13]
- obss_pd_based_transmit_status : 1, // [14:14]
- puncture_from_all_allowed_modes : 1, // [15:15]
- schedule_cmd_ring_id : 5, // [20:16]
- fes_control_mode : 2, // [22:21]
- number_of_users : 6, // [28:23]
- mu_type : 1, // [29:29]
- ofdma_triggered_response : 1, // [30:30]
- response_to_response_cmd : 1; // [31:31]
- uint32_t schedule_try : 4, // [3:0]
- ndp_frame : 2, // [5:4]
- txbf : 1, // [6:6]
- allow_txop_exceed_in_1st_pkt : 1, // [7:7]
- ignore_bw_available : 1, // [8:8]
- ignore_tbtt : 1, // [9:9]
- static_bandwidth : 3, // [12:10]
- set_txop_duration_all_ones : 1, // [13:13]
- transmission_contains_mu_rts : 1, // [14:14]
- bw_restricted_frames_embedded : 1, // [15:15]
- ast_index : 16; // [31:16]
- uint32_t cv_id : 8, // [7:0]
- trigger_resp_txpdu_ppdu_boundary : 2, // [9:8]
- rxpcu_setup_complete_present : 1, // [10:10]
- rbo_must_have_data_user_limit : 4, // [14:11]
- mu_ndp : 1, // [15:15]
- bf_type : 2, // [17:16]
- cbf_nc_index_mask : 1, // [18:18]
- cbf_nc_index : 3, // [21:19]
- cbf_nr_index_mask : 1, // [22:22]
- cbf_nr_index : 3, // [25:23]
- secure_ranging_ista : 1, // [26:26]
- ndpa : 1, // [27:27]
- wait_sifs : 2, // [29:28]
- cbf_feedback_type_mask : 1, // [30:30]
- cbf_feedback_type : 1; // [31:31]
- uint32_t cbf_sounding_token : 6, // [5:0]
- cbf_sounding_token_mask : 1, // [6:6]
- cbf_bw_mask : 1, // [7:7]
- cbf_bw : 3, // [10:8]
- use_static_bw : 1, // [11:11]
- coex_nack_count : 5, // [16:12]
- sch_tx_burst_ongoing : 1, // [17:17]
- gen_tqm_update_mpdu_count_tlv : 1, // [18:18]
- transmit_vif : 4, // [22:19]
- optimal_bw_retry_count : 4, // [26:23]
- fes_continuation_ratio_threshold : 5; // [31:27]
- uint32_t transmit_cca_bitmap : 32; // [31:0]
- uint32_t tb_ranging : 1, // [0:0]
- ranging_trigger_subtype : 4, // [4:1]
- min_cts2self_count : 4, // [8:5]
- max_cts2self_count : 4, // [12:9]
- wifi_radar_enable : 1, // [13:13]
- reserved_6a : 18; // [31:14]
- uint32_t monitor_override_sta_31_0 : 32; // [31:0]
- uint32_t monitor_override_sta_36_32 : 5, // [4:0]
- reserved_8a : 27; // [31:5]
- uint32_t fw2sw_info : 32; // [31:0]
- #else
- uint32_t schedule_id : 32; // [31:0]
- uint32_t response_to_response_cmd : 1, // [31:31]
- ofdma_triggered_response : 1, // [30:30]
- mu_type : 1, // [29:29]
- number_of_users : 6, // [28:23]
- fes_control_mode : 2, // [22:21]
- schedule_cmd_ring_id : 5, // [20:16]
- puncture_from_all_allowed_modes : 1, // [15:15]
- obss_pd_based_transmit_status : 1, // [14:14]
- srp_based_transmit_status : 1, // [13:13]
- obss_srg_opport_transmit_status : 1, // [12:12]
- static_2_pwr_mode_status : 1, // [11:11]
- use_alt_power_sr : 1, // [10:10]
- transmit_start_reason : 3, // [9:7]
- expect_i2r_lmr : 1, // [6:6]
- ranging : 1, // [5:5]
- bo_based_tid_aggregation_limit : 4, // [4:1]
- fes_in_11ax_trigger_response_config : 1; // [0:0]
- uint32_t ast_index : 16, // [31:16]
- bw_restricted_frames_embedded : 1, // [15:15]
- transmission_contains_mu_rts : 1, // [14:14]
- set_txop_duration_all_ones : 1, // [13:13]
- static_bandwidth : 3, // [12:10]
- ignore_tbtt : 1, // [9:9]
- ignore_bw_available : 1, // [8:8]
- allow_txop_exceed_in_1st_pkt : 1, // [7:7]
- txbf : 1, // [6:6]
- ndp_frame : 2, // [5:4]
- schedule_try : 4; // [3:0]
- uint32_t cbf_feedback_type : 1, // [31:31]
- cbf_feedback_type_mask : 1, // [30:30]
- wait_sifs : 2, // [29:28]
- ndpa : 1, // [27:27]
- secure_ranging_ista : 1, // [26:26]
- cbf_nr_index : 3, // [25:23]
- cbf_nr_index_mask : 1, // [22:22]
- cbf_nc_index : 3, // [21:19]
- cbf_nc_index_mask : 1, // [18:18]
- bf_type : 2, // [17:16]
- mu_ndp : 1, // [15:15]
- rbo_must_have_data_user_limit : 4, // [14:11]
- rxpcu_setup_complete_present : 1, // [10:10]
- trigger_resp_txpdu_ppdu_boundary : 2, // [9:8]
- cv_id : 8; // [7:0]
- uint32_t fes_continuation_ratio_threshold : 5, // [31:27]
- optimal_bw_retry_count : 4, // [26:23]
- transmit_vif : 4, // [22:19]
- gen_tqm_update_mpdu_count_tlv : 1, // [18:18]
- sch_tx_burst_ongoing : 1, // [17:17]
- coex_nack_count : 5, // [16:12]
- use_static_bw : 1, // [11:11]
- cbf_bw : 3, // [10:8]
- cbf_bw_mask : 1, // [7:7]
- cbf_sounding_token_mask : 1, // [6:6]
- cbf_sounding_token : 6; // [5:0]
- uint32_t transmit_cca_bitmap : 32; // [31:0]
- uint32_t reserved_6a : 18, // [31:14]
- wifi_radar_enable : 1, // [13:13]
- max_cts2self_count : 4, // [12:9]
- min_cts2self_count : 4, // [8:5]
- ranging_trigger_subtype : 4, // [4:1]
- tb_ranging : 1; // [0:0]
- uint32_t monitor_override_sta_31_0 : 32; // [31:0]
- uint32_t reserved_8a : 27, // [31:5]
- monitor_override_sta_36_32 : 5; // [4:0]
- uint32_t fw2sw_info : 32; // [31:0]
- #endif
- };
- /* Description SCHEDULE_ID
- Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and it's
- value is coming from the"schedule_id" field in the Scheduler
- command.
-
- Configured by scheduler in HW transmit mode
- A field that HW copies over into the scheduling status report,
- so that SW can determine to which scheduler command the
- status report belongs.
- This schedule ID is also reported in the PPDU status.
-
- <legal all>
- */
- #define TX_FES_SETUP_SCHEDULE_ID_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_SCHEDULE_ID_LSB 0
- #define TX_FES_SETUP_SCHEDULE_ID_MSB 31
- #define TX_FES_SETUP_SCHEDULE_ID_MASK 0x00000000ffffffff
- /* Description FES_IN_11AX_TRIGGER_RESPONSE_CONFIG
- Consumer: PDG/TXPCU
- Producer: SW
- When set, this scheduler command has some additional settings
- that PDG and TXPCU need to take into account, depending
- on if the transmission has been iniated as a backoff expiration
- or as the result of an 11ax trigger reception.
-
- 0: not in special trigger response config
- 1: command is special trigger response config.
-
- When set to 1, there are some programming limitations: There
- can only be 1 group, up to 8 users, SW shall have specified
- the AC for each user, and AC order per user is from BE
- to VO
- (see PDG_USER_SETUP, fields Triggered_mpdu_AC_category)
-
- <legal all>
- */
- #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_LSB 32
- #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MSB 32
- #define TX_FES_SETUP_FES_IN_11AX_TRIGGER_RESPONSE_CONFIG_MASK 0x0000000100000000
- /* Description BO_BASED_TID_AGGREGATION_LIMIT
- Consumer: PDG
- Producer: SW
-
- Field only valid when Ofdma_triggered_response is NOT set
- (=> implies transmission started due to backoff expiration)
-
-
- Field only valid for SU and "MU_SU" transmissions.
-
- The requirements for what to transmit depend on what the
- reason is that this transmission started. If it is 11ax
- trigger based, the trigger frame will specify all the constrains
- like max TID count, prefered AC, etc.
- However if this command starts executing due to backoff
- expiration, the requirements could be different from those
- that might have come from the trigger frame.
- This field specifies what the constaints are when the transmission
- is Backoff initiated.
-
- If zero, this feature is disabled.
- If non-zero, this indicates the number of users within a
- group that can be aggregated by a STA in a multi-TID A-MPDU.
- This can also be used to block the series of QoS-null MPDUs
- when an RBO+Trig queue transmits using RBO.
-
- Based on this number, PDG will mask of user numbers >= this
- count
- <legal all>
- */
- #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_LSB 33
- #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MSB 36
- #define TX_FES_SETUP_BO_BASED_TID_AGGREGATION_LIMIT_MASK 0x0000001e00000000
- /* Description RANGING
- Consumer: TXPCU
- Producer: SW
-
- Set to 1 in case the frame queued is:
- a .11az ranging NDPA,
- a .11az ranging NDP, or
- an ISTA2RSTA LMR.
- Set to 0 for all other cases.
- */
- #define TX_FES_SETUP_RANGING_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_RANGING_LSB 37
- #define TX_FES_SETUP_RANGING_MSB 37
- #define TX_FES_SETUP_RANGING_MASK 0x0000002000000000
- /* Description EXPECT_I2R_LMR
- Consumer: TXPCU
- Producer: SW
-
- Set to 1 in case the frame queued is a .11az randing NDPA/NDP
- and if the ISTA2RSTA LMR frame is also queued after SIFS.
-
-
- Set to 0 otherwise.
- */
- #define TX_FES_SETUP_EXPECT_I2R_LMR_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_EXPECT_I2R_LMR_LSB 38
- #define TX_FES_SETUP_EXPECT_I2R_LMR_MSB 38
- #define TX_FES_SETUP_EXPECT_I2R_LMR_MASK 0x0000004000000000
- /* Description TRANSMIT_START_REASON
- Indicates what the SCH start reason reason was for initiating
- this transmission.
-
- <enum 0 BO_based_transmit_start> The transmission of this
- PPDU got initiated by the scheduler due to Backoff expiration
-
- <enum 1 Trigger_based_transmit_start> The transmission of
- this PPDU got initiated by the scheduler due to reception
- (by the SCH) of the TLV RECEIVED_TRIGGER_INFO that RXPCU
- generated. Note that this can be an OFDMA trigger frame
- based transmission as well as some legacy trigger (PS-POLL,
- Qboost, U-APSD, etc.) based transmission
- <enum 2 Sifs_continuation_in_ongoing_burst> This transmission
- of this PPDU got initiated as part of SIFS continuation.
- An earlier PPDU was transmitted due to RBO expiration. Next
- command is also expected to be transmitted in SIFS burst.
-
- <enum 3 Sifs_continuation_last_command> This transmission
- of this PPDU got initiated as part of SIFS continuation
- and this is the last command in the burst. An earlier PPDU
- was transmitted due to RBO expiration.
- <enum 4 NTBR_response_start> DO NOT USE
- <legal 0-4>
- */
- #define TX_FES_SETUP_TRANSMIT_START_REASON_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_TRANSMIT_START_REASON_LSB 39
- #define TX_FES_SETUP_TRANSMIT_START_REASON_MSB 41
- #define TX_FES_SETUP_TRANSMIT_START_REASON_MASK 0x0000038000000000
- /* Description USE_ALT_POWER_SR
- 0: Primary/default power1: Alternate power
- <legal all>
- */
- #define TX_FES_SETUP_USE_ALT_POWER_SR_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_USE_ALT_POWER_SR_LSB 42
- #define TX_FES_SETUP_USE_ALT_POWER_SR_MSB 42
- #define TX_FES_SETUP_USE_ALT_POWER_SR_MASK 0x0000040000000000
- /* Description STATIC_2_PWR_MODE_STATUS
- 0: Static 2 power mode disabled1: Static 2 power mode enabled
-
- <legal all>
- */
- #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_LSB 43
- #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MSB 43
- #define TX_FES_SETUP_STATIC_2_PWR_MODE_STATUS_MASK 0x0000080000000000
- /* Description OBSS_SRG_OPPORT_TRANSMIT_STATUS
- 0: Transmit based on SRG OBSS_PD opportunity initiated1:
- Transmit based on non-SRG OBSS_PD opportunity initiated
- <legal all>
- */
- #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_LSB 44
- #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MSB 44
- #define TX_FES_SETUP_OBSS_SRG_OPPORT_TRANSMIT_STATUS_MASK 0x0000100000000000
- /* Description SRP_BASED_TRANSMIT_STATUS
- 0: non-SRP based transmit initiated1: SRP based transmit
- initiated
- <legal all>
- */
- #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_LSB 45
- #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MSB 45
- #define TX_FES_SETUP_SRP_BASED_TRANSMIT_STATUS_MASK 0x0000200000000000
- /* Description OBSS_PD_BASED_TRANSMIT_STATUS
- 0: non-OBSS_PD based transmit initiated1: obss_pd based
- transmit initiated
- <legal all>
- */
- #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_LSB 46
- #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MSB 46
- #define TX_FES_SETUP_OBSS_PD_BASED_TRANSMIT_STATUS_MASK 0x0000400000000000
- #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_LSB 47
- #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MSB 47
- #define TX_FES_SETUP_PUNCTURE_FROM_ALL_ALLOWED_MODES_MASK 0x0000800000000000
- /* Description SCHEDULE_CMD_RING_ID
- Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and its
- value is based on the scheduler ring where the command
- is initiated.
-
- The schedule command ring that originated this transmission
-
- <enum 0 sch_cmd_ring_number0>
- <enum 1 sch_cmd_ring_number1>
- <enum 2 sch_cmd_ring_number2>
- <enum 3 sch_cmd_ring_number3>
- <enum 4 sch_cmd_ring_number4>
- <enum 5 sch_cmd_ring_number5>
- <enum 6 sch_cmd_ring_number6>
- <enum 7 sch_cmd_ring_number7>
- <enum 8 sch_cmd_ring_number8>
- <enum 9 sch_cmd_ring_number9>
- <enum 10 sch_cmd_ring_number10>
- <enum 11 sch_cmd_ring_number11>
- <enum 12 sch_cmd_ring_number12>
- <enum 13 sch_cmd_ring_number13>
- <enum 14 sch_cmd_ring_number14>
- <enum 15 sch_cmd_ring_number15>
- <enum 16 sch_cmd_ring_number16>
- <enum 17 sch_cmd_ring_number17>
- <enum 18 sch_cmd_ring_number18>
- <enum 19 sch_cmd_ring_number19>
- <enum 20 sch_cmd_ring_number20>
-
- <legal 0-20>
- */
- #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_LSB 48
- #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MSB 52
- #define TX_FES_SETUP_SCHEDULE_CMD_RING_ID_MASK 0x001f000000000000
- /* Description FES_CONTROL_MODE
- Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and it's
- value is coming from the "FES_control_mode" field in the
- Scheduler command.
-
- <enum 0 SW_transmit_mode> No HW generated TLVs
- <enum 1 PDG_transmit_mode> PDG is activated to generate
- TLVs
-
- Note: Final Bandwidth selection is always performed by TX
- PCU.
- <legal 0-1>
- */
- #define TX_FES_SETUP_FES_CONTROL_MODE_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_FES_CONTROL_MODE_LSB 53
- #define TX_FES_SETUP_FES_CONTROL_MODE_MSB 54
- #define TX_FES_SETUP_FES_CONTROL_MODE_MASK 0x0060000000000000
- /* Description NUMBER_OF_USERS
- Consumer: PDG/TXDMA/TXOLE/TXCRYPTO/TXPCU
- Producer: SCH
-
- The number of users in this transmission. Can be MU-MIMO
- or OFDMA in case the number is > 1
- <legal 1-63>
- */
- #define TX_FES_SETUP_NUMBER_OF_USERS_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_NUMBER_OF_USERS_LSB 55
- #define TX_FES_SETUP_NUMBER_OF_USERS_MSB 60
- #define TX_FES_SETUP_NUMBER_OF_USERS_MASK 0x1f80000000000000
- /* Description MU_TYPE
- In case the Number_of_users > 1, the transmission could
- be MU or OFDMA.
- This field indicates which one it is.
-
- 0: MU-MIMO
- 1: OFDMA
-
-
- In case the number_of_user == 1, and PDG_FES_SETUP.mu_su_transmission
- is set, this field indicates:0: SU transmitted in MU MIMO
- format in compressed mode;1: SU transmitted in MU-OFDMA
- format in uncompressed mode
-
- Note: Within OFDMA classification, it could be that within
- one or more RUs there will be MIMO transmission...This
- is still considered as an 'OFDMA' class of MU transmission.
-
-
- <legal all>
- */
- #define TX_FES_SETUP_MU_TYPE_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_MU_TYPE_LSB 61
- #define TX_FES_SETUP_MU_TYPE_MSB 61
- #define TX_FES_SETUP_MU_TYPE_MASK 0x2000000000000000
- /* Description OFDMA_TRIGGERED_RESPONSE
- Consumer: TXPCU/PDG
- Producer: SCH/SW
-
- SW should always set this bit to 0
- SCH will always overwrite this field and set it to the appropriate
- value for the upcoming transmission.
-
- When set (by SCH), this FES is initiated as a result of
- receiving an OFDMA transmit trigger. PDG already has received
- all transmit info from RXPCU. PDG can ignore most of the
- transmit initialization info.
-
- <legal all>
- */
- #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_LSB 62
- #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MSB 62
- #define TX_FES_SETUP_OFDMA_TRIGGERED_RESPONSE_MASK 0x4000000000000000
- /* Description RESPONSE_TO_RESPONSE_CMD
- When set, this scheduler command contains the transmission
- control for the response_to_response transmission
- <legal all>
- */
- #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_OFFSET 0x0000000000000000
- #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_LSB 63
- #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MSB 63
- #define TX_FES_SETUP_RESPONSE_TO_RESPONSE_CMD_MASK 0x8000000000000000
- /* Description SCHEDULE_TRY
- Consumer: TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and it's
- value is coming from an internal counter in the scheduler
- that keeps track of how many times a scheduling command
- has been tried.
-
- This count indicates how many times the FES did not successfully
- complete as the ACK/BA frame did not get received.
- <legal all>
- */
- #define TX_FES_SETUP_SCHEDULE_TRY_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_SCHEDULE_TRY_LSB 0
- #define TX_FES_SETUP_SCHEDULE_TRY_MSB 3
- #define TX_FES_SETUP_SCHEDULE_TRY_MASK 0x000000000000000f
- /* Description NDP_FRAME
- Consumer: PDG/TXPCU
- Producer: SCH
-
- When set, the scheduling command contains an NDP frame.
- This can only be done using the SW transmit mode.
-
- <enum 0 no_ndp>No NDP transmission
- <enum 1 beamforming_ndp>Beamforming NDP
- <enum 2 he_ranging_ndp>11az NDP (HE Ranging NDP)
- <enum 3 he_feedback_ndp>Short TB (HE Feedback NDP)
- */
- #define TX_FES_SETUP_NDP_FRAME_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_NDP_FRAME_LSB 4
- #define TX_FES_SETUP_NDP_FRAME_MSB 5
- #define TX_FES_SETUP_NDP_FRAME_MASK 0x0000000000000030
- /* Description TXBF
- Consumer: PDG/TXPCU
- Producer: SCH
-
- If set, this bit indicates that this is a TX beamformed
- SU transaction or MU transaction
-
-
- In case of a beamformed transmission, note that in the PCU_PPDU_SETUP_INIT
- TLV, SW can narrow down for which of the BW the beamforming
- shall take place. For example, SW can decide that BW is
- only desired for 40MHz BW, but not for 20...
- If for any of the allowed BW, beamforming is desired, this
- field should be set, and the 'bf_type' shall be properly
- programmed.
-
- TXPCU controls with bit 'beamforming' in the MACTX_PRE_PHY_DESC
- if the final actual transmission shall be beamformed.
- */
- #define TX_FES_SETUP_TXBF_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_TXBF_LSB 6
- #define TX_FES_SETUP_TXBF_MSB 6
- #define TX_FES_SETUP_TXBF_MASK 0x0000000000000040
- /* Description ALLOW_TXOP_EXCEED_IN_1ST_PKT
- Consumer: PDG
- Producer: SCH
-
- Field only valid for SU transmissions.
-
- When set, a single MPDU transmission after RBO is allowed
- to exceed TXOP. In this setting, this field has priority
- over the setting of the duration_field_boundary. Reason
- for this is that if Coex issues on the receiver STA start
- preventing the transmission of frames on this device, it
- can lead to a death spiral. With some luck, this frame
- although maybe too long, might still be received.
-
- When 0, single MPDU after RBO is not allowed to exceed TXOP.
-
- <legal all>
- */
- #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_LSB 7
- #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MSB 7
- #define TX_FES_SETUP_ALLOW_TXOP_EXCEED_IN_1ST_PKT_MASK 0x0000000000000080
- /* Description IGNORE_BW_AVAILABLE
- Consumer: TXPCU
- Producer: SCH
-
- If set, TXPCU ignores 'BW available signals' from the scheduler
- and transmit using the single BW that SW has programmed
- the transmission to go out in. This bit should be set for
- SIFS response frame to PS-Poll/uAPSD/QBoost and note that
- for this mode, SW is only allowed to program a single transmit
- BW.
- Also note that this bit can not be set in combination with
- preamble puncturing.
- <legal all>
- */
- #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_LSB 8
- #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MSB 8
- #define TX_FES_SETUP_IGNORE_BW_AVAILABLE_MASK 0x0000000000000100
- /* Description IGNORE_TBTT
- Consumer: PDG
- Producer: SCH
-
- If set, PDG ignores remaining TBTTs in PPDU time calculation.
-
- <legal all>
- */
- #define TX_FES_SETUP_IGNORE_TBTT_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_IGNORE_TBTT_LSB 9
- #define TX_FES_SETUP_IGNORE_TBTT_MSB 9
- #define TX_FES_SETUP_IGNORE_TBTT_MASK 0x0000000000000200
- /* Description STATIC_BANDWIDTH
- Consumer: PDG/TXPCU
- Producer: SCH
-
- Field is reserved when use_static_bw is clear.
-
- <enum 0 20_mhz>20 Mhz BW
- <enum 1 40_mhz>40 Mhz BW
- <enum 2 80_mhz>80 Mhz BW
- <enum 3 160_mhz>160 Mhz BW
- <enum 4 320_mhz>320 Mhz BW
- <enum 5 240_mhz>240 Mhz BW
- */
- #define TX_FES_SETUP_STATIC_BANDWIDTH_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_STATIC_BANDWIDTH_LSB 10
- #define TX_FES_SETUP_STATIC_BANDWIDTH_MSB 12
- #define TX_FES_SETUP_STATIC_BANDWIDTH_MASK 0x0000000000001c00
- /* Description SET_TXOP_DURATION_ALL_ONES
- Consumer: PDG
- Producer: SCH
-
- When set, SW embedded a PS_POLL frame in this transmission
- or the frame in this transmission is for a BSS with BSS
- Color disabled, e.g. due to BSS color collision.
- PDG sets the TXOP_DURATION of the transmit PPDU to all 1s.
-
- <legal all>
- */
- #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_LSB 13
- #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MSB 13
- #define TX_FES_SETUP_SET_TXOP_DURATION_ALL_ONES_MASK 0x0000000000002000
- /* Description TRANSMISSION_CONTAINS_MU_RTS
- Consumer: PDG
- Producer: SCH
-
- When set, SW embedded a MU-RTS trigger frame in this transmission.
-
- TXPCU will have to do something special for this with the
- CTS response timeout (whose value comes from a MU-CTS timeout
- register)
-
- <legal all>
- */
- #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_LSB 14
- #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MSB 14
- #define TX_FES_SETUP_TRANSMISSION_CONTAINS_MU_RTS_MASK 0x0000000000004000
- /* Description BW_RESTRICTED_FRAMES_EMBEDDED
- Consumer: TXPCU
- Producer: SW
-
- This bit should be set by SW when the transmission includes
- bandwidth restricted frames. As a result of this bit being
- set, TXPCU will hold of indicating that buffer space is
- available to TXDMA till the BW decision is done. This allows
- TXPCU to drop the BW restricted frames at SFM input.
-
- <legal all>
- */
- #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_LSB 15
- #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MSB 15
- #define TX_FES_SETUP_BW_RESTRICTED_FRAMES_EMBEDDED_MASK 0x0000000000008000
- /* Description AST_INDEX
- Consumer: RXPCU
- Producer: SCH
-
- Used for implicit BF sounding capture on receive Ack/BA.
- The RXPCU needs to tag the receive sounding with ast_index
- so FW will know which STA is associated with Ack/BA sounding.
-
-
- <legal all>
- */
- #define TX_FES_SETUP_AST_INDEX_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_AST_INDEX_LSB 16
- #define TX_FES_SETUP_AST_INDEX_MSB 31
- #define TX_FES_SETUP_AST_INDEX_MASK 0x00000000ffff0000
- /* Description CV_ID
- Consumer: TXPCU
- Producer: SCH
-
- This field is only valid when expect_cbf is set.
-
- A unique ID corresponding to the CV data expected from the
- CBF frame.
-
- TXPCU copies this field over to the TX_FES_STATUS TLV
- <legal all>
- */
- #define TX_FES_SETUP_CV_ID_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CV_ID_LSB 32
- #define TX_FES_SETUP_CV_ID_MSB 39
- #define TX_FES_SETUP_CV_ID_MASK 0x000000ff00000000
- /* Description TRIGGER_RESP_TXPDU_PPDU_BOUNDARY
- This field indicates to TXPCU how far into the 11ax trigger
- response transmission, TXPCU should still accept Trigger
- response related configuration info from the SCHEDULER (and
- PDG) to be processed.
-
- The field indicates a percentage of the total byte count
- to be given to the PHY, up to which point TXPCU will still
- accept all the setup related TLVS to arrive. After that,
- TXPCU will ignore any remaining setup TLVs to come in and
- not initiate any MPDU based transfers to the PHY anymore.
- This is to help avoid corner cases.
- If any setup TLVs did arrive after this point, TXPCU will
- keep on continuing giving NULL data to the PHY, but once
- PHYTX_PKT_END is received, TXPCU shall issue a FLUSH request
- to the SCH, with flush code: TXPCU_TRIG_RESPONSE_INFO_TOO_LATE
-
- TXPCU should not abort the transmission halfway, as that
- can cause problems for the MU UL receiver...
-
- <enum 0 txpcu_trig_response_boundary_75> TXPCU will not
- initiate SCH based MPDU transfers after 75% of the PPDU
- octed count has already been given to the PHY.
-
- <enum 1 txpcu_trig_response_boundary_50> TXPCU will not
- initiate SCH based MPDU transfers after 50% of the PPDU
- octed count has already been given to the PHY.
-
- <enum 2 txpcu_trig_response_boundary_25> TXPCU will not
- initiate SCH based MPDU transfers after 75% of the PPDU
- octed count has already been given to the PHY.
-
- Note that if TXPCU receives a TX_FES_SETUP with "11ax trigger
- response transmission" set, and it had already finished
- sending a response , it should generate a flush with code:
- TXPCU_TRIG_RESPONSE_MODE_CORRUPTION
-
- <legal 0-2>
- */
- #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_LSB 40
- #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MSB 41
- #define TX_FES_SETUP_TRIGGER_RESP_TXPDU_PPDU_BOUNDARY_MASK 0x0000030000000000
- /* Description RXPCU_SETUP_COMPLETE_PRESENT
- To notify current TXFES use new mode and delay "RXPCU_*_SETUP"
- for HWSCH/TXPCU/RXPCU module
- <legal all>
- */
- #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_LSB 42
- #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MSB 42
- #define TX_FES_SETUP_RXPCU_SETUP_COMPLETE_PRESENT_MASK 0x0000040000000000
- /* Description RBO_MUST_HAVE_DATA_USER_LIMIT
- Consumer: PDG
- Producer: SW
-
- Field only valid when Ofdma_triggered_response is NOT set
- (=> implies transmission started due to backoff expiration)
-
-
- Field only valid for SU and "MU_SU" transmissions.
-
- The requirements for what to transmit depend on what the
- reason is that this transmission started. If it is 11ax
- trigger based, the trigger frame will specify all the constrains
- like max TID count, prefered AC, etc.
- However if this command starts executing due to backoff
- expiration, the requirements could be different from those
- that might have come from the trigger frame.
- This field specifies what the constaints are when the transmission
- is Backoff initiated.
-
- When set to 0, this feature is disabled
- When set to 1, user 0 must have data otherwise PDG should
- flush the transmission
- When set to 2, user 0 AND/OR user 1 must have data otherwise
- PDG should flush the transmission
- When set to 3, user 0 AND/OR user 1 AND/OR user 2 must have
- data otherwise PDG should flush the transmission
- ...
- <legal all>
- */
- #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_LSB 43
- #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MSB 46
- #define TX_FES_SETUP_RBO_MUST_HAVE_DATA_USER_LIMIT_MASK 0x0000780000000000
- /* Description MU_NDP
- Field only valid when ndp_frame is set.
-
- If set indicates that this packet is an NDP used for MU
- channel estimation. This bit will be used by the TPC to
- signal that the analog gain settings can be updated. The
- analog gain settings will not change for subsequent MU
- data packets.
- <legal all>
- */
- #define TX_FES_SETUP_MU_NDP_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_MU_NDP_LSB 47
- #define TX_FES_SETUP_MU_NDP_MSB 47
- #define TX_FES_SETUP_MU_NDP_MASK 0x0000800000000000
- /* Description BF_TYPE
- Consumer: PDG/TXPCU
- Producer: SCH
-
- Field is ONLY valid when 'txbf' is set...
-
- Defines the type of beamforming that is required using this
- transmission.
- Note that in the PCU_PPDU_SETUP_INIT TLV, SW can narrow
- down for which BW the beamforming shall take place. For
- example, SW can decide that BW is only desired for 40MHz
- BW, but not for 20...
- If for any of the allowed BW, beamforming is desired, this
- field should indicate which type of BF.
-
- <enum 0 NO_BF>
- <enum 1 LEGACY_BF>
- <enum 2 SU_BF>
- <enum 3 MU_BF>
- <legal all>
- */
- #define TX_FES_SETUP_BF_TYPE_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_BF_TYPE_LSB 48
- #define TX_FES_SETUP_BF_TYPE_MSB 49
- #define TX_FES_SETUP_BF_TYPE_MASK 0x0003000000000000
- /* Description CBF_NC_INDEX_MASK
- Consumer: TXPCU
- Producer: SCH
-
- When set, TXPCU shall confirm that the received cbf_nc_index
- is equal to the expected one, indicated by field: cbf_nc_index
-
-
- This field is only allowed to be set in case of a single
- SU CBF reception.
-
- <legal all>
- */
- #define TX_FES_SETUP_CBF_NC_INDEX_MASK_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_NC_INDEX_MASK_LSB 50
- #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MSB 50
- #define TX_FES_SETUP_CBF_NC_INDEX_MASK_MASK 0x0004000000000000
- /* Description CBF_NC_INDEX
- Consumer: TXPCU
- Producer: SCH
-
- Field only valid when cbf_nc_index_mask is set
-
- Expected Nc_index of received CBF frame after sending NDP
- or BR-Poll.
-
- <enum 0 nc_1>
- <enum 1 nc_2>
- <enum 2 nc_3>
- <enum 3 nc_4>
- <enum 4 nc_5>
- <enum 5 nc_6>
- <enum 6 nc_7>
- <enum 7 nc_8>
- <legal 0-7>
- */
- #define TX_FES_SETUP_CBF_NC_INDEX_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_NC_INDEX_LSB 51
- #define TX_FES_SETUP_CBF_NC_INDEX_MSB 53
- #define TX_FES_SETUP_CBF_NC_INDEX_MASK 0x0038000000000000
- /* Description CBF_NR_INDEX_MASK
- Consumer: TXPCU
- Producer: SCH
-
- When set, TXPCU shall confirm that the received cbf_nr_index
- is equal to the expected one, indicated in the field: cbf_nr_index
-
-
- This field is only allowed to be set in case of a single
- SU CBF reception.
- <legal all>
- */
- #define TX_FES_SETUP_CBF_NR_INDEX_MASK_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_NR_INDEX_MASK_LSB 54
- #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MSB 54
- #define TX_FES_SETUP_CBF_NR_INDEX_MASK_MASK 0x0040000000000000
- /* Description CBF_NR_INDEX
- Expected Nr_index of received CBF frame after sending NDP
- or BR-Poll. This field is compared only if cbf_nr_index_mask
- is set to 1.
- <enum 0 nr_1>
- <enum 1 nr_2>
- <enum 2 nr_3>
- <enum 3 nr_4>
- <enum 4 nr_5>
- <enum 5 nr_6>
- <enum 6 nr_7>
- <enum 7 nr_8>
- <legal 0-7>
- */
- #define TX_FES_SETUP_CBF_NR_INDEX_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_NR_INDEX_LSB 55
- #define TX_FES_SETUP_CBF_NR_INDEX_MSB 57
- #define TX_FES_SETUP_CBF_NR_INDEX_MASK 0x0380000000000000
- /* Description SECURE_RANGING_ISTA
- Consumer: Crypto
- Producer: SW
-
- If set to 1, Crypto will use the 'TX_PEER_ENTRY' for encryption
- but not for the 'TX_DATA' from TXOLE interface but will
- wait for 'LMR_{MPDU_START, DATA, MPDU_END}' TLVs from TXPCU
- to encrypt the ISTA2RSTA LMR.
-
- If set to 0, Crypto will encrypt 'TX_DATA' as for any non-.11az-ranging
- frame.
- */
- #define TX_FES_SETUP_SECURE_RANGING_ISTA_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_SECURE_RANGING_ISTA_LSB 58
- #define TX_FES_SETUP_SECURE_RANGING_ISTA_MSB 58
- #define TX_FES_SETUP_SECURE_RANGING_ISTA_MASK 0x0400000000000000
- /* Description NDPA
- When set, this packet is an NDP announcement.
- */
- #define TX_FES_SETUP_NDPA_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_NDPA_LSB 59
- #define TX_FES_SETUP_NDPA_MSB 59
- #define TX_FES_SETUP_NDPA_MASK 0x0800000000000000
- /* Description WAIT_SIFS
- Consumer: TXPCU
- Producer: SCH
-
- This field is passed over to the tx_phy_desc by the PDG
- module. If set, the AMPI will hold this tx_phy_desc TLV
- from the TX PCU until SIFS has elapsed and then forward
- the tx_phy_desc to the PHY. The PHY should ignore this
- bit. This bit is used to make sure that transmit SIFS response
- to a receive frame is cycle accurate and consistent to
- enable accurate RTT measurement.
-
- <enum 0 NO_SIFS_TIMING> Transmission shall start with the
- normal delay in PHY after receiving this notification
- <enum 1 SIFS_TIMING_DESIRED> Transmission shall be made
- at the SIFS boundary. If shall never start before SIFS boundary,
- but if it a little later, it is not ideal and should be
- flagged, but transmission shall not be aborted.
- <enum 2 SIFS_TIMING_MANDATED> Transmission shall be made
- at exactly SIFS boundary. If this notification is received
- by the PHY after SIFS boundary already passed, the PHY
- shall abort the transmission
- <legal 0-2>
- */
- #define TX_FES_SETUP_WAIT_SIFS_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_WAIT_SIFS_LSB 60
- #define TX_FES_SETUP_WAIT_SIFS_MSB 61
- #define TX_FES_SETUP_WAIT_SIFS_MASK 0x3000000000000000
- /* Description CBF_FEEDBACK_TYPE_MASK
- Consumer: TXPCU
- Producer: SCH
-
- When set, TXPCU shall confirm that the cbf_feedback_type
- is equal to the expected one, indicated in the field: cbf_feedback_type
-
-
- This field is only allowed to be set in case of a single
- SU CBF reception.
- <legal all>
- */
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_LSB 62
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MSB 62
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK_MASK 0x4000000000000000
- /* Description CBF_FEEDBACK_TYPE
- Consumer: TXPCU
- Producer: SCH
-
- Expected feedback type of received CBF frame after sending
- NDP or BR-Poll. This field is compared only if cbf_feedback_type_mask
- is set to 1.
- <enum 0 SU>
- <enum 1 MU>
- <legal all>
- */
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_OFFSET 0x0000000000000008
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_LSB 63
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MSB 63
- #define TX_FES_SETUP_CBF_FEEDBACK_TYPE_MASK 0x8000000000000000
- /* Description CBF_SOUNDING_TOKEN
- Consumer: TXPCU
- Producer: SCH
-
- Expected sounding token of received CBF frame after sending
- NDP or BR-Poll. This field is compared only if cbf_sounding_token_mask
- is set to 1.
- <legal all>
- */
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_LSB 0
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MSB 5
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK 0x000000000000003f
- /* Description CBF_SOUNDING_TOKEN_MASK
- Consumer: TXPCU
- Producer: SCH
-
- When set, TXPCU shall confirm that the cbf_sounding_token
- is equal to the expected one, indicated in the field: cbf_sounding_token
-
-
- This field is only allowed to be set in case of a single
- SU CBF reception.
- <legal all>
- */
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_LSB 6
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MSB 6
- #define TX_FES_SETUP_CBF_SOUNDING_TOKEN_MASK_MASK 0x0000000000000040
- /* Description CBF_BW_MASK
- Consumer: TXPCU
- Producer: SCH
-
- When set, TXPCU shall confirm that the cbf_bw_mask is equal
- to the expected one, indicated in the field: cbf_bw
-
- This field is only allowed to be set in case of a single
- SU CBF reception.
- <legal all>
- */
- #define TX_FES_SETUP_CBF_BW_MASK_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_CBF_BW_MASK_LSB 7
- #define TX_FES_SETUP_CBF_BW_MASK_MSB 7
- #define TX_FES_SETUP_CBF_BW_MASK_MASK 0x0000000000000080
- /* Description CBF_BW
- Consumer: TXPCU
- Producer: SCH
-
- Expected channel width of received CBF frame after sending
- NDP or BR-Poll. This field is compared only if cbf_bw_mask
- is set to 1.
-
- <enum 0 20_mhz>20 Mhz BW
- <enum 1 40_mhz>40 Mhz BW
- <enum 2 80_mhz>80 Mhz BW
- <enum 3 160_mhz>160 Mhz BW
- <enum 4 320_mhz>320 Mhz BW
- <enum 5 240_mhz>240 Mhz BW
- */
- #define TX_FES_SETUP_CBF_BW_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_CBF_BW_LSB 8
- #define TX_FES_SETUP_CBF_BW_MSB 10
- #define TX_FES_SETUP_CBF_BW_MASK 0x0000000000000700
- /* Description USE_STATIC_BW
- Consumer: TXPCU
- Producer: SCH
-
- Part of TX_BF_PARAMS: This field is used to indicate to
- the SVD that the b/w that will be defined in the TX_PHY_DESC
- for the upcoming TXBF packet will be the same as the static
- bandwidth, i.e. the bandwidth that was in operation during
- sounding for the clients in question
- <legal all>
- */
- #define TX_FES_SETUP_USE_STATIC_BW_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_USE_STATIC_BW_LSB 11
- #define TX_FES_SETUP_USE_STATIC_BW_MSB 11
- #define TX_FES_SETUP_USE_STATIC_BW_MASK 0x0000000000000800
- /* Description COEX_NACK_COUNT
- Consumer: TXPCU
- Producer: SCH
-
- The number of times PDG informed the SCHeduler module that
- for this scheduling command, the WLAN transmission can
- not be initialized due to getting a NACK response from the
- Coex engine, or PDG not being able to fit a transmission
- within the timing constraints given by Coex.
-
- Note that SCH will (re)set this count to 0 at the start
- of reading a new SCH command.
- This count is maintained on a per ring basis by the SCHeduler
-
-
- <legal all>
- */
- #define TX_FES_SETUP_COEX_NACK_COUNT_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_COEX_NACK_COUNT_LSB 12
- #define TX_FES_SETUP_COEX_NACK_COUNT_MSB 16
- #define TX_FES_SETUP_COEX_NACK_COUNT_MASK 0x000000000001f000
- /* Description SCH_TX_BURST_ONGOING
- Consumer: PDG/TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and it's
- value is coming from the" sifs_burst_continuation" field
- in the Scheduler command.
-
- 0: No action
- 1: The next scheduling command needs to start at SIFS time
- after finishing the frame transmissions in this command.
- This allows for SIFS based bursting
- <legal all>
- */
- #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_LSB 17
- #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MSB 17
- #define TX_FES_SETUP_SCH_TX_BURST_ONGOING_MASK 0x0000000000020000
- /* Description GEN_TQM_UPDATE_MPDU_COUNT_TLV
- Consumer: TXPCU
- Producer: SW
-
- NOTE: When PDG is configured to do transmissions in SW mode,
- this bit shall NEVER be set.
-
- When set, TXPCU shall generate the TQM_UPDATE_TX_MPDU_COUNT
- TLV immediately after PPDU transmission has finished (and
- before any response frame might have been received)
-
- When set, SW shall also generate the RXPCU_USER_SETUP TLVs
- as this is where TXPCU will get the MPDU_queue addresses.
-
- <legal all>
- */
- #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_LSB 18
- #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MSB 18
- #define TX_FES_SETUP_GEN_TQM_UPDATE_MPDU_COUNT_TLV_MASK 0x0000000000040000
- /* Description TRANSMIT_VIF
- Consumer: TXOLE
- Producer: SW
-
- The VIF for this transmission. Used in MCC mode to control/overwrite
- the PM bit settings. Based on this VIF value, TXOLE gets
- the pm bit control instructions from the pm_state_overwrite_per_vif
- register
-
- <legal all>
- */
- #define TX_FES_SETUP_TRANSMIT_VIF_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_TRANSMIT_VIF_LSB 19
- #define TX_FES_SETUP_TRANSMIT_VIF_MSB 22
- #define TX_FES_SETUP_TRANSMIT_VIF_MASK 0x0000000000780000
- /* Description OPTIMAL_BW_RETRY_COUNT
- Consumer: TXPCU
- Producer: SCH
-
- This field is overwritten by the scheduler module and it's
- value is coming from an internal counter in the scheduler
- that keeps track of how many times this scheduling command
- has been flushed by TXPCU as a result of most desired BW
- not being available (=> flush code: TXPCU_FLREQ_RETRY_FOR_OPTIMAL_BW)
-
-
- For the first transmission, this count is always set to
- 0.
- <legal all>
- */
- #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_LSB 23
- #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MSB 26
- #define TX_FES_SETUP_OPTIMAL_BW_RETRY_COUNT_MASK 0x0000000007800000
- /* Description FES_CONTINUATION_RATIO_THRESHOLD
- Field evaluated by TXPCU only.
-
- Field can be used in both SU and MU transmissions, but might
- be most useful in MU transmissions.
-
- TXPCU keeps track of how many MPDU data words are transmited
- as well as how many Null delimiters are transmitted. In
- case of an MU and/or multi TID transmission, these two
- counters are the aggregates over all the users.
-
- At the end of the FES, TXPCU determines the ratio between
- the actual MPDU data words and Null delimiters. If this
- ratio is LESS then the ratio indicated here, TXPCU should
- indicate "Transmit_data_null_ratio_not_met" in the TX_FES_STATUS_END
-
-
- <enum 0 No_Data_Null_ratio_requirement> TXPCU does not need
- to do any evaluation on the ratio between actual data transmitted
- and NULL delimiters inserted.
- <enum 1 Data_Null_ratio_16_1> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 16:1. If not met, TXPCU should terminate FES.
- <enum 2 Data_Null_ratio_8_1> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 8:1. If not met, TXPCU should terminate FES.
- <enum 3 Data_Null_ratio_4_1> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 4:1. If not met, TXPCU should terminate FES.
- <enum 4 Data_Null_ratio_2_1> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 2:1. If not met, TXPCU should terminate FES.
- <enum 5 Data_Null_ratio_1_1> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 1:1. If not met, TXPCU should terminate FES.
- <enum 6 Data_Null_ratio_1_2> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 1:2. If not met, TXPCU should terminate FES.
- <enum 7 Data_Null_ratio_1_4> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 1:4. If not met, TXPCU should terminate FES.
- <enum 8 Data_Null_ratio_1_8> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 1:8. If not met, TXPCU should terminate FES.
- <enum 9 Data_Null_ratio_1_16> At the end of the FES, TXPCU
- shall confirm that the DATA:NULL delimiter ratio was at
- least 1:16. If not met, TXPCU should terminate FES.
-
- <legal 0-9>
- */
- #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_LSB 27
- #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MSB 31
- #define TX_FES_SETUP_FES_CONTINUATION_RATIO_THRESHOLD_MASK 0x00000000f8000000
- /* Description TRANSMIT_CCA_BITMAP
- The CCA signals that shall be evaluated by TXPCU to determine
- the BW/puncture pattern available for transmission.
-
- 0: CCA signal not needed. Ignore the CCA setting
- 1: CCA signals shall be evaluated
-
- Bit [1:0] => cca20_0 related signals
- Bit [3:2] => cca20_1 related signals
- ...
- Bit [31:30] => cca20_15 related signals
-
- Within the 2 bits, the order is always:
- Bit0: ED
- Bit1: GI
-
- NOTE: HW Sch takes care of MUXing ED1/ED2 with ED0 and MUXing
- GI1 with GI0. Hence this field should be set to 0x55555555
- for chips not supporting GI-correlation and 0xFFFFFFFF
- for chips that support, usually.
- <legal all>
- */
- #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_OFFSET 0x0000000000000010
- #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_LSB 32
- #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MSB 63
- #define TX_FES_SETUP_TRANSMIT_CCA_BITMAP_MASK 0xffffffff00000000
- /* Description TB_RANGING
- Indicates that this frame is generated for a TB ranging
- sequence
- <legal all>
- */
- #define TX_FES_SETUP_TB_RANGING_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_TB_RANGING_LSB 0
- #define TX_FES_SETUP_TB_RANGING_MSB 0
- #define TX_FES_SETUP_TB_RANGING_MASK 0x0000000000000001
- /* Description RANGING_TRIGGER_SUBTYPE
- Field only valid if TB_Ranging is set
-
- Indicates the Trigger subtype for the current ranging TF
-
-
- <enum 0 TF_Poll>
- <enum 1 TF_Sound>
- <enum 2 TF_Secure_Sound>
- <enum 3 TF_Report>
-
- <legal 0-3>
- */
- #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_LSB 1
- #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MSB 4
- #define TX_FES_SETUP_RANGING_TRIGGER_SUBTYPE_MASK 0x000000000000001e
- /* Description MIN_CTS2SELF_COUNT
- Field only valid when max_cts2self_count is non-zero
-
- This is the minimum number of CTS2SELF frames that PDG should
- transmit before the actual data transmission.
- */
- #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_LSB 5
- #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MSB 8
- #define TX_FES_SETUP_MIN_CTS2SELF_COUNT_MASK 0x00000000000001e0
- /* Description MAX_CTS2SELF_COUNT
- Field only valid when non-zero
-
- This is the maximum number of CTS2SELF frames that PDG is
- allowed to transmit before the actual data transmission.
- PDG will only use these additional frames if MPDU info from
- TQM or CV-correlation info from microcode is delayed.
- */
- #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_LSB 9
- #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MSB 12
- #define TX_FES_SETUP_MAX_CTS2SELF_COUNT_MASK 0x0000000000001e00
- /* Description WIFI_RADAR_ENABLE
- When set to 1, the packet is intended to be used by PHY
- for WiFi radar (by sensing the reflected WiFi signal).
- <legal all>
- */
- #define TX_FES_SETUP_WIFI_RADAR_ENABLE_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_WIFI_RADAR_ENABLE_LSB 13
- #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MSB 13
- #define TX_FES_SETUP_WIFI_RADAR_ENABLE_MASK 0x0000000000002000
- /* Description RESERVED_6A
- Bit 14: cqi_feedback:
- Consumer: TXPCU
- Producer: SCH
-
- MSB of the expected feedback type of received CBF frame
- after sending NDP or BR-Poll in case of HE/EHT sounding.
- See field cbf_feedback_type above for the LSB. This field
- is compared only if cbf_feedback_type_mask is set to 1.
-
- 0: compressed beamforming feedback
- 1: CQI feedback
-
- <legal 0-1>
- */
- #define TX_FES_SETUP_RESERVED_6A_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_RESERVED_6A_LSB 14
- #define TX_FES_SETUP_RESERVED_6A_MSB 31
- #define TX_FES_SETUP_RESERVED_6A_MASK 0x00000000ffffc000
- /* Description MONITOR_OVERRIDE_STA_31_0
- Used by TXMON
-
- LSB 32 bits of a 37-bit user bitmap with 1s denoting the
- 'tlv_usr' values that correspond to'Monitor override client's
-
-
- When enabled in TXMON, it will discard the user-TLVs of
- the users not selected by the bitmap. FW should program
- this setting in line with the 'Monitor_override_sta' setting
- in the 'ADDR_SEARCH_ENTRY' corresponding to each of the
- clients.
-
- <legal all>
- */
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_OFFSET 0x0000000000000018
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_LSB 32
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MSB 63
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_31_0_MASK 0xffffffff00000000
- /* Description MONITOR_OVERRIDE_STA_36_32
- Used by TXMON
-
- MSB 5 bits of a 37-bit user bitmap with 1s denoting the 'tlv_usr'
- values that correspond to 'Monitor override client's
-
- <legal all>
- */
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_OFFSET 0x0000000000000020
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_LSB 0
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MSB 4
- #define TX_FES_SETUP_MONITOR_OVERRIDE_STA_36_32_MASK 0x000000000000001f
- /* Description RESERVED_8A
- <legal 0>
- */
- #define TX_FES_SETUP_RESERVED_8A_OFFSET 0x0000000000000020
- #define TX_FES_SETUP_RESERVED_8A_LSB 5
- #define TX_FES_SETUP_RESERVED_8A_MSB 31
- #define TX_FES_SETUP_RESERVED_8A_MASK 0x00000000ffffffe0
- /* Description FW2SW_INFO
- This field is provided by FW, to be logged via TXMON to
- host SW. It is transparent to HW.
-
- <legal all>
- */
- #define TX_FES_SETUP_FW2SW_INFO_OFFSET 0x0000000000000020
- #define TX_FES_SETUP_FW2SW_INFO_LSB 32
- #define TX_FES_SETUP_FW2SW_INFO_MSB 63
- #define TX_FES_SETUP_FW2SW_INFO_MASK 0xffffffff00000000
- #endif // TX_FES_SETUP
|