123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371 |
- /*
- * Copyright (c) 2016-2017 The Linux Foundation. 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 _RX_LOCATION_INFO_H_
- #define _RX_LOCATION_INFO_H_
- #if !defined(__ASSEMBLER__)
- #endif
- // ################ START SUMMARY #################
- //
- // Dword Fields
- // 0 rtt_fac_legacy[15:0], rtt_fac_legacy_ext80[31:16]
- // 1 rtt_fac_vht[15:0], rtt_fac_vht_ext80[31:16]
- // 2 rtt_fac_legacy_status[0], rtt_fac_legacy_ext80_status[1], rtt_fac_vht_status[2], rtt_fac_vht_ext80_status[3], rtt_fac_sifs[15:4], rtt_fac_sifs_status[17:16], rtt_cfr_status[18], rtt_cir_status[19], rtt_channel_dump_size[30:20], rtt_hw_ifft_mode[31]
- // 3 rtt_btcf_status[0], rtt_preamble_type[5:1], rtt_pkt_bw_leg[7:6], rtt_pkt_bw_vht[9:8], rtt_gi_type[11:10], rtt_mcs_rate[16:12], rtt_strongest_chain[19:17], rtt_strongest_chain_ext80[22:20], rtt_rx_chain_mask[30:23], reserved_3[31]
- // 4 rx_start_ts[31:0]
- // 5 rx_end_ts[31:0]
- // 6 sfo_phase_pkt_start[11:0], sfo_phase_pkt_end[23:12], rtt_che_buffer_pointer_high8[31:24]
- // 7 rtt_che_buffer_pointer_low32[31:0]
- // 8 rtt_cfo_measurement[13:0], rtt_chan_spread[21:14], rtt_timing_backoff_sel[23:22], reserved_8[30:24], rx_location_info_valid[31]
- //
- // ################ END SUMMARY #################
- #define NUM_OF_DWORDS_RX_LOCATION_INFO 9
- struct rx_location_info {
- uint32_t rtt_fac_legacy : 16, //[15:0]
- rtt_fac_legacy_ext80 : 16; //[31:16]
- uint32_t rtt_fac_vht : 16, //[15:0]
- rtt_fac_vht_ext80 : 16; //[31:16]
- uint32_t rtt_fac_legacy_status : 1, //[0]
- rtt_fac_legacy_ext80_status : 1, //[1]
- rtt_fac_vht_status : 1, //[2]
- rtt_fac_vht_ext80_status : 1, //[3]
- rtt_fac_sifs : 12, //[15:4]
- rtt_fac_sifs_status : 2, //[17:16]
- rtt_cfr_status : 1, //[18]
- rtt_cir_status : 1, //[19]
- rtt_channel_dump_size : 11, //[30:20]
- rtt_hw_ifft_mode : 1; //[31]
- uint32_t rtt_btcf_status : 1, //[0]
- rtt_preamble_type : 5, //[5:1]
- rtt_pkt_bw_leg : 2, //[7:6]
- rtt_pkt_bw_vht : 2, //[9:8]
- rtt_gi_type : 2, //[11:10]
- rtt_mcs_rate : 5, //[16:12]
- rtt_strongest_chain : 3, //[19:17]
- rtt_strongest_chain_ext80 : 3, //[22:20]
- rtt_rx_chain_mask : 8, //[30:23]
- reserved_3 : 1; //[31]
- uint32_t rx_start_ts : 32; //[31:0]
- uint32_t rx_end_ts : 32; //[31:0]
- uint32_t sfo_phase_pkt_start : 12, //[11:0]
- sfo_phase_pkt_end : 12, //[23:12]
- rtt_che_buffer_pointer_high8 : 8; //[31:24]
- uint32_t rtt_che_buffer_pointer_low32 : 32; //[31:0]
- uint32_t rtt_cfo_measurement : 14, //[13:0]
- rtt_chan_spread : 8, //[21:14]
- rtt_timing_backoff_sel : 2, //[23:22]
- reserved_8 : 7, //[30:24]
- rx_location_info_valid : 1; //[31]
- };
- /*
- rtt_fac_legacy
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from L-LTF on the first selected
- Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from L-LTF on pri80 on the
- selected pri80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- rtt_fac_legacy_ext80
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from L-LTF on the second selected
- Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from L-LTF on ext80 on the
- selected ext80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- rtt_fac_vht
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on the first
- selected Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on pri80 on the
- selected pri80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- rtt_fac_vht_ext80
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on the second
- selected Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on ext80 on the
- selected ext80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- rtt_fac_legacy_status
-
- Status of rtt_fac_legacy
-
-
-
- <enum 0 location_fac_legacy_status_not_valid>
-
- <enum 1 location_fac_legacy_status_valid>
-
- <legal all>
- rtt_fac_legacy_ext80_status
-
- Status of rtt_fac_legacy_ext80
-
-
-
- <enum 0 location_fac_legacy_ext80_status_not_valid>
-
- <enum 1 location_fac_legacy_ext80_status_valid>
-
- <legal all>
- rtt_fac_vht_status
-
- Status of rtt_fac_vht
-
-
-
- <enum 0 location_fac_vht_status_not_valid>
-
- <enum 1 location_fac_vht_status_valid>
-
- <legal all>
- rtt_fac_vht_ext80_status
-
- Status of rtt_fac_vht_ext80
-
-
-
- <enum 0 location_fac_vht_ext80_status_not_valid>
-
- <enum 1 location_fac_vht_ext80_status_valid>
-
- <legal all>
- rtt_fac_sifs
-
- To support fine SIFS adjustment, need to provide FAC
- value @ integer number of 320 MHz clock cycles to MAC. It
- is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
- if it is a (V)HT/HE packet
-
-
-
- 12 bits, signed, no fractional part
-
- <legal all>
- rtt_fac_sifs_status
-
- Status of rtt_fac_sifs
-
- 0: not valid
-
- 1: valid and from L-LTF
-
- 2: valid and from (V)HT/HE-LTF
-
- 3: reserved
-
- <legal 0-2>
- rtt_cfr_status
-
- Status of channel frequency response dump
-
-
-
- <enum 0 location_CFR_dump_not_valid>
-
- <enum 1 location_CFR_dump_valid>
-
- <legal all>
- rtt_cir_status
-
- Status of channel impulse response dump
-
-
-
- <enum 0 location_CIR_dump_not_valid>
-
- <enum 1 location_CIR_dump_valid>
-
- <legal all>
- rtt_channel_dump_size
-
- Channel dump size. It shows how many tones in CFR in
- one chain, for example, it will show 52 for Legacy20 and 484
- for VHT160
-
-
-
- <legal all>
- rtt_hw_ifft_mode
-
- Indicator showing if HW IFFT mode or SW IFFT mode
-
-
-
- <enum 0 location_sw_ifft_mode>
-
- <enum 1 location_hw_ifft_mode>
-
- <legal all>
- rtt_btcf_status
-
- Indicate if BTCF is used to capture the timestamps
-
-
-
- <enum 0 location_not_BTCF_based_ts>
-
- <enum 1 location_BTCF_based_ts>
-
- <legal all>
- rtt_preamble_type
-
- Indicate preamble type
-
-
-
- <enum 0 location_preamble_type_legacy>
-
- <enum 1 location_preamble_type_ht>
-
- <enum 2 location_preamble_type_vht>
-
- <enum 3 location_preamble_type_he_su_4xltf>
-
- <enum 4 location_preamble_type_he_su_2xltf>
-
- <enum 5 location_preamble_type_he_su_1xltf>
-
- <enum 6
- location_preamble_type_he_trigger_based_ul_4xltf>
-
- <enum 7
- location_preamble_type_he_trigger_based_ul_2xltf>
-
- <enum 8
- location_preamble_type_he_trigger_based_ul_1xltf>
-
- <enum 9 location_preamble_type_he_mu_4xltf>
-
- <enum 10 location_preamble_type_he_mu_2xltf>
-
- <enum 11 location_preamble_type_he_mu_1xltf>
-
- <enum 12
- location_preamble_type_he_extended_range_su_4xltf>
-
- <enum 13
- location_preamble_type_he_extended_range_su_2xltf>
-
- <enum 14
- location_preamble_type_he_extended_range_su_1xltf>
-
- <legal 0-14>
- rtt_pkt_bw_leg
-
- Indicate the bandwidth of L-LTF
-
-
-
- <enum 0 location_pkt_bw_20MHz>
-
- <enum 1 location_pkt_bw_40MHz>
-
- <enum 2 location_pkt_bw_80MHz>
-
- <enum 3 location_pkt_bw_160MHz>
-
- <legal all>
- rtt_pkt_bw_vht
-
- Indicate the bandwidth of (V)HT/HE-LTF
-
-
-
- <enum 0 location_pkt_bw_20MHz>
-
- <enum 1 location_pkt_bw_40MHz>
-
- <enum 2 location_pkt_bw_80MHz>
-
- <enum 3 location_pkt_bw_160MHz>
-
- <legal all>
- rtt_gi_type
-
- Indicate GI (guard interval) type
-
-
-
- <enum 0 gi_0_8_us > HE related GI. Can also be used
- for HE
-
- <enum 1 gi_0_4_us > HE related GI. Can also be used
- for HE
-
- <enum 2 gi_1_6_us > HE related GI
-
- <enum 3 gi_3_2_us > HE related GI
-
- <legal 0 - 3>
- rtt_mcs_rate
-
- Bits 0~4 indicate MCS rate, if Legacy,
-
- 0: 48 Mbps,
-
- 1: 24 Mbps,
-
- 2: 12 Mbps,
-
- 3: 6 Mbps,
-
- 4: 54 Mbps,
-
- 5: 36 Mbps,
-
- 6: 18 Mbps,
-
- 7: 9 Mbps,
-
-
-
- if HT, 0-7: MCS0-MCS7,
-
- if VHT, 0-9: MCS0-MCS9,
-
-
- <legal all>
- rtt_strongest_chain
-
- For 20/40/80, this field shows the first selected Rx
- chain that is used in HW IFFT mode
-
-
-
- For 80+80, this field shows the selected pri80 Rx chain
- that is used in HW IFFT mode
-
-
-
- <enum 0 location_strongest_chain_is_0>
-
- <enum 1 location_strongest_chain_is_1>
-
- <enum 2 location_strongest_chain_is_2>
-
- <enum 3 location_strongest_chain_is_3>
-
- <enum 4 location_strongest_chain_is_4>
-
- <enum 5 location_strongest_chain_is_5>
-
- <enum 6 location_strongest_chain_is_6>
-
- <enum 7 location_strongest_chain_is_7>
-
- <legal all>
- rtt_strongest_chain_ext80
-
- For 20/40/80, this field shows the second selected Rx
- chain that is used in HW IFFT mode
-
-
-
- For 80+80, this field shows the selected ext80 Rx chain
- that is used in HW IFFT mode
-
-
-
- <enum 0 location_strongest_chain_is_0>
-
- <enum 1 location_strongest_chain_is_1>
-
- <enum 2 location_strongest_chain_is_2>
-
- <enum 3 location_strongest_chain_is_3>
-
- <enum 4 location_strongest_chain_is_4>
-
- <enum 5 location_strongest_chain_is_5>
-
- <enum 6 location_strongest_chain_is_6>
-
- <enum 7 location_strongest_chain_is_7>
-
- <legal all>
- rtt_rx_chain_mask
-
- Rx chain mask, each bit is a Rx chain
-
- 0: the Rx chain is not used
-
- 1: the Rx chain is used
-
- Support up to 8 Rx chains
-
- <legal all>
- reserved_3
-
- <legal 0>
- rx_start_ts
-
- RX packet start timestamp
-
-
-
- It reports the time the first L-STF ADC sample arrived
- at RX antenna
-
-
-
- clock unit is 480MHz
-
- <legal all>
- rx_end_ts
-
- RX packet end timestamp
-
-
-
- It reports the time the last symbol's last ADC sample
- arrived at RX antenna
-
-
-
- clock unit is 480MHz
-
- <legal all>
- sfo_phase_pkt_start
-
- The phase of the SFO of the first symbol's first FFT
- input sample
-
-
-
- 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
- 66.7ns, and 6 bits fraction to provide a resolution of
- 0.03ns
-
-
-
- clock unit is 480MHz
-
- <legal all>
- sfo_phase_pkt_end
-
- The phase of the SFO of the last symbol's last FFT input
- sample
-
-
-
- 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
- 66.7ns, and 6 bits fraction to provide a resolution of
- 0.03ns
-
-
-
- clock unit is 480MHz
-
- <legal all>
- rtt_che_buffer_pointer_high8
-
- The high 8 bits of the 40 bits pointer pointed to the
- external RTT channel information buffer
-
-
-
- 8 bits
-
- <legal all>
- rtt_che_buffer_pointer_low32
-
- The low 32 bits of the 40 bits pointer pointed to the
- external RTT channel information buffer
-
-
-
- 32 bits
-
- <legal all>
- rtt_cfo_measurement
-
- CFO measurement. Needed for passive locationing
-
-
-
- 14 bits, signed 1.13. 13 bits fraction to provide a
- resolution of 153 Hz
-
-
-
- In units of cycles/800 ns
-
- <legal all>
- rtt_chan_spread
-
- Channel delay spread measurement. Needed for selecting
- GI length
-
-
-
- 8 bits, unsigned. At 25 ns step. Can represent up to
- 6375 ns
-
-
-
- In units of cycles @ 40 MHz
-
- <legal all>
- rtt_timing_backoff_sel
-
- Indicate which timing backoff value is used
-
-
-
- <enum 0 timing_backoff_low_rssi>
-
- <enum 1 timing_backoff_mid_rssi>
-
- <enum 2 timing_backoff_high_rssi>
-
- <enum 3 reserved>
-
- <legal all>
- reserved_8
-
- <legal 0>
- rx_location_info_valid
-
- <enum 0 rx_location_info_is_not_valid>
-
- <enum 1 rx_location_info_is_valid>
-
- <legal all>
- */
- /* Description RX_LOCATION_INFO_0_RTT_FAC_LEGACY
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from L-LTF on the first selected
- Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from L-LTF on pri80 on the
- selected pri80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_OFFSET 0x00000000
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_LSB 0
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_MASK 0x0000ffff
- /* Description RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from L-LTF on the second selected
- Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from L-LTF on ext80 on the
- selected ext80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_OFFSET 0x00000000
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_LSB 16
- #define RX_LOCATION_INFO_0_RTT_FAC_LEGACY_EXT80_MASK 0xffff0000
- /* Description RX_LOCATION_INFO_1_RTT_FAC_VHT
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on the first
- selected Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on pri80 on the
- selected pri80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover pri80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_OFFSET 0x00000004
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_LSB 0
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_MASK 0x0000ffff
- /* Description RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80
-
- For 20/40/80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on the second
- selected Rx chain
-
-
-
- For 80+80, this field shows the RTT first arrival
- correction value computed from (V)HT/HE-LTF on ext80 on the
- selected ext80 Rx chain
-
-
-
- 16 bits, signed 12.4. 12 bits integer to cover -6.4us to
- 6.4us, and 4 bits fraction to cover ext80 and 32x FAC
- interpolation
-
-
-
- clock unit is 320MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_OFFSET 0x00000004
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_LSB 16
- #define RX_LOCATION_INFO_1_RTT_FAC_VHT_EXT80_MASK 0xffff0000
- /* Description RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS
-
- Status of rtt_fac_legacy
-
-
-
- <enum 0 location_fac_legacy_status_not_valid>
-
- <enum 1 location_fac_legacy_status_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_LSB 0
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_STATUS_MASK 0x00000001
- /* Description RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS
-
- Status of rtt_fac_legacy_ext80
-
-
-
- <enum 0 location_fac_legacy_ext80_status_not_valid>
-
- <enum 1 location_fac_legacy_ext80_status_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_LSB 1
- #define RX_LOCATION_INFO_2_RTT_FAC_LEGACY_EXT80_STATUS_MASK 0x00000002
- /* Description RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS
-
- Status of rtt_fac_vht
-
-
-
- <enum 0 location_fac_vht_status_not_valid>
-
- <enum 1 location_fac_vht_status_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_LSB 2
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_STATUS_MASK 0x00000004
- /* Description RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS
-
- Status of rtt_fac_vht_ext80
-
-
-
- <enum 0 location_fac_vht_ext80_status_not_valid>
-
- <enum 1 location_fac_vht_ext80_status_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_LSB 3
- #define RX_LOCATION_INFO_2_RTT_FAC_VHT_EXT80_STATUS_MASK 0x00000008
- /* Description RX_LOCATION_INFO_2_RTT_FAC_SIFS
-
- To support fine SIFS adjustment, need to provide FAC
- value @ integer number of 320 MHz clock cycles to MAC. It
- is from L-LTF if it is a Legacy packet and from (V)HT/HE-LTF
- if it is a (V)HT/HE packet
-
-
-
- 12 bits, signed, no fractional part
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_LSB 4
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_MASK 0x0000fff0
- /* Description RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS
-
- Status of rtt_fac_sifs
-
- 0: not valid
-
- 1: valid and from L-LTF
-
- 2: valid and from (V)HT/HE-LTF
-
- 3: reserved
-
- <legal 0-2>
- */
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_LSB 16
- #define RX_LOCATION_INFO_2_RTT_FAC_SIFS_STATUS_MASK 0x00030000
- /* Description RX_LOCATION_INFO_2_RTT_CFR_STATUS
-
- Status of channel frequency response dump
-
-
-
- <enum 0 location_CFR_dump_not_valid>
-
- <enum 1 location_CFR_dump_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_LSB 18
- #define RX_LOCATION_INFO_2_RTT_CFR_STATUS_MASK 0x00040000
- /* Description RX_LOCATION_INFO_2_RTT_CIR_STATUS
-
- Status of channel impulse response dump
-
-
-
- <enum 0 location_CIR_dump_not_valid>
-
- <enum 1 location_CIR_dump_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_LSB 19
- #define RX_LOCATION_INFO_2_RTT_CIR_STATUS_MASK 0x00080000
- /* Description RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE
-
- Channel dump size. It shows how many tones in CFR in
- one chain, for example, it will show 52 for Legacy20 and 484
- for VHT160
-
-
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_LSB 20
- #define RX_LOCATION_INFO_2_RTT_CHANNEL_DUMP_SIZE_MASK 0x7ff00000
- /* Description RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE
-
- Indicator showing if HW IFFT mode or SW IFFT mode
-
-
-
- <enum 0 location_sw_ifft_mode>
-
- <enum 1 location_hw_ifft_mode>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_OFFSET 0x00000008
- #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_LSB 31
- #define RX_LOCATION_INFO_2_RTT_HW_IFFT_MODE_MASK 0x80000000
- /* Description RX_LOCATION_INFO_3_RTT_BTCF_STATUS
-
- Indicate if BTCF is used to capture the timestamps
-
-
-
- <enum 0 location_not_BTCF_based_ts>
-
- <enum 1 location_BTCF_based_ts>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_LSB 0
- #define RX_LOCATION_INFO_3_RTT_BTCF_STATUS_MASK 0x00000001
- /* Description RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE
-
- Indicate preamble type
-
-
-
- <enum 0 location_preamble_type_legacy>
-
- <enum 1 location_preamble_type_ht>
-
- <enum 2 location_preamble_type_vht>
-
- <enum 3 location_preamble_type_he_su_4xltf>
-
- <enum 4 location_preamble_type_he_su_2xltf>
-
- <enum 5 location_preamble_type_he_su_1xltf>
-
- <enum 6
- location_preamble_type_he_trigger_based_ul_4xltf>
-
- <enum 7
- location_preamble_type_he_trigger_based_ul_2xltf>
-
- <enum 8
- location_preamble_type_he_trigger_based_ul_1xltf>
-
- <enum 9 location_preamble_type_he_mu_4xltf>
-
- <enum 10 location_preamble_type_he_mu_2xltf>
-
- <enum 11 location_preamble_type_he_mu_1xltf>
-
- <enum 12
- location_preamble_type_he_extended_range_su_4xltf>
-
- <enum 13
- location_preamble_type_he_extended_range_su_2xltf>
-
- <enum 14
- location_preamble_type_he_extended_range_su_1xltf>
-
- <legal 0-14>
- */
- #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_LSB 1
- #define RX_LOCATION_INFO_3_RTT_PREAMBLE_TYPE_MASK 0x0000003e
- /* Description RX_LOCATION_INFO_3_RTT_PKT_BW_LEG
-
- Indicate the bandwidth of L-LTF
-
-
-
- <enum 0 location_pkt_bw_20MHz>
-
- <enum 1 location_pkt_bw_40MHz>
-
- <enum 2 location_pkt_bw_80MHz>
-
- <enum 3 location_pkt_bw_160MHz>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_LSB 6
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_LEG_MASK 0x000000c0
- /* Description RX_LOCATION_INFO_3_RTT_PKT_BW_VHT
-
- Indicate the bandwidth of (V)HT/HE-LTF
-
-
-
- <enum 0 location_pkt_bw_20MHz>
-
- <enum 1 location_pkt_bw_40MHz>
-
- <enum 2 location_pkt_bw_80MHz>
-
- <enum 3 location_pkt_bw_160MHz>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_LSB 8
- #define RX_LOCATION_INFO_3_RTT_PKT_BW_VHT_MASK 0x00000300
- /* Description RX_LOCATION_INFO_3_RTT_GI_TYPE
-
- Indicate GI (guard interval) type
-
-
-
- <enum 0 gi_0_8_us > HE related GI. Can also be used
- for HE
-
- <enum 1 gi_0_4_us > HE related GI. Can also be used
- for HE
-
- <enum 2 gi_1_6_us > HE related GI
-
- <enum 3 gi_3_2_us > HE related GI
-
- <legal 0 - 3>
- */
- #define RX_LOCATION_INFO_3_RTT_GI_TYPE_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_GI_TYPE_LSB 10
- #define RX_LOCATION_INFO_3_RTT_GI_TYPE_MASK 0x00000c00
- /* Description RX_LOCATION_INFO_3_RTT_MCS_RATE
-
- Bits 0~4 indicate MCS rate, if Legacy,
-
- 0: 48 Mbps,
-
- 1: 24 Mbps,
-
- 2: 12 Mbps,
-
- 3: 6 Mbps,
-
- 4: 54 Mbps,
-
- 5: 36 Mbps,
-
- 6: 18 Mbps,
-
- 7: 9 Mbps,
-
-
-
- if HT, 0-7: MCS0-MCS7,
-
- if VHT, 0-9: MCS0-MCS9,
-
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_MCS_RATE_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_MCS_RATE_LSB 12
- #define RX_LOCATION_INFO_3_RTT_MCS_RATE_MASK 0x0001f000
- /* Description RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN
-
- For 20/40/80, this field shows the first selected Rx
- chain that is used in HW IFFT mode
-
-
-
- For 80+80, this field shows the selected pri80 Rx chain
- that is used in HW IFFT mode
-
-
-
- <enum 0 location_strongest_chain_is_0>
-
- <enum 1 location_strongest_chain_is_1>
-
- <enum 2 location_strongest_chain_is_2>
-
- <enum 3 location_strongest_chain_is_3>
-
- <enum 4 location_strongest_chain_is_4>
-
- <enum 5 location_strongest_chain_is_5>
-
- <enum 6 location_strongest_chain_is_6>
-
- <enum 7 location_strongest_chain_is_7>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_LSB 17
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_MASK 0x000e0000
- /* Description RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80
-
- For 20/40/80, this field shows the second selected Rx
- chain that is used in HW IFFT mode
-
-
-
- For 80+80, this field shows the selected ext80 Rx chain
- that is used in HW IFFT mode
-
-
-
- <enum 0 location_strongest_chain_is_0>
-
- <enum 1 location_strongest_chain_is_1>
-
- <enum 2 location_strongest_chain_is_2>
-
- <enum 3 location_strongest_chain_is_3>
-
- <enum 4 location_strongest_chain_is_4>
-
- <enum 5 location_strongest_chain_is_5>
-
- <enum 6 location_strongest_chain_is_6>
-
- <enum 7 location_strongest_chain_is_7>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_LSB 20
- #define RX_LOCATION_INFO_3_RTT_STRONGEST_CHAIN_EXT80_MASK 0x00700000
- /* Description RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK
-
- Rx chain mask, each bit is a Rx chain
-
- 0: the Rx chain is not used
-
- 1: the Rx chain is used
-
- Support up to 8 Rx chains
-
- <legal all>
- */
- #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_LSB 23
- #define RX_LOCATION_INFO_3_RTT_RX_CHAIN_MASK_MASK 0x7f800000
- /* Description RX_LOCATION_INFO_3_RESERVED_3
-
- <legal 0>
- */
- #define RX_LOCATION_INFO_3_RESERVED_3_OFFSET 0x0000000c
- #define RX_LOCATION_INFO_3_RESERVED_3_LSB 31
- #define RX_LOCATION_INFO_3_RESERVED_3_MASK 0x80000000
- /* Description RX_LOCATION_INFO_4_RX_START_TS
-
- RX packet start timestamp
-
-
-
- It reports the time the first L-STF ADC sample arrived
- at RX antenna
-
-
-
- clock unit is 480MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_4_RX_START_TS_OFFSET 0x00000010
- #define RX_LOCATION_INFO_4_RX_START_TS_LSB 0
- #define RX_LOCATION_INFO_4_RX_START_TS_MASK 0xffffffff
- /* Description RX_LOCATION_INFO_5_RX_END_TS
-
- RX packet end timestamp
-
-
-
- It reports the time the last symbol's last ADC sample
- arrived at RX antenna
-
-
-
- clock unit is 480MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_5_RX_END_TS_OFFSET 0x00000014
- #define RX_LOCATION_INFO_5_RX_END_TS_LSB 0
- #define RX_LOCATION_INFO_5_RX_END_TS_MASK 0xffffffff
- /* Description RX_LOCATION_INFO_6_SFO_PHASE_PKT_START
-
- The phase of the SFO of the first symbol's first FFT
- input sample
-
-
-
- 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
- 66.7ns, and 6 bits fraction to provide a resolution of
- 0.03ns
-
-
-
- clock unit is 480MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_OFFSET 0x00000018
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_LSB 0
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_START_MASK 0x00000fff
- /* Description RX_LOCATION_INFO_6_SFO_PHASE_PKT_END
-
- The phase of the SFO of the last symbol's last FFT input
- sample
-
-
-
- 12 bits, signed 6.6. 6 bits integer to cover -66.7ns to
- 66.7ns, and 6 bits fraction to provide a resolution of
- 0.03ns
-
-
-
- clock unit is 480MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_OFFSET 0x00000018
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_LSB 12
- #define RX_LOCATION_INFO_6_SFO_PHASE_PKT_END_MASK 0x00fff000
- /* Description RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8
-
- The high 8 bits of the 40 bits pointer pointed to the
- external RTT channel information buffer
-
-
-
- 8 bits
-
- <legal all>
- */
- #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_OFFSET 0x00000018
- #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_LSB 24
- #define RX_LOCATION_INFO_6_RTT_CHE_BUFFER_POINTER_HIGH8_MASK 0xff000000
- /* Description RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32
-
- The low 32 bits of the 40 bits pointer pointed to the
- external RTT channel information buffer
-
-
-
- 32 bits
-
- <legal all>
- */
- #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_OFFSET 0x0000001c
- #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_LSB 0
- #define RX_LOCATION_INFO_7_RTT_CHE_BUFFER_POINTER_LOW32_MASK 0xffffffff
- /* Description RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT
-
- CFO measurement. Needed for passive locationing
-
-
-
- 14 bits, signed 1.13. 13 bits fraction to provide a
- resolution of 153 Hz
-
-
-
- In units of cycles/800 ns
-
- <legal all>
- */
- #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_OFFSET 0x00000020
- #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_LSB 0
- #define RX_LOCATION_INFO_8_RTT_CFO_MEASUREMENT_MASK 0x00003fff
- /* Description RX_LOCATION_INFO_8_RTT_CHAN_SPREAD
-
- Channel delay spread measurement. Needed for selecting
- GI length
-
-
-
- 8 bits, unsigned. At 25 ns step. Can represent up to
- 6375 ns
-
-
-
- In units of cycles @ 40 MHz
-
- <legal all>
- */
- #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_OFFSET 0x00000020
- #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_LSB 14
- #define RX_LOCATION_INFO_8_RTT_CHAN_SPREAD_MASK 0x003fc000
- /* Description RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL
-
- Indicate which timing backoff value is used
-
-
-
- <enum 0 timing_backoff_low_rssi>
-
- <enum 1 timing_backoff_mid_rssi>
-
- <enum 2 timing_backoff_high_rssi>
-
- <enum 3 reserved>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_OFFSET 0x00000020
- #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_LSB 22
- #define RX_LOCATION_INFO_8_RTT_TIMING_BACKOFF_SEL_MASK 0x00c00000
- /* Description RX_LOCATION_INFO_8_RESERVED_8
-
- <legal 0>
- */
- #define RX_LOCATION_INFO_8_RESERVED_8_OFFSET 0x00000020
- #define RX_LOCATION_INFO_8_RESERVED_8_LSB 24
- #define RX_LOCATION_INFO_8_RESERVED_8_MASK 0x7f000000
- /* Description RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID
-
- <enum 0 rx_location_info_is_not_valid>
-
- <enum 1 rx_location_info_is_valid>
-
- <legal all>
- */
- #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_OFFSET 0x00000020
- #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_LSB 31
- #define RX_LOCATION_INFO_8_RX_LOCATION_INFO_VALID_MASK 0x80000000
- #endif // _RX_LOCATION_INFO_H_
|